LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: jorge_rc em 23 de Dezembro de 2011, 22:26
-
Boas Noites!
Para tentar "abandonar" a placa do arduino e passar para breadboard e posteriormente pcb's, tenho que arranjar forma de programar os atmegas...
para já, sera para um atmega 328 e talvez um atmega8.
Ja andei a ver conversores usb-serie tipo este: http://www.ebay.com/itm/USB-2-0-RS232-Serial-9-Pin-9P-DB9-Adapter-Converter-/160690202822?pt=LH_DefaultDomain_0&hash=item2569e1e8c6 (http://www.ebay.com/itm/USB-2-0-RS232-Serial-9-Pin-9P-DB9-Adapter-Converter-/160690202822?pt=LH_DefaultDomain_0&hash=item2569e1e8c6)
e depois tambem vi este: http://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-/370532286436?pt=LH_DefaultDomain_0&hash=item564571ffe4 (http://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-/370532286436?pt=LH_DefaultDomain_0&hash=item564571ffe4)
este ultimo supostamente suporte muitos atmegas, é de confiar? e funciona com o ide do arduino? plug&play?
Thanks
-
Para programares atmegas com um cabo serial o micro tem de ter um bootloader já programado, se não precisas de um programador ISP, esse USBASP é um programador USB, e tenho ideia que sim, que funciona com o IDE do Arduino, se não só tens de aprender a usar o avrdude que tambem é simples.
-
então este último em pricipio é o suficiente? tambem ha pelo ebay conversores de 10 para 6 pinos, qual a utilidade?
thanks
-
Nenhuma, é só uma questão de fios, porque os 10 fios em relação aos 6 fios têm mais 4 fios de massa.
-
ok ok! Obrigado. vou entao comprar este ;)
-
Eu também comprei um USBASP e tenho programado ATMega8 e ATTiny2313 e não me tem dado problemas. No início não foi fácil pô-lo a funcionar em linux, mas em windows com o AVRStudio funcionou à primeira. Ele vem com um cabo de 10 pinos mas para ligar à breadboard só são precisos 6 (MISO, MOSI, SCK, RST, Vcc e Gnd), e pelo menos numa fase mais inicial de prototipagem o Vcc e Gnd mantêm-se ligados enquando o USBASP está ligado ao USB, o que dá jeito para evitares ter que ter uma fonte externa (embora não seja a solução mais segura).
-
Tendo o tal USBASP como é que vocês ligam aquilo ao atmega?
Um destes serve? http://www.ebay.com/itm/51-AVR-ISP-programmer-USBASP-Downloader-/160811160918?pt=LH_DefaultDomain_0&hash=item2571179556 (http://www.ebay.com/itm/51-AVR-ISP-programmer-USBASP-Downloader-/160811160918?pt=LH_DefaultDomain_0&hash=item2571179556)
-
Serve. O programador comunica com o microcontrolador por SPI, portanto só tens de ligar o MISO (Master In Slave Out), MOSI (Master Out Slave In), SCLK (Clock) e reset aos mesmos do microcontrolador e penso que é só.
E a alimentação claro.
-
Consegues arranjar alguma imagem de um esquema simples?
Pode-se fazer com um atmega o que se faz com um arduino por exemplo certo? Trabalhar com sensores, motores, comunicação Wi-fi, bluetooth.
A minha grande dúvida é como se liga/testa isto tudo!
Põe-se o atmega numa breadboard? E depois? Onde se liga o USBASP para escrever para o atmega?
-
Pessoal,
tenho gravado o bootloader em atmega8 e 328 com um outro arduino uno. com "arduino as ISP" da própria IDE do arduino e tem funcionado bem (e olha que não entendo muita coisa)
Eu aprendi neste link que tem um vídeo (em duas partes):
http://engenheirando.com/arduino/montando-arduino-na-protoboard/ (http://engenheirando.com/arduino/montando-arduino-na-protoboard/)
Eu tenho o gravador, mas nunca precisei, qual é o prejuízo de fazer com o UNO?
-
Eu nunca consegui meter a funcionar bem o arduino como ISP... Dava-me sempre erro a passar o código para a flash do microcontrolador... Tinha que colocar na linha de comandos outro parâmetro qualquer que já não me lembro para o avrdude ir tentando várias vezes passar o programa... Às vezes estava 1 ou 2 minutos para fazer o upload do programa. Comprei um programador (não sei se foi o usbasp, mas acho que foi) e é impecável.
Tens aqui esta imagem:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.mare.ee%2Findrek%2Ftimer%2Fatmega16_isp.jpg&hash=979a0c39ce08dc4e7e1de38658c0d85fa392bc05)
O atmega é o microprocessador, o arduino é uma placa cujo microcontrolador é um atmega também... A única diferença é que tens lá o bootloader, então podes fazer o upload do programa por serial (não precisas de nenhum programador) e podes programar com o IDE e linguagem do arduino (se bem que podes fazer o mesmo, ir buscar o ficheiro hex criado e fazer o upload do mesmo para a flash do microcontrolador sem ter o bootloader).
-
Eu tenho o gravador, mas nunca precisei, qual é o prejuízo de fazer com o UNO?
qual é mm a pergunta? eu n entendi o que queres dizer com prejuizo?.. ???
-
Oi Hugu,
pergunto porque sei que alguns preferem usar outros programadores, e outros gravadores. Tirando o "estou acostumado" os outros gravadores são mais rápidos, mais fáceis, mais precisos?
pergunto porque muitos daqui já usaram os dois....
mas pelo que eu entendi, com o "Uno as ISP", eu preciso gravar o bootloader antes de começar a programar,e com gravadores, gravo direto, sem bootloader. É isso?
Valeu
-
Se usares o arduino como programador ISP acho que não precisas de ter o bootloader.
-
Gravador é simplesmente um nome esquesito para um programador, um programador ISP é mais rápido que usar um bootloader, de longe, mas só notas diferenças quando tens tipo 40 ou 50K de código para programar, porque demorar 5 ou 15 segundos, não me parece que seja crucial.
-
A minha questão é como se liga o USBasp ao Atmega.
Encontrei este esquema: http://elecrom.files.wordpress.com/2009/04/usbaspandavrconnections.jpg (http://elecrom.files.wordpress.com/2009/04/usbaspandavrconnections.jpg)
Monto isso numa breadboard é só ligar ao pc e carregar o hex file? Dá para carregar o hex para o micro com Atmel Studio certo?
Depois se quiser fazer vários iguais, é só tirar micro, pôr outro, carregar hex, e repetir, é isso?
Mais uma questão, não há nada que seja mais plug'n'play? Fazer o que descrevi em cima, que seja só ligar usb, encaixar micro no socket, carregar e está feito?
-
A minha questão é como se liga o USBasp ao Atmega.
os pinos micro controlador têm nomes, para o programar precisas do reset, miso, mosi e sck, basta ligar ao programador nos pinos com o mesmo nome.
Monto isso numa breadboard é só ligar ao pc e carregar o hex file? Dá para carregar o hex para o micro com Atmel Studio certo?
sim e não, o AVRStudio só funciona com programadores oficiais, o usbasp não é oficial, precisas do winAvr para poderes enviar o hex para o micro
Depois se quiser fazer vários iguais, é só tirar micro, pôr outro, carregar hex, e repetir, é isso?
sim, convêm desligar o programador para não queimar nada
Mais uma questão, não há nada que seja mais plug'n'play? Fazer o que descrevi em cima, que seja só ligar usb, encaixar micro no socket, carregar e está feito?
se tiveres uma placa de desenvolvimento basta encaixar o cabo no conector e com um programador oficial no avrstudio basta carregar F5 (se não me engano) e o micro controlador fica programado, sem isto dá um pouco mais de trabalho
-
sim e não, o AVRStudio só funciona com programadores oficiais, o usbasp não é oficial, precisas do winAvr para poderes enviar o hex para o micro
Quais são os programadores oficiais?
se tiveres uma placa de desenvolvimento basta encaixar o cabo no conector e com um programador oficial no avrstudio basta carregar F5 (se não me engano) e o micro controlador fica programado, sem isto dá um pouco mais de trabalho
O que é uma placa de desenvolvimento? Podes pôr link de uma?
E obrigado pela resposta que era mesmo o que queria!
-
AVRISP mk2, AVRDragon, JTAG ICE mk2, são mais uns poucos mas não me lembro do nome.
uma placa de desenvolvimento é uma placa pronta a usar, por exemplo o Arduino, ou as minhas MicroMega8 : http://lusorobotica.com/index.php?topic=4391 (http://lusorobotica.com/index.php?topic=4391)
-
Então eu tenho um arduino uno posso programar um atmega8 (por exemplo) usando o arduino? Substituo o micro que tem lá (atmega328) pelo atmega8 e consigo carregar para lá o programa usando o avrstudio?
-
Então eu tenho um arduino uno posso programar um atmega8 (por exemplo) usando o arduino?
se esse atmega8 tiver um bootloader gravado sim, se não tiver podes usar o arduino como um programador ISP: http://arduino.cc/en/Tutorial/ArduinoISP (http://arduino.cc/en/Tutorial/ArduinoISP)
Substituo o micro que tem lá (atmega328) pelo atmega8 e consigo carregar para lá o programa usando o avrstudio?
directamente com o avrstudio não, usas o avrstudio para fazer o programa e o WinAvr para o gravar no atmega
-
DLM,
eu uso o Arduino UNo pra gravar códigos em um atmaga8 por exemplo. Mas o Atmage8 não vem com arduino bootloader normalmente, então sigo os passos deste tutorial para gravar o bootloader, (adaptando a parte do oscilador (cristal) interno que não uso :
(vc além do Arduino uno com atmega328, necessitará do atmega "virgem", do cristal e dos 2 capacitores 22pf )
Arduino na Protoboard - Tutorial #1 (http://www.youtube.com/watch?v=dpkaFDLKw_E#)
Arduino na Protoboard - Tutorial #2 Utilizando o mínimo de componentes (http://www.youtube.com/watch?v=qzy1rmS6ols#)
depois de gravado o bootloader, vc pode tirar o atmega328 da placa, e usa o rx tx para copiar o código para o atmega8.
Funcionou aqui, mas não sei se é o mais fácil.
Boa sorte ai!
Abç
-
CBX fogo se soubesses o tempo que já andei à procura para esclarecer estas dúvidas que tinha, muito obrigado mesmo.
A parte do hardware já compreendi, agora a nível de software, programo no avrstudio e gero o tal .hex e com o winavr é que o carrego para o atmega, mas a nível de software no winavr o que preciso de fazer?
Imaginemos então que pus um atmega8 com bootloader no arduino e liguei por usb ao pc. E a partir daqui?
(no arduino IDE tinha de selecionar o arduino uno, a porta e era só fazer upload).
EDIT: Ricardo Pedroso também muito útil a tua informação obrigado também!
-
A parte do hardware já compreendi, agora a nível de software, programo no avrstudio e gero o tal .hex e com o winavr é que o carrego para o atmega, mas a nível de software no winavr o que preciso de fazer?
vê este tutorial, está aqui tudo explicado:
http://lusorobotica.com/index.php?topic=2838.0 (http://lusorobotica.com/index.php?topic=2838.0)
Imaginemos então que pus um atmega8 com bootloader no arduino e liguei por usb ao pc. E a partir daqui?
(no arduino IDE tinha de selecionar o arduino uno, a porta e era só fazer upload).
a porta seria a mesma, a board seria diferente, terias de seleccionar a que diz se não me engano "Arduino NG w/atmega8" ou caso queiras usar um bootloader mais recente, o optiboot (mais pequeno e mais rápido) terias de fazer mais umas alterações
-
Para conectar um USBasp à breadboard e por sua vez ao atmega preciso de algo assim certo?
http://www.ebay.com/itm/10-pcs-DC3-10P-2-54mm-Pitch-Dual-Row-5-x-2-ISP-Download-JTAG-I-O-Socket-DIY-New-/260938136120?pt=LH_DefaultDomain_0&hash=item3cc11ffa38 (http://www.ebay.com/itm/10-pcs-DC3-10P-2-54mm-Pitch-Dual-Row-5-x-2-ISP-Download-JTAG-I-O-Socket-DIY-New-/260938136120?pt=LH_DefaultDomain_0&hash=item3cc11ffa38)
Depois é só ligar por USB e o Atmel Studio 6.0 reconhece automaticamente?
-
para ligar à breadboard precisas disto: https://www.sparkfun.com/products/8508 (https://www.sparkfun.com/products/8508) ou de uns fios
o Atmel studio só é compatível com programadores oficiais, o usbasp não é oficial, vê o link que deixei no post anterior
-
Para este tutorial serve usar um ressoador ceramico?
é que tenho ca uns atmegas e attiny virgem mas nunca dão qualquer assinatura e parece ser um problema dos fuses virem para crystal externo
-
Para este tutorial serve usar um ressoador ceramico?
é que tenho ca uns atmegas e attiny virgem mas nunca dão qualquer assinatura e parece ser um problema dos fuses virem para crystal externo
Envia os atmegas prá G7 que nós desblokeamos os micros, corrigimos os fuses e gravamos-te qq bootloader neles! contacta-me por pm se tiveres interessado e se quiseres saber o nosso orçamento! 8)
-
Se vieram para cristal externo é meter um cristal, mas para isso têm de ser chips usados, porque de fábrica vêm com fuses para o oscilador interno, com clkdiv activado, ISP activado, sem área de bootloader e mais qualquer coisa.
-
mas sempre que procuro este problema de receber 0x00 de assinatura vejo que foi resolvido adicionando um cristal externo. vou tentar. pode ser que os que recebi tivessem sido usados ou configurados. (apesar de terem vindo sample da atmel)
-
Então é porque tens alguma coisa mal ligada..
-
ja fiz isto umas 5 vezes e todas as vezes verifiquei varias vezes as conexões, os passos dos tutoriais e nada.
-
para ligar à breadboard precisas disto: https://www.sparkfun.com/products/8508 (https://www.sparkfun.com/products/8508) ou de uns fios
Agora sim penso que já percebi tudo.
Entretanto encontrei uns USBasp no ebay que oferecem um conversor de 10 pinos para 6 pinos, que me devem facilitar o trabalho, é só arranjar um header 6 pinos e ligar a uma breadboard.
o Atmel studio só é compatível com programadores oficiais, o usbasp não é oficial, vê o link que deixei no post anterior
Já estive a ver, então um USBasp, desenvolve-se o programa no AVR Studio, e através da linha de comando carrega-se o programa desenvolvido para o micro, é isto?
Entretanto e como a encomenda do ebay deve demorar, vou tentar seguir este tutorial para fazer com que o arduino funcione como programador.
Programming AVR with Arduino (http://www.youtube.com/watch?v=_ZL-YNOH_jA#ws)
-
Ainda mais fácil é usar uns simples cabos com pontas macho e femea, compras 50 ou 100 no eBay por meia duzia de € e ligas.
-
Ainda mais fácil é usar uns simples cabos com pontas macho e femea, compras 50 ou 100 no eBay por meia duzia de € e ligas.
eu tenho ca cabos F/F porque é os que costumo usar. se so tiveres desse serve.
para ligar à breadboard uso um fio de cobre mais grosso que consegue encaixar nesses fios. tambem uso os encaixes macho que se metem nas pcbs. devem dar para encaixar na breadboard
-
Nao ha algo parecido ao usbasp mas que inclui no isp os sinais serial
Assim podia gravar os programas sem bootloader e continuar a comunicar com o pc por serial
-
É um conversor usb-serial ligado á uart do bicho.
-
Nao sei se fui eu que nao me expliquei, ou nao percebi a tua resposta
Eu estava a perguntar se havia algum programador de ficheiro hex para o atmega que ao msm tempo permiti-se falar com ele por serial depois de ter sido programado
Assim evitava de haver um programador e um chip ftdi ligado ao msm atmega
-
Que eu saiba não, e os pinos de ISP não têm serial.
-
Há uns clones do avrisp mk2 que também têm uma porta serial
-
ele está a perguntar pelo software e nao pelo hardware, certo?
-
o
ele está a perguntar pelo software e nao pelo hardware, certo?
estava a procura de uma soluçao do msm genero e preço
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.fischl.de%2Fusbasp%2Fbilder%2Fusbasp_circuit.png&hash=817c18f00f38d3cd4993c048073119648c31e3db)
o usbasp tem isp, e tem as linhas serial, mas acho que nao estao a funcionar
-
não funcionam
-
era capaz de funcionar um chip ftdi ligado a um atmgea programado com arduinoISP, e ainda essas ligaçoes do ftdi iriam estar juntas com o isp de 10pinos
acham que funcionava?
edit: agr estava me a lembrar, que da para programar com o ftdi
-
Sim, com o FTDI é possível criar uma interface ISP para que possa programar um micro, esse IC tem disponíveis todos os pinos necessários, coisa que um simples USB/Série já não daria, pois são necessários 4 sinais (Rst, Sck, Miso e Mosi)
-
Sim, com o FTDI é possível criar uma interface ISP para que possa programar um micro, esse IC tem disponíveis todos os pinos necessários, coisa que um simples USB/Série já não daria, pois são necessários 4 sinais (Rst, Sck, Miso e Mosi)
esta é a ser dificil de programar o chip pelo ftdi
-
eu fiz esse programador da imagem. Não tenho qualquer problema com ele. É só ligar a ficha no usbasp e no atmega e fazer upload.
A unica desvantagem é que não tem ligação serial com o pc.
-
Nem nenhum programador!
Serial não tem nada a ver com um programador ISP.
Continuo sem ver qual é o problema ou o custo de ter dois fios ligados aos pinos da porta serial..
Se queres fazer debug a sério, compras um Dragon e programas e debugas por JTAG!
-
Ainda ando às cabeças com isto de programar o atmega com o Arduino.
Tenho um atmega8A e um Arduino UNO.
Quero montar o atmega numa breadboard com um led a piscar, só.
O programa quero desenvolvê-lo no Atmel Studio 6.0 (o código vai ser o do tutorial de senso).
Que passos tenho de seguir para o conseguir fazer? (se não se importarem numerem os passos para perceber melhor).
-
Nem nenhum programador!
Serial não tem nada a ver com um programador ISP.
Continuo sem ver qual é o problema ou o custo de ter dois fios ligados aos pinos da porta serial..
Se queres fazer debug a sério, compras um Dragon e programas e debugas por JTAG!
nao quero estar a ocupar duas portas usb, uma para comunicaçao serial e outra porta usb para isp.Acho que era ideal ter um dispositivo com as duas caracteristicas
talvez um dia compre um programador a serio, mas ate lá nao tenho dinheiro para esses luxos
como estudante ja é dificil de arranjar dinheiro para estas pequenas brincadeiras
-
Ainda ando às cabeças com isto de programar o atmega com o Arduino.
Tenho um atmega8A e um Arduino UNO.
Quero montar o atmega numa breadboard com um led a piscar, só.
O programa quero desenvolvê-lo no Atmel Studio 6.0 (o código vai ser o do tutorial de senso).
Que passos tenho de seguir para o conseguir fazer? (se não se importarem numerem os passos para perceber melhor).
para mim, a maior parte dos problemas deve-se ao maus contactos entre os fios e o arduino
Os passos sao normalmente dps de ter o hex, é abrir o avrdude na consola e escrever qualquer coisa do genero
avrdude.exe -c arduino -p com5 -b115200 -U flash:w:ficheiro.hex
e obviamente ter as ligaçoes feitas a nivel de hardware
-
São 50€, não é assim tão caro quanto isso, e vale bem a pena o investimento.
A não ser que o programador tenha código e software especifico no lado do pc vais sempre precisar de duas portas USB, dá para ter duas portas usb independentes(a nivel de enumeração e bla bla bla) sobre um só cabo usb, mas não é muito comum.
Mas eu com um portátil, tenho 4 portas usb, uma para o rato, uma para o dragon, outra para usb-serial, e ainda sobra outra porta, um hub-zito tambem custa 3-4€.
-
São 50€, não é assim tão caro quanto isso, e vale bem a pena o investimento.
A não ser que o programador tenha código e software especifico no lado do pc vais sempre precisar de duas portas USB, dá para ter duas portas usb independentes(a nivel de enumeração e bla bla bla) sobre um só cabo usb, mas não é muito comum.
Mas eu com um portátil, tenho 4 portas usb, uma para o rato, uma para o dragon, outra para usb-serial, e ainda sobra outra porta, um hub-zito tambem custa 3-4€.
sao opinioes
tenho um portatil com 1 ano, e so tem 3 portas usb, uma é smp para o rato e depois sobra duas, as vezes la ligo o disco externo e tal
o problema do hub é que precisa de alimentaçao external e dispenso mais cabos
mas pronto, encerrando este assunto, concluo que vou continuar a programar td por serial,apesar de as vezes ser chato uma pessoa andar a gerar um bootloader para as suas necessidades
-
Não tens de andar sempre a gerar bootloaders, só tens de os compilar uma vez, dás o nome de atmegaxxxyyMhz e está feito, xxx é o modelo yy é os Mhz para que foi compilado, e está feito, é enfiar no micro com isp e não tens de os andar sempre a compilar.
O meu portatil já tem 3 anos, não acho que seja assim tão incómodo ter um hub pequenino só para ligar essas coisas e ter logo tudo ligado até.
-
pois é vdd, tb so costumo variar entre dois atmegas e duas velocidades de clock
-
Se forem DIP's, e se tiveres vários, programas tudo de seguida e metes um pedaço de papel autocolante com a versão do bootloader que lhes programares
-
nunca me tinha ocurrido isso, mesmo esta quarta programei dois atmegas que tinha comprado ao Hugo, e reprogramei o arduino duemilanove para ficar igual ao uno
-
para mim, a maior parte dos problemas deve-se ao maus contactos entre os fios e o arduino
Os passos sao normalmente dps de ter o hex, é abrir o avrdude na consola e escrever qualquer coisa do genero
avrdude.exe -c arduino -p com5 -b115200 -U flash:w:ficheiro.hex
e obviamente ter as ligaçoes feitas a nivel de hardware
Podes explicitar essa parte do hardware por favor?
O micro do Arduino é para tirar fora ou é para deixar estar e programar como ISP?
-
Fim da página, ta o esquema. isto é pra um atmega168, ves o datasheet dele e tiras o nome dos pinos, so tens de ligar no teu caso nos pinos com o mesmo nome.
http://arduino.cc/en/Tutorial/ArduinoISP (http://arduino.cc/en/Tutorial/ArduinoISP)
-
avrdude.exe -c arduino -p com5 -b115200 -U flash:w:ficheiro.hex
O "-b115200" é de onde? Pode variar?
-
avrdude.exe -c arduino -p com5 -b115200 -U flash:w:ficheiro.hex
O "-b115200" é de onde? Pode variar?
experiemnta "avrdude ?"
explica tudo o que precisas de saber
-
-p é para indicar o microcontrolador e não a porta serial.
-P é sim para indicar a porta serial. No caso de estares a fazer o upload do código para o arduino via cabo usb, tens de colocar -P COMX, no caso de estares a programar o microcontrolador via SPI, com um programador, não precisas disso. Colocas o nome do programador no parâmetro -c.
Cumprimentos