Índice:

Como desativar o JTAG antes de inicializar o Atmegas 40DIP com o IDE Arduino Mightycore: 4 etapas
Como desativar o JTAG antes de inicializar o Atmegas 40DIP com o IDE Arduino Mightycore: 4 etapas

Vídeo: Como desativar o JTAG antes de inicializar o Atmegas 40DIP com o IDE Arduino Mightycore: 4 etapas

Vídeo: Como desativar o JTAG antes de inicializar o Atmegas 40DIP com o IDE Arduino Mightycore: 4 etapas
Vídeo: Live Coding - Streamdeck DIY com ESP32 #1 2024, Julho
Anonim
Como desativar o JTAG antes de inicializar o Atmegas 40DIP com o Arduino IDE Mightycore
Como desativar o JTAG antes de inicializar o Atmegas 40DIP com o Arduino IDE Mightycore

Recentemente comecei a usar o atmegas 40 DIP para controlar sistemas industriais porque este tipo de microcontrolador fornece muitas E / S analógicas ou digitais, então você não precisa de nenhum expansor.

O atmegas32 / 644p / 1284p inclui uma maneira de baixar o esboço que você criou, que é chamado de "JTAG" (ver

en.wikipedia.org/wiki/JTAG para mais explicações). Se você usa Arduino IDE ou LDmicro (IEC 61-131) os esboços são baixados pela porta SPI e os pinos JTAG (4 pinos: PC2 (D18) PC3 (D19) PC4 (D20) PC5 (D21) não estão disponíveis para nada. Então você tem que desabilitar JTAG em seu programa.

Com o IDE do arduino, você só precisa adicionar 3 linhas de código na seção de configuração, como este:

uint8_t tmp = 1 << JTD;

MCUCR = tmp;

MCUCR = tmp;

O método da linha duas vezes MCUCR.

Com o LDmicro não consegui fazer nada.

Para evitar esses problemas, inicializei após a manipulação do registro MCUCR em meu atmegas com o Arduino IDE sob Mightycore. Uma forma de queimar os fusíveis com um JTAG desativado.

Etapa 1: O cálculo do fusível de seu circuito 40DIP:

O cálculo do fusível do seu circuito 40DIP
O cálculo do fusível do seu circuito 40DIP
O cálculo do fusível do seu circuito 40DIP
O cálculo do fusível do seu circuito 40DIP
O cálculo do fusível do seu circuito 40DIP
O cálculo do fusível do seu circuito 40DIP

Vá para o site:

eleccelerator.com/fusecalc/fusecalc.php?chi…

Escolha o bom circuito (atmega1284p no meu exemplo, mas da mesma forma com outros 40 DIP atmegas) e olhe para "U hfuse: w: 0x99: m" e desmarque JTAGEN para que dê "U hfuse: w: 0xD9: m". Lembre-se do valor 0xD9.

Etapa 2: Procurando o arquivo Boards.txt no diretório Mightycore:

Procurando pelo arquivo Boards.txt no diretório Mightycore
Procurando pelo arquivo Boards.txt no diretório Mightycore
Procurando pelo arquivo Boards.txt no diretório Mightycore
Procurando pelo arquivo Boards.txt no diretório Mightycore

No seu PC, pesquise o diretório Mightycore. Para mim, em C: / user / myself / AppData / Local / Arduino15 / packages / Mightycore / Harware / avr / 2.0.0 / boards.txt.

Etapa 3: Modifique o Boards.txt e o Bootload com Mightycore:

Modifique o Boards.txt e o Bootload com Mightycore
Modifique o Boards.txt e o Bootload com Mightycore

Dê uma olhada no bloco de frequência do relógio do atmega1284p com Notepad ++.

Modifique cada fusível alto como “1284.menu.clock.16MHz_external.bootloader.high_fuses = 0xd6” para "1284.menu.clock.16MHz_external.bootloader.high_fuses = 0xd9" (0xd9 o valor anterior que você precisava lembrar). Salve-o.

Então você só tem que seguir o método de inicialização fornecido em

www.instructables.com/id/Arduino-18x-Clone…

É isso.

Etapa 4: Conclusão:

Agora você ganha 4 I / O e não precisa fazer nenhuma manipulação de registro em seus esboços. Você também pode voltar e ativar o JTAGEN e reiniciar mais uma vez.

Obrigado a todos os tutoriais interessantes na web que me deram algumas chaves para ter sucesso neste projeto.

Recomendado: