LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: Sovietico em 04 de Dezembro de 2015, 19:43

Título: Conexão AVR ISP
Enviado por: Sovietico em 04 de Dezembro de 2015, 19:43
Boas malta,

Ontem experimentei programar o meu primeiro ATMega328. Ate a data so tinha programado em PIC.
Decidi seguir o tutorial do senso e quando chegou à parte de programar fiz as ligações todas e aqui começaram os problemas:

1. Liguei MISO a MISO, MOSI a MOSI e por ai alem.
2. Tenho um cristal externo de 16MHz com condensadores de 22pF a ligar ao GND.
3. Nao mexi nos fuses e os micros sao completamente novos e comprados em loja física no Porto.
4. Consigo ler uma target voltage de 5V mas obtenho o erro "Unablebto entre programming mode" quando faco read signature.

Alguém consegue ajudar a solucionar o problema?
Título: Re: Conexão AVR ISP
Enviado por: senso em 04 de Dezembro de 2015, 20:31
Pull up no reset?
Decoupling dos pinos de alimentação?
Título: Re: Conexão AVR ISP
Enviado por: Sovietico em 04 de Dezembro de 2015, 20:43
10k dos 5V ao pino de reset.
Nao tinha nada nos pinos de VCC, GND e AREF.
Título: Re: Conexão AVR ISP
Enviado por: Njay em 04 de Dezembro de 2015, 20:49
Não convém os fios entre o chip e o programador terem mais de 20 - 25cm.

Um erro comum é trocar o MISO com o MOSI, verifica isso com muita atenção.

Um chip virgem não precisa de cristal, mas não faz mal lá estar.

Que programador estás a usar?
Título: Re: Conexão AVR ISP
Enviado por: Sovietico em 04 de Dezembro de 2015, 21:16
As conexoes estão bem feitas: Miso para miso e mosi para mosi. Verifiquei isso uma dezena de vezes.

O programador e um AVRISP mkii.
So que eu acho que ele já não estão bom porque segundo o que me disseram, ja andaram a trocar o flat cable.

Posto isto eu pergunto, mesmo que tenha trocado os pinos miso e mosi (da primeira vez liguei pela ficha e so depois e que liguei direto a PCB) o programador queimaria? Ele continuou a dar os dois leds verdes...

Eu tinha o cristal porque queria testar se o LCD tinha um comportamento melhor a essa frequencia. Basta o F_CPU 16000000LU para definir o cristal? Nao tenho que mexer nos fuses?
Título: Re: Conexão AVR ISP
Enviado por: dio123 em 04 de Dezembro de 2015, 23:39
Trocar  miso mosi e sck  já aconteceu muitas vezes e nunca fritou.

Se tiveres iposes de testar outro programador, ou com arduino 2009.
Título: Re: Conexão AVR ISP
Enviado por: senso em 05 de Dezembro de 2015, 00:14
Tens de mudar os fuses sim, para Ext crystal, sem bootloader e BOD a 4.3v, para o 328p com 16Mhz fica assim:
http://www.engbedded.com/fusecalc/ (http://www.engbedded.com/fusecalc/)
Low:0xFF
High: 0xD9
Extended: 0xFC
Título: Re: Conexão AVR ISP
Enviado por: dropes em 05 de Dezembro de 2015, 00:36
O UNO original tem os fuses:
Efuse: 05
Hfuse: DE
Lfuse: FF

Ao colocar estes fuses ficará com BOD 2.7V, oscilador externo, 8..16MHz,  slowly rising power.
O Atmega328P costuma ter duas assinaturas diferentes, pelo que podem dar erro na programação deles por não os reconhecer.
Neste caso costumo editar um ficheiro de configuração (avrdude) e altero a assinatura para a lida.
Título: Re: Conexão AVR ISP
Enviado por: Njay em 05 de Dezembro de 2015, 01:07
As conexoes estão bem feitas: Miso para miso e mosi para mosi. Verifiquei isso uma dezena de vezes.

O programador e um AVRISP mkii.
So que eu acho que ele já não estão bom porque segundo o que me disseram, ja andaram a trocar o flat cable.

Posto isto eu pergunto, mesmo que tenha trocado os pinos miso e mosi (da primeira vez liguei pela ficha e so depois e que liguei direto a PCB) o programador queimaria? Ele continuou a dar os dois leds verdes...
Se meteres 1 resistência de uns 100 Ohm em série com o MOSI e MISO não deve queimar nem degradar nada (para o dio123: lá porque não frita logo, não quer dizer que não fica degradado). Se estiver trocado o problema é que ficam 2 saídas ligadas "uma contra a outra" e qualquer diferença de estado ou tensão de alimentação faz circular uma corrente alta entre as 2 saídas (se uma estiver a high e outra a low cria um curto na alimentação), degradando/destruindo o circuito interno do pinos. O programador pode já ter essas resistências, não sei.
Título: Re: Conexão AVR ISP
Enviado por: Sovietico em 05 de Dezembro de 2015, 12:54
Boas,

Desde já obrigado pelos conselhos. O que vou fazer então vai ser o seguinte:

1. Vou tentar alterar os fuses para os do Senso. Confesso que gostaria de aprender mais sobre isso mas estou numa corrida contra o tempo e se esses funcionarem vou adiar a leitura sobre o assunto. Consigo altera-los sem ler a assinatura? Porque eu acho que ele me deu o mesmo erro quando mudei para o menu Fuses (sem certezas porque já estava com a cabeça noutro lado).

2. Vou colocar a resistência de 220ohm (é a mais baixa que tenho) entre o MISO e o MOSI e testar outro programador.

3. Vou comprar outro ATmega de 28 ou 40 pinos (ainda não sei qual) e testar sem utilizar clock externo. Já que o 328p tem problemas nas assinaturas não me custa tentar isto.


Não queria voltar ao PIC até porque no meu último ano de mestrado vou ter de trabalhar com Atmel.
Título: Re: Conexão AVR ISP
Enviado por: senso em 05 de Dezembro de 2015, 13:14
Mas que atmega é que estás a usar afinal?
A assinatura do 328 é diferente do 328p, agarra no chip e lê o que lá está.
Título: Re: Conexão AVR ISP
Enviado por: Sovietico em 05 de Dezembro de 2015, 13:57
Mas que atmega é que estás a usar afinal?
A assinatura do 328 é diferente do 328p, agarra no chip e lê o que lá está.

É um 328p senso
Título: Re: Conexão AVR ISP
Enviado por: Sovietico em 12 de Dezembro de 2015, 13:58
Só para deixar registado, troquei o programador por um comprado novo e original e funcionou sem problemas  8)