- ・はじめに
- ・使ったもの
- ・CrossPack-AVR をインストール
- ・Xcodeをインストール
- ・PATHを通す
- ・avrdudeをインストールする
- Lチカする
- main.cを編集してプログラムを作成する
- 上手く書き込めたらこんな感じ
・はじめに
macでavr開発環境を構築してみた
・使ったもの
Mac mini (Late 2014) macOS High Sierra
Rasbee 51 AVR Atmega プログラムUSBasp USBASP 10ピン USB プログラマー 3.3V/5V ワット/ケーブル 1個 [並行輸入品]
- 出版社/メーカー: Rasbee
- メディア: エレクトロニクス
- この商品を含むブログを見る
*aitendoのusbasp2を使いました
ATtiny85
ジャンパワイヤ
LED
10kΩ抵抗
・CrossPack-AVR をインストール
以下のサイトからCrossPack-AVRをインストール
今回はCrossPack-AVR-20131205
をインストールした。
・Xcodeをインストール
AppStoreからXcodeをインストールする
30~40分ぐらいかかるかも
・MacPortsをインストール
以下からMacPortsをインストール
Mac Ports とはmacで使えるパケージ管理システムの1つ
//ubuntu(debian系)だとapt、Cent OSだとyum ですね
avrdudeというソフトをインストールするのに使うので
インストールする
osがHigh Sierraなので、それに対応したやつを
ダウンロードしてインストール
・PATHを通す
CrossPack-AVR とMac Ports のコマンドを使えるように
するためPATHを通す。
vim ~/.profile
で。.profileを開き以下の2行を追記し保存
export PATH=$PATH:/opt/local/bin export PATH=$PATH:/usr/local/CrossPack-AVR/bin
echo $PATH
でPATHが通っているか確認
・avrdudeをインストールする
avrdudeとはatmel AVRで使われるライタや開発機器を
コントロールするプログラム
sudo port install git libusb avrdude which avrdude
git-core からgitへ名前が変わった模様
以上で開発環境の構築は終了
ではLEDを光らせるとこまでやってみる
マイコンはATtiny85を使用した
Lチカする
・プロジェクトを作る
$avr-project led_blink
でled_blinkプロジェクトファイルが
作成された
$cd led_blink/firmware
firmwareの中には
Makefileとmain.cファイルが存在する
まずはMakefileの設定から
・Makefile の書き換え
$vim Makefile
DEVICE
赤線部分を書き換えていく
今回はATtiny86を使うのでDEVICEを
atmega8を書き換える
CrossPack-AVRの中にマニュアルがあるので
見てみる。
$cd /usr/local/CrossPack-AVR/manual $open index.html
検索してみるとattiny85がサポートされていることが
示されている。デバイス名は小文字で表記されているんで
DEVICE = attiny85
とする
CLOCK
CLOCK数は8MHzを使うので変更しない
使うCLOCKを変えたい時はここも変更
しないといけない
PROGRAMER
書き込み装置の指定
USBasp2を使って書き込むので
PROGRAMER = -c usbasp
-cオプションは指定されたプログラマ(書き込み装置)
を設定ファイルから特定するもの
書き込み装置としてArduinoもリストに
載ってるのが面白い
以下のサイトからプログラマのリスト
が確認できる。
FUSESの設定
以下のサイトからフューズの計算を行う
まずattiny85を選択する
赤丸部分を変更して内部クロックか外部クロック
なのか、何MHzにするかを設定する
今回は変更しないでデフォルトの値でok
最後、赤線の部分のコードをコピーして
Makefileに貼り付ける
DEVICE = -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
Makefileまとめ
ざっとMakefileについての説明はここまで
Makefileは以下のになる
DEVICE = attiny85
CLOCK = 8000000
PROGRAMMER = -c usbasp
OBJECTS = main.o
FUSES = -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
編集し終わったらMakefileを保存して
$ make
上のスクショみたいになれば成功
main.cを編集してプログラムを作成する
ATtiny85のピンアウトを以下に示した
sorce: attiny25_attiny45_attiny85の仕様書2ページ
PB4ピンにLEDを繋げてLチカをする
$vim main.c
7 #include <avr/io.h>
8 #include <util/delay.h>
9 #define F_CPU 8000000UL
10 int main(void)
11 {
12 DDRB = 0b010000;
13
14 while(1) {
15 PORTB = 0b010000;
16 _delay_ms(100);
17 PORTB = 0b000000;
18 _delay_ms(100);
19 }
20 }
ここまで来ればあとちょっと
ATtiny85とUSBasp2を接続してプログラムを
書き込む準備をする
USBasp2の端子は以下のようになっている
sorce:https://ht-deko.com/arduino/usbasp.html#04
この表に対応するようATtiny85と
USBaspを接続する
USBasp2 | ATtiny85 |
---|---|
CLK | CLK |
MISO | MISO |
MOSI | MOSI |
RST | RESET |
VCC | VCC |
GND | GND |
Makefileの設定を書き換えた時は
$make fuse
Makefileの設定を変更してない時は
$make flush
でATtiny85に書き込み
上手く書き込めたらこんな感じ
<参考文献>