quarta-feira, 23 de dezembro de 2009

Analisador Espectral de Áudio

Olá meus amigos, hoje vou publicar um projeto do Eng Leonardo Balbino da Unesp de Ilha Solteira, falando nisso, parabéns pelo trabalho de graduação, o efeito ficou muito bom, só falta agora me passar o material sobre a analise espectral, certo?
Gostaria também de agradecer ao professor Carlos Alves pela dica.
O projeto foi desenvolvido usando uma placa da Renesas (QSK26A) do projeto Renesas University (
http://www.renesasu.com/) e 8 ventiladores, que movimentam bolinhas de isopor em 8 raias separadas cada uma para uma faixa de frequência determinada.
O QSK26A usa um micro M16C/26A da Renesas e pelo jeito deu conta do recado, como eu já disse, preciso pegar mais detalhes com o Leonardo.
Link do M16C/26A:
Aqui
Chega de falar, vamos ao resultado!




quinta-feira, 5 de novembro de 2009

Controle de servo com o R8C/1A

Sei que faz um tempo, muita gente já estava com saudades e chorando, mas para alegria geral da nação estou de volta!

Hoje vou postar um projeto bem simples, fácil de fazer e que realmente impressiona, ou não, depende de quem ve...

Para quem não conhece, antes vamos falar um pouco de servo de aeromodelo, é um dispositivo relativamente simples, 3 pinos de ligação, VCC, GND e Sinal. Mas com ele você consegue dar movimento aos seus projetos!
VCC e GND todo mundo sabe o que é, já o Sinal vou explicar agora. A posição angular do servo é dada por um sinal PPM ligado a este pino, normalmente esse sinal deve variar de 1,25mS até 1,75mS, sendo 1,75mS eixo todo virado para um lado e 1,75mS todo virado para o outro, qualquer tempo no intervalo, 1,5mS por exemplo, vai posicionar o eixo numa posição intermediária, conforme a figura abaixo. O tempo entre cada pulso deve ser de 20mS, nos testes funcionou sem respeitar esse intervalo, mas pode ser que não funcione no servo que você tem ai na sua casa!

Isso posto, vamos ao que interessa, usei o R8C/1A, é claro... e o timer X foi o ator principal da história, a configuração ficou assim:

Explicando o código, a primeira linha faz a seleção da fonte de clock para o timer X (20MHz, periodo de 50nS), como o timer X tem dois contadores de 8 bits, carregamos um valor no prescaler (prex=24) e outro no timerx (tx=7), para saber o tempo que vai levar para estourar este timer e gerar a interrupção a conta é a seguinte:

tempo = (prex + 1)*(tx+1)*periodo = (24+1)*(7+1)*50*10^-9 = 10*10^-6 S = 10uS

Na próxima linha escolhemos o modo de operação do timer X, modo timer obviamente.
E na linha seguinte determinamos o nível de prioridade da interrupção.
A linha comentada é usada para ligar o timer X, está comentada ai mas aparece novamente no kpt_servo.c, alias que é onde está esta configuração.

Já que falamos de interrupção, o controle deste servo acontece dentro do código do intprog.c, conforme a figura abaixo:

Como fui mais esperto desta vez, comentei no código, a unica coisa importante neste código que não está comentada é a linha:

#pragma interrupt /B _timer_x (vect=22)

O que importa aqui, bom, no arquivo intprog.c temos todas as funções das interrupções, com seus protótipos e essa declaração acima, que "liga" a função descrita ao vetor, 22 neste caso, a função é chamada de timer_x e o /B é um indicador que ao atender esta interrupção você vai usar o banco 1 de registradores, voltando automaticamente ao banco 0 no final do atendimento. Isso é importante para conseguir atingir os 10uS de tempo entre as interrupções, diminui e muito a latência!

Finalmente, um video do porcotipo funcionando com um servo chines muito vagabundo!



Vale observar que o servo está em cima da placa, bem em cima do microcontrolador, e pela imagem do osciloscopio da pra ver que o consumo do servo não é baixo e gera um ruido absurdo, mas mesmo assim o micro continuou lá, firme e forte! (Me pedoem pela falta de ajuste do trigger do osciloscopio, vou ajoelhar no milho depois dessa...).

O código fonte está nos arquivos do grupo, é só copiar e sapear! Link aqui: kpt_servo.zip

Link para o grupo: http://groups.google.com.br/group/renesas_brasil

PS: Rogério, não deu tempo de fazer como você pediu, mas a partir deste você consegue modificar para o que você precisa, certo?

quinta-feira, 1 de outubro de 2009

Laminadora para PCB

Estava a um tempo postergando essa montagem, mas como precisei de fazer uma placa de protótipo para ontem, aproveitei ontem e mandei bala. Tirei da caixa minha laminadora que funcionava mal e porcamente a 80ºC, e debulhei, veja abaixo a cara dela e a etiqueta do fabricante. Essa pobre coitada foi comprada na Kalunga, não me lembro o preço, mas é mais do que eu queria pagar e menos do que valia.
Este é o mecanismo dela, veja que já removi todos os sensores e dispositivos de proteção, não preciso dizer que isso invalida a garantia, certo? Acho que é robusto o suficiente para fazer a transferência, e como é mais fácil achar que determinar a verdade, fica no achometro mesmo!

Claro que essa jabiraca ia precisar de um controle, peguei um PIC (opa, que PIC que nada!), peguei um kit pré-histórico da Renesas com um R8C/13 montado numa placa já com interface de debug, uma fonte de 5 reais, dois triacs, dois MOCs um LCD e na foto está faltando o potenciometro que faz o ajuste da temperatura. Na posição que eu coloquei o sensor de temperatura na mecânica consegui a tranferência com a temperatura setada em 145ºC, provavelmente no centro do dispositivo está bem mais quente, mas como o LM35 deve funcionar abaixo dos 150ºC, acho que ficou de bom tamanho. Abaixo o controlador no inicio da montagem.

E o resultado? Essa é placa, o papel utilizado é aquele papel encerado que sobra quando tira a etiqueta, este eu peguei no correio aqui perto de casa, funciona muito bem e é de graça, imprimi a placa desenhada no KiCAD com uma HP1020, cartucho original, nada de remanufaturado!
Acho que ficou bom, o que acham?

Depois de corroida em percloreto, ficou assim! A marca estranha é da fita dupla face que usei para colar o papel antes de passar na laminadora (nota mental, alinhe o desenho na placa antes de passar na laminadora!)

Já furada e com o R8C/27 posicionado para a solda, claro que os furos ficaram ruins, furado a mão... que falta faz uma CNC!
E finalmente, com tudo soldado e pronto para rodar! Quem estiver na duvida de montar ou não uma laminadora, esquece da duvida, manda bala e monte a sua, vale muito a pena!

Bom, era isso, se quiser montar uma e precisar de ajuda, é só entrar em contato.
Até mais!

segunda-feira, 31 de agosto de 2009

Semana da Engenharia Unesp 2009

Semana passada estive na Unesp - Bauru, apresentando aos alunos a Renesas, bem como seus microcontroladores R8C. Considero que o evento foi um sucesso, sempre com algumas oportunidades de melhoria aqui e ali, mas crescendo ano após ano.
Gostaria de aqui agradecer aos organizadores pelo empenho e pela oportunidade que me foi dada, aos professores Castanho, Alceu e Ivo pela atenção durante o evento e, não poderia esquecer, de me desculpar junto ao pessoal da engenharia Civil que estava na palestra errada, prometo na próxima levar algumas informações pertinentes sobre vigas protendidas, concreto pré-moldado e resistência dos materiais!
Aos alunos da engenharia elétrica que participaram, agradeço pela atenção, espero que as informações passadas sejam úteis e me coloco a disposição para qualquer esclarecimento. Acredito que a recepção do pessoal no hands-on foi bem positiva, espero que em breve possamos manter contato novamente.

Link do evento: http://www.semeng.feb.unesp.br/

Até mais!

Deu na EETimes

Bom, como já faz uma semana que não publico nada, vou começar devagar, e divagar, por que não? Quem me conhece sabe que eu vivo falando que a Renesas é muito boa no quesito imunidade a ruídos, e compatibilidade eletromagnética, mas eu nunca mostrei nada que provasse além das documentações da Renesas, pois bem, na EETimes do dia 18/08/2009 saiu uma matéria sobre a aprovação dos micros H8/Tiny, R8C e SH/Tiny nos testes realizados pela Langer-emv, e adivinha? Foram todos aprovados nos testes de compatibilidade!
Reproduzo abaixo um trecho da matéria:
"Langer EMV-Technik commented that the Renesas MCUs are rated highly with almost all pins being able to withstand bursts of 480-V, Renesas said. In certain circumstances this helps reduce costs as the microcontroller does not need to be protected by a transient voltage surge suppressor or a multilayer ceramic capacitor."
Leia a matéria completa aqui: LINK
Até a próxima!

segunda-feira, 17 de agosto de 2009

Eu uso Linux, e agora?

Calma, calma, calma! Usa Linux, acha o tio Bill pior que mocotó de ontem?
Não tem problema, a Renesas apoia um grupo de desenvolvimento de ferramentas GNU, este grupo tem inclusive uma IDE Eclipse para Linux pronta para você usar!
Você usa Windows e acha o Eclipse a melhor coisa do mundo? Não se desespere, tem uma versão para Windows também!
Tem até para o MAC OS, como não entendo de MAC, não me perguntem para que versão nem nada, acessem o site e tirem suas conclusões.

Enfim, não vai ser por falta de ferramentas de desenvolvimento que seu projeto vai enroscar.

Quer saber mais, acesse o site KPIT GNU Tools - www.kpitgnutools.com - e divirta-se!

Até a próxima.

quinta-feira, 13 de agosto de 2009

Gravação - Esse mistério distante...

Começando este novo post, finalmente falaremos da gravação, assim quem já recebeu a placa e não vai usá-la como peso para papel ou acumulador de poeira vai finalmente gravar seu firmware!
Primeiro de tudo as ferramentas necessárias, a sua placa, se não tem uma ainda, compre logo! Um cabo serial (cabo direto, não é cross!), uma fonte de alimentação (não esqueça de fechar os jumpers Alim conforme a sua fonte! Veja o post anterior), o seu computador e o software FlashSta.exe, que você encontra no CD que recebeu com a placa na pasta do CD:
\Utils_Andre\CableM3A-0806\m3a0806v020046exe\
Ou no site da Renesas, na página de informações do cabo M3A-0806: LINK
É só clicar nos downloads e ser feliz, além do software para Windows você encontra os fontes se quiser fuçar, no CD também tem um arquivo flash-guide.pdf, que explica como é o processo de gravação, além do link para a página do DJ Delorie (http://people.redhat.com/dj/m32c/) afinal, se você quiser gravar o micro usando Linux, vai precisar disso.

Com o cabo conectado, na placa, placa alimentada, abra o Hyperterminal, configure a porta que tem disponível para 19200bps,8,n,1, feche o jumper nos pinos TX e RX da placa fazendo assim o loop back, se tudo estiver certo, o que você digitar no Hyperterminal vai ecoar de volta. Se não funcionar, verifique a configuração da porta, a alimentação da placa e se ainda assim não funcionar, me escreva! Funcionou, feche o Hyperterminal, ou pelo menos desconecte.

Se você continuou é por que está tudo certo, então execute o FlashSta.exe, você deve ter uma janela assim na sua tela:
A opção Select program deve ficar como está, Internal flash memory, selecione a porta serial que vai usar, neste momento você deve garantir que o microcontrolador está em Boot, como fazer isso? Feche o jumper MODE na placa, dê um pulso no RESET (SW1), pronto, está em modo de boot! Tudo certo? Clique no OK!

Se tudo estiver correto, a janela abaixo deve abrir, senão virá uma mensagem de erro, em caso de erro, verifique alimentação, conexão, fechou o Hyperterminal, não resolveu, me escreva!
Na figura acima, eu já havia selecionado o arquivo que vou gravar previamente, isso é feito clicando em Refer..., selecione o arquivo .mot que você vai gravar, como na figura abaixo, observe onde estava meu arquivo .mot, se você copiou o exemplo do grupo, o arquivo também deve estar lá.
Feito isso ele já vai carregar o ID do programa que você selecionou para gravar, se você usou um ID diferente no código que está no microcontrolador, este é o momento de colocá-lo nos campos ID. Aqui vai um lembrete, se você gravar o micro com um ID diferente de FFFFFFFFFFFFFF, anote! Sem o ID você não consegue conectar ao micro para apagar, ler, gravar ou qualquer coisa que implique acesso externo à memória flash.

Tudo certo? Clique em OK, se o ID estiver correto vamos para janela abaixo:

Aqui temos várias opção, vamos ficar com as principais por enquanto, são elas, ERASE, que apaga a memória, BLANK, que testa se o micro está apagado e PROGRAM, que grava o programa previamente selecionado.Então vamos lá, clique no ERASE, então no OK, recebeu o Erase OK?
Vamos conferir! Clique no BLANK, ele vai testar o range de memória do programa carregao, ok? Então não precisa mudar nada na janela que abre, somente clique no OK! Sem erros? Está em branco.
Clique no PROGRAM, novamente ele vai pegar os ranges de memória do programa escolhido, logo, clique em OK e novamente OK. Recebeu a mensagem de Program OK. Clque no EXIT, retire o jumper de MODE e pulse o RESET, seu programa já deve rodar!

Se você não tem o CD, basta baixar o flashsta.exe neste link.

Simples não? Fazendo é mais simples ainda, qualquer dúvida, me escreva! Até a próxima.

quarta-feira, 12 de agosto de 2009

Mais Hardware!

Continuando nosso estudo, vamos falar um pouco sobre as conexões na placa de desenvolvimento. Abaixo você pode ver um scan da placa, nele vemos diversos jumpers, as explicações sobre cada um estão logo abaixo:





Primeiro de tudo, a alimentação, com a placa montada você vai ter um Jack (P1) para ligar sua fonte de alimentação, mas se preferir retirar e ligar dois fios neste local, a polaridade é a indicada na figura abaixo:



O circuito de alimentação da placa permite que ela seja alimentada com tensões abaixo dos 5V (o R8C/1A funciona de 2,7V até 5,5V). Para tensões de alimentação acima dos 6,2V (a tensão ideal para sua fonte de alimentação seria 9V), precisamos fechar os jumpers Alim (P10) de modo a usar o LM7805 da placa, conforme a figura abaixo:


Se estiver usando uma tensão menor que 5,5V, além do LM7805 não funcionar direito, temos um diodo de proteção me série no circuito (D1), logo uma queda de ~0,6V na linha, então podemos ligar o jumper de modo a não utilizar o LM7805, conforme a figura abaixo:


Vale ressaltar que na ligação acima, a tensão de alimentação - 0,6V vai direto para o microcontrolador, então, cuidado para não passar dos 6,2V! Outra coisa para se lembrar é que segundo o datasheet do MAX232 ele funciona com tensão de alimentação de 4,5V a 5,5V, logo é bom respeitar esse limite também. Eu já usei abaixo dos 4,5V, mas nada é garantido.


Com o circuito devidademente alimentado, podemos testar a comunicação serial, abrar o Hyperterminal, configure para uma velocidade abaixo de 115200bps, 8, N, 1, N. Com o cabo conectado à placa e a porta serial do micro, feche o jumper TX e RX da placa conforme a figura abaixo, fazendo o loop back, desta forma tudo que você digitar vai "ecoar" na tela, desta forma você garante que a comunicação serial está ok! Abaixo, ligação para o loop-back:


Feito o teste, feche a conexão do TX e RX conforme a figura abaixo, deixando assim a Uart1 do R8C/1A conectada ao MAX232. Caso queira conectar outro hardware para comunicação, como um conversor USB<=>Serial montado com FTD232, é só mudar o jumper para as posições próximas aos pontos P18 e P19, e ligar o seu conversor ali, pronto!


Outro jumper que deve ser configurado é o VRef, que ao ser conectado liga o VCC a entrada de referência de tensão do conversor AD. Essa referência pode ser ligada a uma fonte mais precisa ou menor que VCC (minimo 2,7V) dependendo da sua aplicação, ou até mesmo ser usada como uma entrada caso não se utilize o ADC na sua aplicação. O VRef pode ser visto na figura abaixo:



O último jumper que vamos explicar é o MODE, esse jumper deve ser fechado para colocar o microcontrolador em modo de boot, possibilitando a gravação via porta serial. Veja a figura abaixo:


Neste figura também vemos o conector para o E8/E8a, se você tiver um, é só instalar os terminais na placa, conectar e E8 ou E8a e fazer o debug e gravação direto na placa, qualquer dúvida sobre como fazer isso, entre em contato. Por último, temos também o botão de RESET, que reseta a MCU (CLARO!) e, caso você pulse o RESET com enquanto o jumper MODE estiver fechado, o microcontrolador entra em Boot.

Falaremos mais do boot mode e gravação no próximo post. Até mais!

sexta-feira, 7 de agosto de 2009

Mais código! Configurando AD com o IO Wizard.

Continuando nossa saga, vamos agora fazer a configuração do ADC usando o IO Wizard.O procedimento é basicamente o mesmo, se já fez toda a configuração do post anterior, é só abrir o IO Wizard e fazer a configuração abaixo do ADC.

Eu usei o AN1, pino 14 do micro, mas nada impede o uso de qualquer outra entrada do conversor.

Uma coisa interessante para se fazer é alternar a entrada escolhida e na janela de código gerado observar os registradores ch0, ch1 e ch2 mudando de acordo com a entrada selecionada. A configuração fica como na figura abaixo:




Já que vamos usar o ADC, por que não colocar um timer rodando também? Eu escolhi o Timer X por que gosto do nome, mas o Timer Z também pode ser usado para essa função!
Simples, selecione o Timer X, ative e selecione o modo de opeção timer.
O Timer X é um timer de 8 bits com um preescaler de 8, o que para mim é um timer de 16 bits, mas chamem como quiserem.

O registradores que determinam o tempo são os prex e o tx, preescaler e registrador do timer respectivamente.

Como selecionei sem divisão (no division) o timer está rodando a 20MHz, logo 50nS de período para cada incremento do preescaler.

A conta para saber o tempo é: t = (prex + 1) * (tx + 1) * período

No nosso caso: t = (249 + 1) * (79 + 1) * 50*10^-9 = 1*10^-3 = 1mS

Mais fácil que furar um olho, não? Veja na figura abaixo:

Eu usei ambos recursos em um projeto, aproveitando a paranoia da gripe suina, fiz um termometro com um LM35, claro que sem precisão, não usei uma referência boa, só o velho 7805 da placa e o LM35 ligado direto na entrada do ADC! Olha como ficou a montagem na placa.

Com o software rodando no micro, conectado a serial, Hyperterminal aberto, 19200 8-N-1, deve aparecer a tela abaixo:

Como sempre, o WorkSpace completo, LM35_serial.zip está na seção arquivos no site do grupo, para quem ainda não conhece:

http://groups.google.com.br/group/renesas_brasil

Até a próxima!

quinta-feira, 6 de agosto de 2009

Usando o código do IO Wizard.

Bom, se você seguiu todos os passos do post anterior, você deve ter em mãos, ou no local em que escolheu salvar os arquivos, 3 arquivos:

config.c - Este vamos usar

config.h - Este não vamos usar

sfr_R8C1Aconfig.h - Este já temos no nosso projeto, é o mesmo que o sfr_r81b.h

O config.h basicamente tem o protótipo de algumas funções e interrupções, nada que não possa ser reescrito no ktp.c, ou mesmo criar um ktp.h. Para manter as coisas simples, vou reescrever tudo no ktp.c. O outro arquivo que vamos solenemente ignorar é o que contém os special function registers (sfr para os intimos), pois já temos um no nosso projeto.

Vamos as modificações no ktp.c. Primeiro os includes, que no nosso caso é só um! No arquivo, antes do main escreva:

#include "sfr_r81b.h"

Pronto, agora como você pode ver, temos o main mas não o protótipo dele, logo, escreva antes do #include o famoso void main(void); uma outra função que vamos precisar de protótipo é a init, então já coloca o protótipo dela, juntando tudo fica assim:

void main(void);
void init(void);
#include "sfr_r81b.h"


Agora é só copiar do arquivo config.c da linha int i=0; para baixo até as funções de interrupção da serial, essas não vamos precisar, e colar no lugar do main no arquivo ktp.c, fácil não? Se tudo correr bem seu arquivo deve ficar assim:


Falta só uma coisa para nossa serial funcionar, primeiro na configuração do IO WIzard ele faz a padrão, ou seja, apenas transmite, então mude o re_u1c1=0 para re_u1c1=1, este é o Receive Enable bit do registrador u1c1, ok?

Também não foi feita a configuração dos IO's a serem utilizados, então temos que colocar logo abaixo desta linha a linha:

u1sel0=1; u1sel1=1;

Que faz a seleção dos pinos do TX e RX da UART1.

É claro que vou colocar esse arquivo no files do grupo, se ainda não entrou, entre!http://groups.google.com.br/group/renesas_brasil

Procure pelo arquivo mod1.zip, descompacte no workspace que você já tem, substituindo o ktp.c existente e teste.

Até a próxima.

quarta-feira, 5 de agosto de 2009

WorkSpace pronto, o que colocar lá?

Agora que você já tem o seu WorkSpace pronto e compilando sem erros, que tal colocar uns erros, quer dizer, códigos lá?

Para isso precisamos de duas coisas, o manual de hardware do R8C/1A, que você pode obter aqui: Manual de Hardware


Com este arquivo em mãos, vamos ao que interessa, não precisa necessáriamente ler o bicho inteiro, seria interessante, mas vamos por partes. Para iniciar vamos usar uma ferramenta da Renesas, o IO Wizard, com ele você gera código para os periféricos do micro, inicialização do clock e interrupções mesmo sem saber o que está fazendo.

Claro que não é o ideal, mas é um bom começo. Após baixar o IO Wizard, instalar e rodar, vai cair nestá janela.


Claro que eu já selecionei ali algumas coisa que vamos precisar, como Series, Group e Part no., além disso também já escolhi o CPU Clock: Main clock, a frequência do mesmo, 20MHz, CPU Division Clock: No division e o Main Clock Drive Capacity: High. Todas essas opções são para alta performance e consumo de energia, mais para frente estudaremos modos de economizar energia, ok? Clique no NEXT.


Agora, o que colocar de código nesta placa? Bom, como já temos uma porta serial ligada no micro e isso conectado ao PC, por que não configurar a UART1, que é a que está ligada. Abaixo vemos que os pinos da UART1 estão no 2 (p3_7/TXD1) e no 9 (p4_5/RXD1) do micro.





Isso dito, precisamos fazer o pino 2 funcionar como saída, o 9 como entrada não precisa se preocupar, todos os GPIOs tem como configuração padrão entrada. Então vamos clicar no Port3 e selecionar o pin7 como entrada, fica como na figura abaixo:



Após essa configuração simples, vamos para uma complicada, a porta serial, selecione a UART1 e faça as configurações como na figura abaixo: Qualquer dúvido sobre isso, me escreva ou consulte o manual de hardware!



Por último, clique em Generate vai abrir a janela abaixo, escolha onde quer salvar o código gerado e clique no OK.



Agora é só copiar e colar as partes que interessam no seu código. Isso fica para o próximo post. Até mais!







Começando seu primeiro projeto - WorkSpace

Conforme prometido, vamos ao tutorial de como criar seu primeiro projeto com o HEW.
Primeira coisa a se definir, o que é um WorkSpace. Bom, como o nome já diz, é um espaço de trabalho onde você vai concentrar todos os arquivos *.c e *.h relativos ao seu projeto bem como as configurações de debug e simulação.
O primeiro passo, ao abrir o HEW, é selecionar a opção Create a new project workspace e clicar no OK, figura abaixo:



Próximo passo, em Project types, selecione C source startup application, poderia ser também o Application, mas dai o startup seria em assembly, eu prefiro em C.
Feito isso, coloque um nome no workspace, eu coloquei ktp, automaticamente ele coloca o mesmo nome no projeto. No campo de baixo aparece o local onde o projeto será salvo, se for mudar de lugar a hora é agora!
CPU type family é o M16C mesmo, o core do R8C é o mesmo do M16C, logo compartilham compilador, ambiente de desenvolvimento e ferramentas.
Falando em compilador, no campo de baixo você vai selecionar o compilador a ser utilizado, o famoso Tool chain, deixe o Renesas M16C Standard e clique no OK.


Próximo passo, selecionar o target CPU, Toolchain version, escolha a mais nova, se fez todos os ultimos updates deve ter a versão 5.45.00.
Abaixo, selecione o CPU Series, R8C/Tiny e o CPU Group, 1A. Assim se forma o nome, R8C/1A, se fosse usar um R8C/1B, era só escolher o Grupo 1B e por ai vai, simples não?
NEXT!


Agora vamos aos detalhes, tamanho da memória, apesar de estar escrito ROM, é memória flash.
Selecione o tamanho desejado, no nosso caso, 4k.
Vai usar o Standard I/O Library (UART1), se sim, é só setar a opção, feito isso após configurar a UART1 tudo que vc mandar um printf vai sair na serial.
Vai usar Heap Memory selecione a opção, nem sabe o que é heap memory? Deixe desmarcado! Quer saber o que é Heap Memory? Clique aqui.
Como estamos criando um projeto vazio, deixa ele criar o main(), não tem o on-chip debugger para usar, deixe como none.
NEXT!



A próxima janela não tem muito o que mexer, vamos usar Stack, o tamanho padrão costuma resolver, se precisar de mais, ou menos, é só mudar.
NEXT!



Setting the Target System, bom se não tem um emulador ou in-circuit debugger, vá de simulador mesmo, selecione o M16C R8C Simulador, External Debugger none e confirme o Target type e o Target CPU.
NEXT!




Nada para fazer no item 5/6, não temos Debugger, o simulador está pronto para rodar, NEXT!



Item 6/6, se quiser mudar algum nome de arquivo, este é o ponto, normalmente mantenho os nomes padrão, FINISH!



Aparece uma janela de sumário do que foi feito, pode dar o famoso OK, se tudo correu bem você deve chegar a janela abaixo:



Por enquanto os arquivos importantes para nós são os seguinte, ktp.c, onde está nossa função main( ), veja abaixo:


O arquivo intprog.c, onde ficam todos os vetores de interrupção e onde trataremos das interrupções, abaixo:

Finalmente, temos também o arquivo sfr_r8c1b.h, que é onde se dá nome aos bois, ou seja, todos os registros pertinentes recebem nomes, sempre inclua esse arquivo quando quiser ter acesso ao hardware, como por exemplo, fazer p3_4 = 1;
Veja abaixo:



Para acabar, se usar o famoso atalho F7 no seu teclado, o projeto deve ser compilado com 0 erros! O arquivo zipado deste projeto (ktp.zip) pode ser baixado no site do grupo:
http://groups.google.com.br/group/renesas_brasil

Até a próxima!

quinta-feira, 23 de julho de 2009

Esquema elétrico da placa

Bom, como não postei ontem, hoje vou colocar o esquema elétrico da placa para não passar em branco, primeiro a alimentação, nada mais simples, um 7805, um diodo para evitar ligações invertidas no conector e um jumper que permite selecionar usar o 7805 ou não, caso esteja usando uma alimentação menor que 6V por exemplo.

Finalmente, o resto da placa. Não tem muito o que falar sobre isso, mas mesmo assim vou falar!
Existem alguns pontos de configuração na placa, como os Jumpers K1 e K2, que permitem selecionar os pinos de TX e RX da porta serial 1 (sim meus amigos, tem porta serial 0 também) para conectar no MAX232 ou nos pontos P18 e P19, para conexão externa da comunicação serial, com por exemplo, usar um conversor USB<=>Serial.

Outro ponto é o VRef, que como o próprio nome diz, serve para ligar a referência externa do ADC (essa máquina tem 4 portas e 1 conversor interno, 10 bits, tempo de conversão 3,25uS à 10MHz).
Esse ponto pode ser fechado com um Jumper para usar o Vcc como referência ou pode receber um sinal de um circuito mais bem elaborado.

Temos também um botão de Reset, que reseta, e o jumper de MODE, que é usado para colocar o microcontrolador em BootMode, é só fechar esse Jumper, dar um pulso no Reset e pronto!

O conector do E8/E8a server para conectar o in-circuit emulator e o resto são pontos de alimentação, GND e ilhas para prototipagem.

Vamos a figura!


That's all folks, qualquer dúvida, escrevam!

terça-feira, 21 de julho de 2009

HEW - High-performance Embedded Workshop

O post de hoje é um dos mais importantes para quem quer começar a desenvolver, falaremos da IDE, ou seja, a ferramenta que você vai usar para escrever seu código, compilar, testar no simulador e, se estiver usando um in-circuit debugger, debugar e gravar!

A Renesas tem sua própria IDE, chamada de HEW.








O HEW é grátis e sem restrições de uso, apenas o compilador depois de 60 dias limita o tamanho do código à 64kB, outras funções como otimização não são afetadas.




No links acima existem opções de Download, mas recomendo fazer o download direto de um CD do kit de desenvolvimento da Renesas neste link. A versão que nos interessa é a 12 (RSK_CD_v12.zip), é um arquivinho de 524MB, mas já instala tudo que queremos e precisamos e graças ao AutoUpdate, já baixa as novas versões das ferramentas instaladas.


É só baixar e instalar!


A instalação é simples, decompacte o arquivo, execute o arquivo Setup.exe, siga as instruções até a janela abaixo:




Depois deste ponto, é next até o final!



Acabou a instalação? Baixe o arquivo rsk_pgfiles_eng20070206.zip, descompacte na pasta PG no diretório onde está instalado o HEW, no meu PC é a seguinte árvore:



C:\Program Files\Renesas\Hew\System\Pg\Renesas\



Como o compilador é grátis para até 64k de código, não custa nada manter a versão mais atualizada na máquina, não é? Neste link você encontra todos os compiladores em evaluation version para download. O compilador para a família R8C e M16C, nosso foco, é o M3T-NC30W.



Feito isso, é só executar o HEW no icone no desktop do seu micro ou no menu iniciar do seu Windows®!



O próximo passo é iniciar um projeto. Para isso precisaremos de uns conceitos tais como, o que é um WorkSpace? O que é e para que serve o ToolChain? O que é para que serve o Jonas Brothers???? Não, disso não falaremos nem aqui nem em lugar nenhum, mas do resto faremos no próximo post!

sexta-feira, 17 de julho de 2009

A Placa!

Desde que o mundo é mundo o Brasil não é um lugar bom para quem gosta de eletrônica, certo? Quase certo, agora isso vai mudar [rs].



Falando sério, alguns compontentes são complicados para comprar aqui, muita gente quer começar a estudar, brincar, quebrar, queimar ou destruir microcontroladores, mas o custo as vezes é proibitivo, um kit de desenvolvimento simples, com muita coisa que você nunca vai usar (a não ser que queira controlar a temperatura de uma lâmpada resfriando-a com um cooller de PC) já custa na casa dos 200 reais!



Meu objetivo é disponibilizar um kit que você possa usar num projeto, e quando acabar, comprar outro para fazer o próximo, nada de debulhar seu piscador de leds, primeiro projeto que rodou, e o apego sentimental, onde fica???



Para isso, criei essa placa aqui:




Agora a placa montada:


Como pode ver, é simples, gravação in-circuit, tem entrada para o emulador E8a/E8 da Renesas e um R8C/1A (R5F211A1SP) 16 GPIO's disponiveis, clock 20MHz, core de 16 bits, 4 AD's de 10 bits e outras coisas mais.

Em breve, mais detalhes.