ラベル AVR の投稿を表示しています。 すべての投稿を表示
ラベル AVR の投稿を表示しています。 すべての投稿を表示

2019年11月4日月曜日

ATmega164PのJTAGを禁止する

初期状態のATmega164PのPC2 - PC5 は、JTAGに割り当てられているため、そのままでは入出力に使えません。これらのピンを入出力で使うには、JTAGを禁止する必要があります。
ネット上ではソフト的に禁止する方法が見つかるのですが、試したてみたものの、うまく行きませんでした。

ハード的にJTAGを禁止するには、ヒューズビットの上位バイトのbit6を1に書き換えます。
私の手持ちの石の上位バイトは0x99でしたので、これを0xD9に書き換えます。
AVR ISP mkIIを使ってavrdudeで書き換える場合だと、
avrdude -c avrisp2 -P usb -p m164p -U hfuse:w:0xD9:m 

ヒューズビットの設定を間違えると最悪起動しなくなることもあるので、注意が必要です。

2018年1月8日月曜日

AVRの開発環境 その3

Linux で、Atmel ATmega328P に AVR ISP mkII を使ってヒューズビットを書き込む。

  sudo avrdude -c avrisp2 -P usb -p m328p -U lfuse:w:0xD7:m

オプションの-U lfuse:w:0xD7:m は、 下位ヒューズバイトに、即値で16進数 0xD7 を書き込むの意味

2017年9月16日土曜日

AVRの開発環境 その2

avr-gcc でのコンパイル
  avr-gcc  -Os -mmcu=atmega328p -c xxxxx.c

オブジェクトファイルをELFへ
  avr-gcc  -mmcu=atmega328p -o xxxxx.elf  xxxxx.o


2段階でコンパイルしてELFにしているが、一発でやるにはどうするんでしょう?

これで、Linux上でコンパイルからチップへの書き込みまでできるようになりました。

2017年9月15日金曜日

AVRの開発環境 その1

Linux で、Atmel ATmega328P に AVR ISP mkII を使ってプログラムを書き込む。

  sudo avrdude -c avrisp2 -P usb -p m328p -U flash:w:*****.elf:e -v

オプションの-U flash:w:*****.elf:e は、 "Flash ROM に、 ELFファイル******.elf を書き込む"の意味