LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: Ricardo_91 em 31 de Março de 2009, 20:13

Título: programar o Atmel ATtiny 2313 com o arduino
Enviado por: Ricardo_91 em 31 de Março de 2009, 20:13
Boas!

Bem, a minha pergunta é a seguinte, será que é possível programar o Atmel ATtiny 2313 com a porta de ICSP do arduino

Isto porque eu já tinha uma ideia disto http://www.instructables.com/id/Ghetto-Programming%3a-Getting-started-with-AVR-micro/ (http://www.instructables.com/id/Ghetto-Programming%3a-Getting-started-with-AVR-micro/)
e vi que a porta de ICSP do arduino tinha as mesmas ligações que eram precisas para programar o chip ;D

mas como é que envio o programa para o ATtiny??? :o

resumindo o que eu quero é saber se o arduino pode funcionar como um programador de avr, e como fazer o upload do código para o IC que nao seja o do arduino (ATmega168) pela porta de ICSP

Obrigado desde já.
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: Njay em 31 de Março de 2009, 21:25
O core do Arduino é um AVR, e os AVRs podem todos (excepto uns que são muito pequenos) ser programados com a mesma interface fisica série (ICSP - in circuit software programming), desde que se tenha o software adequado.

Não podes é por o código do Arduino a correr no ATtiny23, se era isso que tinhas em mente.
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: guibot em 31 de Março de 2009, 22:45
Citar
Não podes é por o código do Arduino a correr no ATtiny23, se era isso que tinhas em mente.

isso é que era   :)
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: Njay em 31 de Março de 2009, 23:19
Mas podes programar em C para o ATtiny2313, não é assim tão diferente do Arduino. Não tens é as bibliotecas, mas também o espaço que tens no tiny2313 é tão curto que as bibliotecas não cabiam (e os periféricos são diferentes).
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: TigPT em 31 de Março de 2009, 23:34
O que percebi, ele queria programar o Arduino para passar a ser um programador por ICSP para programar outros chips através do Arduino, mas cheira-me que isso não é possível.

É no entanto capaz de ser possível programar o Arduino para com alguns dos seus pinos (n a ficha ICSP que lá vem) simular um programador ICSP.
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: Njay em 31 de Março de 2009, 23:57
Pareceu-me que disseste a mesma coisa em ambas as frases. De qualquer forma, é perfeitamente possível, e vice-versa. Há até um projecto famoso, o "buttload", que transforma um AVR butterfly num programador de AVRs.

O butterfly também é uma plaquinha interessante baseada em AVR, que vocês por aqui pelos vistos não conhecem (só vêm Arduino à frente, lol!). Tem um preço similar ao Arduino mas algumas características diferentes:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.rapidonline.com%2Fnetalogue%2Fzoomed%2FLarge%2F73426401.jpg&hash=aa65c0754514ca6908c6e377f1946810c2fc47a7)
http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=3146 (http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=3146)
http://www.tato.ind.br/files/butterfly.pdf (http://www.tato.ind.br/files/butterfly.pdf)

Tem uma área semelhante a um cartão de crédito. É fabricado pela própria ATMEL (fabricante dos AVR). Pode programar-se em C com o AVR-GCC, como qualquer AVR. Tem um "alfinete", pode ser usado como cartão de identificação preso à roupa. A ATMEL desenvolveu isto como plataforma de demonstração do ATmega169 (AVR com perfiféricos para controle de LCDs) mas ganhou muita popularidade e acabou a ser usado em aplicações no mundo real. Infelizmente nunca me passou nenhum pelas mãos. Mas tenho um par de "butterflies v2", que também são uns bichos engraçados, wireless, com uma estação base USB, chamados "Raven", com o mesmo formato "cartão de crédito":

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.globalspec.com%2FNpaPics%2F87%2F101388_032720082391_ExhibitPic.jpg&hash=950ff6fb7c258702ce64a2364fb4f5db5815bfb8)

