「chibiegg研究ノート」さんの記事(http://www.chibiegg.net/elec/avr-elec/74hc595_sample.htm)を参考にしました。
ブレッドボード図
↑表記はatmega168になっていますが、実際はATMega88V(http://akizukidenshi.com/catalog/g/gI-03655/)を使用しました。
「chibiegg研究ノート」さんの記事では、ATiny2313を使用されていますが、リズムマシンのシーケンス入力制御用にはATMega88Vを使用する予定なのでPIN配置を変更した。
AVRのソースはほとんどそのままだが、ATMega88VのPIN配置に合わせて
#define SHIFT_PORT PORTBに変更。DDRも合わせて変更した。
#define SHIFT_DATA PB1
#define SHIFT_SCK PB2
#define SHIFT_RCK PB3
//DDRB = 0b00000111; //入出力設定ATMega88VのFuse Bitはデフォルトのまま
DDRB = 0b00001110;
hFuse: 0Fh基本的には内蔵RCクロック1MHzの動作の設定です。
lFuse: 62h
eFuse: 01h
eFuseの値はavrdudeの読み取り値でこういう値でした。
→ATMega328PではデフォルトでeFuse:0Fhとかだったような気がしますがよく覚えていない(^q^;
動作状態
3.3V駆動で問題なく動作したので、たいしたことない動画だが、youtubeにあげてみた。動画撮影にはこの間川崎のキャンドゥ(セリアだったかな?)でゴリラポッドみたいな三脚を買ったので使ってみた。
安っすかったけどちゃんと使えたです(^q^/)
SPI
「chibiegg研究ノート」さんのところでAVRのSPIを使う方法も紹介されていたのでやってたが、こちらも動作OK。SPIのメリットとしてはコードサイズを節約出来て動作が早くなるようだが、AVRのSPI用のPIN(SCK, MISO, MOSI, SSにアサインされているPB2..PB5)が予約されてしまうようで今回の用途では少し使いづらい。(MISOとSSは使わないので)
GPIOを使ったほうがある程度PIN配置の自由が効きそうなのでGPIOを使う方向で考えたいと思う。
ソースコードも多少改変したのでGithubにあげました。
https://github.com/ryood/74HC595_Test
0 件のコメント:
コメントを投稿