今朝方の実装図でとりあえず実装。PWMドライバPCA9685からL型端子までのところはLED14のピンしか繋いでいない状態だがテストは可能。
無事PWMでLEDがぽわんと点きました。残り7個をワイヤリングして、Lコネと隣の8個はハンダブリッジして。これでコントローラの基板は完成。
続いては、LEDのワイヤリングとソフトウエアです。
ATtiny45/85を使ったi2cスレーブの実験はやはり来年でしょうか。
「2013年10月06日」一覧
自分メモ 新品のATtinyの初期化
ArduinoISPでつないで、ArduinoIDEから「ブートローダを書き込み」でOK。実際にブートローダが書かれるわけではないと思うが。
そのままでArduinoIDEでISPでプログラムを書き込める状態になっている。ArduinoISPは遅いのを我慢すれば使い勝手が良い。AVRISPmk2だとドライバの問題でArduinoIDEかAtmel Studioかどちらかの利用になる。どちらでも使えるようにする話もあったが、Windows8だとドライバ署名とかの問題で面倒っぽい。
ArduinoIDEからのブートローダの書き込みではFUSEビットを書き換えられないという情報があった。たまたまデフォルトの値で大丈夫ってことなのかな?
実証結果
買ったばっかのレールに入ったままのATtiny85Vを使って試してみた。いきなりISPでプログラムを書き込んだら、動作が遅い。1/8のプリスケーラが効いていない状態。
その状態で、「ブートローダを書き込み」を行った上で、再度ISPでプログラムを書き込んだら、予定通りの動作でした。やはりFUSEのうちDivide clock by 8 internallyは少なくとも「ブートローダを書き込み」によって書き換わっている様です。
実装配置の調整
フリスクサイズから4ホールぶんはみ出るけども、30×10で初版を作成します。PCA9685は右側へ持ってきてはみ出た部分の折り目が折れないように補強の役目も。
むりくり入れれば26×10のフリスクサイズにも入るのだけど↓。コネクタ的にフリスクケースには入らないので30×10で余裕をもたせます。
で、配線を書いていてふと思った事が。
i2cのPWMドライバとLEDをセットで小さな基板か空中配線で実装して、バス配線でつなげれば良いのではとか。i2cなら電源の2本とSDA,SCLの4線でバス配線できるし。ただ、PWMドライバicはその4本の他にアドレス指定に何個かとドライブするモノをつなぐのに何個か必要になるから、サイズ的にはDIPは無理。DIPサイズでよければそれこそATtiny85を使えば良いのか。あ、SOPのtiny85(85である必要すらない。45でもメモリ足りそう。)使って変換基板上にLED類と4線を実装してしまえば良いか。んーこのパターンは来年やってみようかな。
調べてみたら、BLINK MというマルチカラーLEDをi2cでドライブするものがATtiny45のSOPの奴を使っている様です。ちょっとブレッドボードで試してみますかね。
→調査結果。ATtiny45/85をArduinoのフレームワークでの利用だとi2cを使用してしまうとPWMが1つしか使えない。
PCA9685をばらまいた方が使い勝手が良いかもしれない。4ポートくらいのi2c PWMドライバで 3Vあたりから動作可能なIC無いかな。
もしくはATtiny44/84を試すか。44/84はI2Cを使ってもPWMが2つ使える。ただパッケージ的に6個ピンが増える(14ピンパッケージ)。