Translate

segunda-feira, 24 de fevereiro de 2014

tinyUSBboard - programável SEM conversor usb-serial adicional e também programador USBasp



Fiz dar certo, mas tenho que ir fazendo o reverso do que fiz para explicar.
Trata-se de um Atmega8 que pode ser programado diretamente na usb.
Somente montei parcialmente o circuito, baseado no site http://matrixstorm.com/avr/tinyusbboard/
O material é extenso, mas testei e fez o que prometeu de início.


Do circuito acima, retirei os switches e os leds, menos o da perna 15, que ficou sinalizando no início.

Montado o circuito e carregado o programa via usbasp e avrdudess, deixei o windows no wordpad e conectei o circuito: ele "digitou" sozinho depois de alguns segundos ligado (e olha que estranhei porque a primeira vez ele ativou e digitou no menu iniciar no espaço de digitação:


demonstrando que funcionou depois de várias tentativas.

Vou complementar esse material mais tarde, porque o projeto promete, mas é meio complicado, pois tenho que mexer na pasta hardware da IDE do arduino de uma versão mais antiga que a que estou usando.

Republicando também a tabela de pinagem do atmega8 disponível no site referido.

e o arquivo que deve ser colocado na pasta hardware (arduino 1.0.4)

-----------------------------------------------------------------------------------------------

Desta vez projetei um pouco mais e consegui desenvolver melhor o circuito final, ainda que errando um pouco. Segue o endereço http://fritzing.org/projects/tinyusbboard-on-solderable-breadboard e uma tela de amostra. Compartilhei o esquema no site do app. Maravilhoso esse aplicativo grátis, o Fritzing.


a placa padrão pode ser encontrada na loja física ou virtual Multcomercial (Santa Efigênia). Em Março/2014 encontrei por R$ 2,50 a und. Agora que aprendi a usar o Fritzing, ficou muito mais fácil. Observando que a parte cobreada apesar de estar sendo vista, é na parte de trás da placa, olhando na figura acima. Gastei uns dois dias aprendendo e montando o diagrama acima, mas valeu a pena. Mais uma vez, recomendo a utilização.


Final: com headers e o resto dos leds. Me obrigou a mudar um pouco o layout e o esquema.

-----------------------------------------------------------------------------------------------
Vai deixar informação difícil de encontrar e de entender assim lá na #¨$&*.
O cara explica as coisas todas espalhadas por vários sites. Até conseguir fazer funcionar, foi uma tarde inteira. Affffffff. Mas acabou dando certo. Dentro da expectativa. Vou dar tudo mastigadinho. O firmware que funcionou no meu Windows 8.1 com arduino IDE 1.0.5-r2. nem estava noticiado na página. Mas achei aqui. O firmware (.hex) somente deixei no meu google drive. Vai que amanhã desaparece do Github...
Algumas dicas: alterar o fuse para L=0x3F e H=0xC0; carregar o firmware_usbasploader094.hex com um programador USBAsp:
conecte o seu tinyUSBBoard; se der dispositivo desconhecido, problemas, que pode ser desde a montagem do circuito até problema na carga ou versão do firmware; eu tive de tudo - se tiver também, confira tudo, inclusive as mensagens de erro do avrdudess; baixe o arduino IDE do site do arduino; baixe a configuração do tipo de placa aqui (ou no google drive); descompactar para a pasta do arduino (na verdade, vai adicionar arquivos dentro do arduino/hardware); abra o programa a ser carregado no atmega8 e configure o ambiente: tipo de programador: usbasp, tipo de placa: tinyusbboard, atmega8, 16 Mhz....; deixe apertado o botão PROG do tinyUSBboard e aperte e solte o RESET dele; solte o botão PROG; se olhar no gerenciador de dispositivos, deve aparecer um libusb-win32 devices/USBasp; talvez tenha que mudar a porta serial no arduino IDE (o meu manteve como COM1); tudo certo, dê o upload no programa; para que ele comece a funcionar após o upload, aperte e solte o RESET e voilá ;). 
Não encontrei referência do driver USBasp nos meus posts anteriores. Caso não tenha, pegue aqui. Necessário para fazer upload pelo USBasp.
Próxima tarefa: fazer funcionar como um programador USBasp.