Estes já são mais carotes. Mas fica para outra vez, também nunca fiz nada com eles  :-\!
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: TigPT em 01 de Abril de 2009, 00:10
Desconhecia totalmente, obrigado por partilhares, vou procurar saber mais sobre eles.

O que queria dizer é que deve de ser possível fazer um AVR passar a ser um programador de AVRs, mas talvez não utilizando os mesmos pins que servem para programar esse mesmo AVR por ICSP. Ou seja, a fazer, não deve de ser com os pins ICSP que já vem no Arduino. (pois estes são para programação do próprio.
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: msaleiro em 01 de Abril de 2009, 00:18
Geralmente as programações por ICSP são genéricas dentro das marcas. No entanto, há que notar que nem todos os MCUs de uma marca suportam ICSP e k os pinos utilizados podem ser outros. Às vezes também acontece que apesar de dois MCUs da mesma marca suportarem ICSP, o algoritmo utilizado pode ser diferente, de modo que o software utilizado tem que estar preparado com esses algoritmos.
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: Njay em 01 de Abril de 2009, 01:19
Os pinos que se usam para programar um AVR são tipicamente pinos normais não dedicados, isto é, são pinos que depois em utilização normal (com o programa a correr) são portos, excepto o pino de /RESET. Por isso penso que é sim possível usar os pinos ICSP do Arduino para programar outro AVR excepto o pino de /RESET que teria que ser substituido por outro. Também pode dar-se o caso de algum outro desses pinos colidir com alguma função que use esses mesmos pinos e que esteja a ser usada, como por exemplo a UART. Mas não será o caso do ATmega168 (Arduino); um desses pinos é uma saída de PWM, mas acho que não vi ser necessário usar o PWM enquanto se programa outro AVR...
Já experimentaram olhar para o esquema do Arduino? E para a datasheet do ATmega168? Ficam a saber tudo ;)
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: amando96 em 01 de Abril de 2009, 10:59
Note that the LDR is not mounted on AVR Butterfly produced after July 2006, due to RoHs compliant production
   

porque?
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: TigPT em 01 de Abril de 2009, 11:58
A LDR não devia de cumprir a norma RoHs, e por isso se viesse montada o produto não podia ser vendido na Europa.

http://pt.wikipedia.org/wiki/Rohs (http://pt.wikipedia.org/wiki/Rohs)
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: Njay em 01 de Abril de 2009, 12:16
Se bem me lembro os LDRs têm cadmio, que é um elemento tóxico (também é por isso que as pilhas de NiCad estão a desaparecer).
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: Fifas em 01 de Abril de 2009, 12:43
Pareceu-me que disseste a mesma coisa em ambas as frases. De qualquer forma, é perfeitamente possível, e vice-versa. Há até um projecto famoso, o "buttload", que transforma um AVR butterfly num programador de AVRs.

O butterfly também é uma plaquinha interessante baseada em AVR, que vocês por aqui pelos vistos não conhecem (só vêm Arduino à frente, lol!). Tem um preço similar ao Arduino mas algumas características diferentes:

(...)

Eu conhecia ;D mas já nem me lembrava disso :P
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: Ricardo_91 em 02 de Abril de 2009, 12:06
obrigado a todos os que responderam...

já perçebi que nao é possivel programar um avr com o arduino até porque este precisa do bootloader para conseguir programar o seu core
mas entao o que querem dizer as siglas MISO MOSI SCK. ???
mais uma vez obrigado pelo esclarecimento ;)
Título: Re:programar o Atmel ATtiny 2313 com o arduino
Enviado por: Njay em 02 de Abril de 2009, 14:33
Podes perfeitamente programar outro AVR com um Arduino... só não podes é programar nesse outro AVR o mesmo tipo de programa que programas no Arduino, no caso deste ATtiny2313. E tens que ter um programa apropriado no Arduino para fazer essa programação.

Os pinos SCK, MISO, MOSI, que todos os AVR têm, serve para o programar (no modo de programação) e para, no caso dos que têm, usar como interface SPI (no modo normal de funcionamento.