Página 1 de 2

USBASP: gravação dos LOCK e FUSE bits desabilitada via ISP

MensagemEnviado: 14 Fev 2017 09:39
por andre_luis
Pessoal,


Gravei uma vez com o USBASP o programa numa placa com o AVR pelos pinos MISO/MOSI/SCK e depois da primeira gravação nao aceito mais nada. Dando uma pesquisada por ai afora, nao ficou muito claro o que fazer para desabilitar esses lock bits ( um deles impede gravações futuras ). Cada um sugere utilizar uma solução diferente, das mais simples ás mais complexas,

Enfim, algum saberia de algum procedimento para resolver isso ?


at

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 14 Fev 2017 12:28
por andre_luis
Algo que nao sei se tem relação, mas o gravador informa que o "device is not powered" apesar da alimentação estar lá direitinho.
Nas 2 placas o mesmo problema, na 1a onde conseguimos gravar o programa via ArduinoISP (uma unica vez) e na outra placa 'virgem', cujo unico contato com gravador foi via USBASP.

Enfim, apesar de termos feito uma placa seguindo o mesmo esquema eletrico do Arduino, os metodos de gravação que estamos tentando não estao dando resultado.
A proposito, estou compilando em C via WinAVR.

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 14 Fev 2017 13:33
por edsont
Dependendo do que foi setado nos FUSE bits só dá pra ressuscitar o MCU por High Voltage programming.

Já aconteceu comigo quando eu bricava com os FUSEs do Atmega328. Péssima idéia. Tive que montar um programador paralelo na protoboard.

Um dos problemas que pode ocorrer é configurar o clock como externo. Aí não funciona nem o cristal/ressonador nem o oscilador RC interno. Tem que gerar clock e injetar no pino.

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 08:18
por tcpipchip
eu uso o velho e bom ponyprog via ISP (PARALLEL)

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 12:57
por pamv
Eu tive alguns problemas com programas para windows que controlam o avrdude para gravar com usbasp e terminei conseguindo gravar usando o avrdude direto na linha de comando do linux.

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 15:09
por andre_luis
edsont escreveu:Dependendo do que foi setado nos FUSE bits só dá pra ressuscitar o MCU por High Voltage programming


Jesus do céu...
Mas dá pra eu habilitar isso apenas colocando uma tensão alta DC nesse pino ?

edsont escreveu:Um dos problemas que pode ocorrer é configurar o clock como externo. Aí não funciona nem o cristal/ressonador nem o oscilador RC interno. Tem que gerar clock e injetar no pino.


Putz, foi exatamente o que fiz, defini como clock externo, achando que devido ao fato de não ter opção para 16MHz, esse poderia atender ( o máximo que havia lá era 8MHz ).

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 15:32
por edsont
pamv escreveu:Mas dá pra eu habilitar isso apenas colocando uma tensão alta DC nesse pino ?


Acho que não é um sinal constante. Não lembro como era o circuito.

pamv escreveu:Putz, foi exatamente o que fiz, defini como clock externo, achando que devido ao fato de não ter opção para 16MHz, esse poderia atender ( o máximo que havia lá era 8MHz ).


Neste caso talvez injetando um sinal retangular no pino do clock você consiga reprogramar os FUSEs. Uma vez vi num site que alguem tinha montado tipo um injetor de sinais, que ele só encostava no pino para "reabilitar" o MCU. A frequência era baixa. Vou dar uma procurada pra ver se encontro de novo.

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 15:43
por edsont
Não achei o site, mas se tiver um sinal de 1MHz deve ser suficiente segundo este site:

http://www.larsen-b.com/Article/260.html

Se não conseguir comunicar possivelmente não é só o clock. É bom checar bem antes de setar qualquer coisa. Os programinhas de gravação que indicam qual a função de cada bit ajudam bastante.

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 20:09
por andre_luis
Mas, nesse caso, se eu comprar um gravador com o recurso HVSP, os pinos usados no uC são os mesmos ?
Digo, a unica diferença é o RES que agora estaria recebendo um 12v ?

O problema é que fiz conector de gravação apenas para o ISP.

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 20:52
por edsont
O programador dá pra fazer com um arduino:
https://mightyohm.com/blog/2008/09/ardu ... rogrammer/

Ele é paralelo, usa vários pinos.

Não tenho certeza, mas o HV Serial programming acho que só serve para os ATtiny.

O pino do clock está acessível? Já tentou comunicar pelo USBASP enquanto injeta sinal no clock do MCU?

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 20:56
por andre_luis
Se nao tem serial no 2560 a casa caiu.
Tenho vários pinos atualmente utilizados.

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 15 Fev 2017 21:20
por edsont
Segundo o site da Atmel somente os MCUs de 8 pinos tem serial:

http://www.atmel.com/webdoc/stk500/stk5 ... mming.html

O Mega2560 tem JTAG, mas não sei como funciona essa interface.

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 16 Fev 2017 00:07
por pamv
andre_teprom escreveu:Se nao tem serial no 2560 a casa caiu.
Tenho vários pinos atualmente utilizados.


você tentou gravar o programa usando o avrdude na linha de comando e o usbasp ? o que deu errado?

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 16 Fev 2017 05:47
por tcpipchip
este que uso
http://dybkowski.net/content/en/node/15

é via MOSI, MISO, etc

Re: USBASP: gravação dos LOCK e FUSE bits desabilitada via I

MensagemEnviado: 16 Fev 2017 07:42
por andre_luis
pamv escreveu:você tentou gravar o programa usando o avrdude na linha de comando e o usbasp ? o que deu errado?


Sim, tentei varios programas baseados no avrdude, tanto com um arduino usado como isp programmer, como também pelo usbasp, e em todos os casos, informa tensão de alimentaçao do device 0v, e nao consegue conversar com o CI.

Buscando informações por aí afora, parece que se gravar como Oscilador externo(Fuses), como também se gravar para impedir novas grravações (Lock) somente com gravação HV, o que não é suportado nem pelo Arduino nem pelo USBASP.

Nesse caso, pra evitar alguma desgraça maior, pensei em comprar um gravador pronto com suporte á HVSP e/ou HVPP, mas no 2560 apenas o modo paralelo é suportado, e a ATMEL nos fez o favor de dedicar VARIOS pinos pra isso, tipo mais de 10, que já estão sendo utilizados.