Uma coisa bacana: programei o atmega8 no próprio tinyUSBboard. Nem precisei ficar desconectando para dar carga, nem para testar. Espero conseguir fazer um programador tão com quanto esse. É o meu melhor programador de AVRs e inicialmente a minha intenção era montar programadores com o atmega8.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Deu certo!! Carreguei o firmware do site matrixstorm (aqui no google drive) fiz as ligações e funcionou (acredita que inverti o atmega8 para programar e fiquei quebrando a cabeça? então, não foi de primeira) !!!
Virou um programador USBasp funcionando para upar em um segundo atmega8. Divino esse circuito! Incríveis esse Stephan Baerwolf e outros que ajudaram no projeto vusb.
Tudo igual ao esquema acima. Adicionam-se as ligações do tinyUSBboard com o atmega8 montado no Shrimp minimal:
tinyUSBboard - descrição - atmega8
16 - rst - 1
17 - Mosi - 17
18 - Miso - 18
19 - Sck - 19
20 - VCC - 20 
(p/ VCC podem ser usados os pinos 8-8)
22 - GND - 22
(p/ GND podem ser usados os pinos 7-7)


Testado com sucesso no Arduino IDE e no AVRDudess

-----------------------------------------------------------------------------------------
Próximo estágio: fazer o mesmo com um atmega328p-pu. Um arduino auto-programável, se conseguir. E tem os arquivos no site do matrixstorm! 
Outro projeto poderia ser o circuito final do USBasp  que mencionei em um post anterior. Mas pensando melhor, este circuito do tinyUSBboard é muito mais simples e funcionou muito bem, tendo até outra utilidade (placa auto-programável). 
Dá vontade de tentar o One-chip arduino ver. 2.0. Só agora estou entendendo bem o conteúdo e termos usados.





6 comentários:

  1. Ótimo trabalho, mas tenho algumas duvidas como você adicionou a placa na ide do arduino e se você testou no Windows 7x64 e Windows XP ou Windows 8.0x64.
    Outra coisa dessa forma ainda tenho uma COM virtual?

    Obrigado

    ResponderExcluir
    Respostas
    1. Valeu pelo comentário. Como carregamos um "bootloader" diferente no chip, a conexão é reconhecida como um USBAsp pelo Arduino IDE. Todos os passos fiz em W8.1 x64. A porta COM sempre será virtual, pois é uma USB.

      Excluir
  2. Carlos, é muito bom saber que temos muitos gênios ainda no planeta, o parabenizo por isso.
    sou Rui Pallone, trabalho com reparo em DNA, reversão de anomalias da maquinaria humana entre outras coisas como mudar o temperamento, hábitos, estados depressivos etc. apenas com MCB e MCA, são cargas reconhecidas pelos neurotransmissores (matéria prima standard), permitindo a elaboração de pensamentos fortes, positivos, determinados, dominantes etc.
    Carlos, meu filho tentou montar um site autoprogramável, mas esta se desgastando, imagino o quanto você não investiu em fator tempo, econômico, neuronal etc.
    se for possível você montar a base e passar o seu preço, ficarei imensamente agradecido. embora trabalho com DNA mas não é nome de Banco, o dinheiro é pouco mas, gostaria de apreciar seu orçamento se eu for digno de ser atendido por você.
    Carlos meu email: cientísmopallone@gmail.com - é provável que eu não vá entender os vocábulos técnicos que você usará, mas se puder passar um fone teu para eu tirar as duvidas e ou usar os meus fique a vontade.
    Pode ligar a cobrar 11 44263552 ou 9 9915 4456 Vivo ou 9 6437 2473 Tim
    Parabéns pela sua Linda Família - Que Deus Supra Vossas Necessidades. RP

    ResponderExcluir
    Respostas
    1. Apreciei muito seus comentários, mas eletrônica é somente um hobby para mim, ainda que não ande sobrando muito tempo ultimamente.
      Lamento não poder ajudá-lo, pois meus conhecimentos andam bem atomizados ultimamente, pois hoje trabalho quase que somente com administração da área de TI da empresa que trabalho, chegando a dezenas de servidores e milhares de estações. O tempo muito escasso e minha idade já não permite um aprendizado tão fácil na área quanto 30 anos atrás, tendo que me dedicar mais ao esforço físico agora para minimizar os futuros problemas de saúde.
      No mais, fico à disposição para questões mais simples.

      Excluir
  3. Salve salve Carlos, você é o primeiro, senão o único, que eu encontrei documentando TinyUSBboard. Me tira uma grande dúvida, o que vc utilizou para gravar o bootloader?

    ResponderExcluir
  4. Tive que utilizar um usbasp para carregar o bootloader. Pelo que me lembro, o próprio atmega8 virou um programador usbasp depois, mas sempre vai precisar de um usbasp para fazer o segundo.

    ResponderExcluir