• Welcome to LusoRobótica - Robótica em Português.
 

Conexão AVR ISP

Started by Sovietico, 04 de December de 2015, 19:43

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Sovietico

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?

senso

Pull up no reset?
Decoupling dos pinos de alimentação?
Avr fanboy

Sovietico

10k dos 5V ao pino de reset.
Nao tinha nada nos pinos de VCC, GND e AREF.

Njay

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?

Sovietico

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?

dio123

Trocar  miso mosi e sck  já aconteceu muitas vezes e nunca fritou.

Se tiveres iposes de testar outro programador, ou com arduino 2009.

senso

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/
Low:0xFF
High: 0xD9
Extended: 0xFC
Avr fanboy

dropes

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.

Njay

Quote from: Sovietico on 04 de December 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...
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.

Sovietico

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.

senso

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á.
Avr fanboy

Sovietico

Quote from: senso on 05 de December 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á.

É um 328p senso

Sovietico

Só para deixar registado, troquei o programador por um comprado novo e original e funcionou sem problemas  8)