コメを噛め

コメを噛め

rerofumi の電子工作メモ

Archive for the ‘AVR’ Category


hatena bookmark

AVR一本で音声合成出力をしてくれるLSIモジュール、AquesTalk picoを入手したので軽く発声テスト。
PSoC3 + I2C ボタン + I2C LCD と我が家のプロトタイプシリーズを使って、凄くありきたりな「現在時刻を読み上げる時計」をでっちあげてみた。

詳細は後で書く、つもり。

上の動画が見えない方は Youtube でどぞー。(→Youtube上の同じ動画)


hatena bookmark

Windows は Vista 以降の 64bit 版で、署名のついていないデバイスドライバーがインストールできなくなった。
動作が保証されているドライバーを使いましょう。使わないで不安定になっても保証できないからね!とか、妖しいドライバーを入れちゃ駄目だよ!とかいったありがた迷惑な配慮からですな。
こういうときに困るのがアマチュア工作家で、電子工作をしてもそのデバイスを PC に繋げないという障害として立ちはだかります。
まあ、愚痴はさておき。

署名のついていないドライバーを Windows7 64bit にインストールする方法を調べると「××というソフトを使え」とか色々出てきますが基本的にそういったソフトは要らない。
Windows の起動時に F8 を押したままにしておくと、セーフモードを選べる非常起動メニューが表示されるが、そのなかに署名無しドライバーに警告を出さないモードで起動というものがある。
それを選んで起動してからドライバーをインストールすれば OK。

64bit版の AVR-CDC のドライバーもそれで入れる事ができた。

~~~
最初はこれらを避けるために VMware 上の WindowsXP 32bit で開発したり確認したりしていたのだが、VMware 上だと AVR-CDC のドライバーインストールとデバイス認識はできるのに、その後信号がさっぱり VMware から外に出ていかないという現象に悩まされた。
初めて見るパターンだったのでまさか環境のせいとは思わずずっと悩んでいた次第。
なんでだろう?


hatena bookmark


前回「USB を INT1,INT2 に繋がないと駄目だよ」ともあさんにご指摘いただいたので作り直した。ISPコネクタが裏返っていたのも一緒に修正。
ちょびちょび直していくのも試作の醍醐味ということで :-)

ガーバーだの回路図だのの詰め合わせ。
Download: fumi2_avrusb_eval1_20110527.zip


回路図エディタは BSch3V を、基板CADは K2CAD を使用。


製作も割と手慣れてきた。
元々、0.8mm ピッチのフラットパッケージ用基板を作るのが目的だったのだけれども、それ自体は問題無く作れる様になった。どっちかというと、ここから先『はんだ付けができるか』の方が問題になっていくような雰囲気。


AVR-CDC を焼き込むと USBデバイスとして認識され、動作していることが確認できた。
USBコネクタ脇のピンヘッダには USART が引き出してあるので、このまま USB-Serial コンバータとして動作する実験基板となる。ISP コネクタの方を使えば SPI なり I2C なりのシリアル通信ができるんじゃないかなあ。
ここから先にマイコンをシリアルで繋いで、PC とターゲットマイコンをUSB繋ぐグルーとして AVR-CDC が使えないかなあという実験を進めていく。


hatena bookmark

AVR toolchain をビルドするスクリプト。
できた toolchain で軽く LED チカチカをビルドしてみたけれども、動作したしイチオウ問題なさそうな案配。

rake script
Download: fumi2_avr_toolchain-0.0.2.tar.gz

MacOSX や Linux でビルドする分には前回の 0.0.1 で問題なし。
mingw-gcc でクロスコンパイルするときに不具合があるのでパッチを当てるのと、相変わらず cygwin でのビルドが難儀するのでいくらか調整。よっぽどのことがなければ cygwin に挑戦しないほうが無難。

今回もおまけの cygwin 版バイナリ。
Download: avr_gcc_toolchain.tgz (60.8MB)


hatena bookmark

AVR でも自分でビルドした toolchain が欲しくなったので、以前 Cortex-M3 の GCC toolchain を作ったように(こことかここの記事参照) ビルド手順を rake ファイルとして記述したものを作って見た。
ARM の時のものを元にさらっと作っただけで動作検証とかはまだしていない。

Download: fumi2_avr_toolchain-0.0.1.tar.gz

toolchain としてビルドするツールとそのバージョンは以下の通り

binutils-2.21
gmp-5.0.1
mpfr-3.0.0
mpc-0.9
gcc-4.5.3
avr-libc-1.7.1
gdb-7.2
avrdude-5.10

このへんのバージョンは新しければ良いというものでもないのだけれども、まあそれなりに新しめなところをあつめてある。
gcc は 4.6.0 が出ているけれども、avr-libc-1.7.1 をビルドできない不具合があるので(1.7.2では修正されるらしい) 4.5.3 となっている。

取りあえず版なので無保証。


hatena bookmark


秋月電子通商でもって 250円で売っているフラットパッケージの ATMega328P-AU を用いた個人的実験用ボードを作ってみた。

CNCフライスでプリント基板を試作できるようになってきたので、今度は表面実装部品を扱うためにどれくらいのピッチがいけるかということを試し始めた。その第一弾。
ATMega328P が 32pin 0.8mm pitch という手頃な挑戦課題だったのでまずはこれから。
個人的に AVR の V-USB は自分で扱えるようになっておきたかったので、それを実験するのをメインに据えたボードになっている。 I/O とか妙に半端なのはそのせい。


回路図。


基板を起こした物。ジャンパーは1本。
ISP のピン番号を振り間違ったらしく、奇数ピンと偶数ピンが逆になっているという失敗をしている。

今回は変換ケーブルを挟んで使うことにした。残念。


ピンの幅が 0.4mm でピン間が 0.4mm の 0.8mm ピッチについては特に苦労なく作成することができた。
なんといっても、USBコネクタのようなユニバーサル基板で扱いにくいコネクタの穴が楽々と作成できるのがありがたい。CNCフライスで基板を作るもう一つのメリットである。

回路図、K2CADファイル、ガーバーファイルの詰め合わせ
Download: fumi2_avrusb_eval1_20110509.zip

これじゃ V-USB できないと指摘されたので取り消し。
後日修正版を作成します。

今のところ、通電して ISP で問題無く読み書きができることと、LED チカチカ等の簡単なテストを行って AVR が動作しているのを確認している。
動作する基板ができたので、次は V-USB でシリアルターゲットでも載せる実験をしていこうかなと構想中。


hatena bookmark

AVR初心者にとって取っつきにくいのがヒューズビットの設定。
チップ起動時の設定を焼き込むものなのだけれども、この設定をミスすると一般的な USBライタで読み書きできなくなったりしてしまう。まあ、設定ビット自体はPICにもあるし、普段はプロジェクトで隠蔽されているけれどもPSoCにもあるので概念としては難しくないのだけれども、うっかり変な値を書いて書き込みできなくなるというのが難しいところ。
書き込みできなくなるといっても簡素な手順であるシリアルでの書き込みができなくなるだけで、12Vの印可が必要になる高電圧書き込みだと書いたり消したりすることができる。
高電圧書き込みできるライターってのはちょいと大きかったり古かったりするので玄人さんでないとなかなか所持していないものだったりもする(偏見)。
追記:Dragonってそんなに大きくないのね、AVRスターターと混同してた

どうする、自分でそのライターを作ってみるか?データシートに手順は書いてあるからできなくもない。

DSC00711
考えを巡らせているうちに、ユニバーサルプログラマを持っているのを思い出した。ROMとかフラッシュとかを読み書きできるちょいと便利な機械。昔はドライバーに使っているUSBフレームワークがバージョン古くて、同じフレームワークを利用している他のアプリと喧嘩しまくり(そして案外使っているアプリがおおい)で不満たらたらだったけれども、最新版はそのへんが解消されていた。今なら9800円とかだしお買い得かも。
で、このプログラマだとPICやAVRの主要なチップを読み書きすることもできるのですな。全種類じゃないけれども。
なので、こいつを使ってヒューズビットやロックビットを間違えた AVR を全消去してしまえば万事解決なのでした。
このユニバーサルプログラマ、ソフトウェアの書き込み用に使えるかというと使えるのだけれども、普通にAVRライタを使った方が良いと思う。

で、このユニバーサルプログラマで対応しておらず、過去にヒューズ設定を間違えた AVR がまだほかにあるのです。
DSC00710
ATTiny85、8ピンの奴はなぜか対応していなかった。
通常 AVR の高電圧印可書き込みはパラレル方式なのだけれども、この8ピンのシリーズは足が足りないので高電圧印可シリアル書き込みという奇妙なモードを持っている。
データシートを見てみると 12V を印可しながらシリアルで手順を踏めば良いだけとわかる。んじゃ、ちょっと手作業でヒューズ消し作業をやってみますか。
Read the rest of this entry »


hatena bookmark

DSC00701
morecatさんが作成した「もなかシールド」をおわけして貰っていたのだけれども、後回し後回しになっていてやっとこさ組み立て。遅くなってごめんなさい。
Arduinoにピンを合わせた、Arduinoシールド互換な Ginger 基板といったところ。
(※個人的に「あかもなか」と呼びたい)

もなかは USB MIDI デバイスとして認識されるプラットフォーム基板。かなでの V-USB バージョンというか後継。

DSC00703
AVRマイコンを乗せて単体で簡潔するモードと、Arduinoに載せてV-USBシールドとして楽しめるモード、2種類の楽しみ方ができるのが特徴。
Arduinoに載せてV-USBシールド、というのがなかなかそそられる言葉なのだけれども今のところ bootloader を使って Arduino Sketch として開発ができるわけじゃなく、それらを潰して ISP で書き込む必要があるとか。なので、AVR を載せて単体動作させる方が今はメインっぽい。

DSC00704
Arduino に乗せるとこんな感じ。

従来の Ginger 使用のもなかと比べて、AVRチップが異なるのとクリスタルクロックが 16MHz なのとでファームウェアは別に作り直さないといけないらしい。
特に新しいファームが置いてあるわけでもなさそうなので、もなかのプロジェクトをいじくって作成してみた。monakaファームの 20100630 版(monaka-20100630.tgz)に Arduino 用パッチと HEXが入っているので、これを焼き込む形となる。んが、ちと失敗したのでファームに関してはまたこのつぎということで。
単体バージョンのほうでクリスタルを 12MHz のせちゃったり、ヒューズビットいじってたら失敗して DisableRST で書き込んじゃったりしていろいろしょんぼり。AVR は慣れていないのです。

しかし、V-USB でいろいろ実験してみたいという野望はあるし、そのために Ginger とか分けていただいているので是非とも進展させたいところ。


hatena bookmark

DSC00954
More-Catさんが新しいGinger基板を使い切れないくらい作成したとのことでお裾分けしてもらった。
ちょいと検討していることがあったのでPepperでできそうな事について2~3質問していたら、Pepperの基板も送ってくれた。
献品御礼。 (←いっぺん言ってみたかった)

DSC00955
実験を検討していたところだったのでPepperの部品は一通り買いそろえてあった。写真は早速組んでみたところ。
実はなんかポカしたらしくまだ動いていなかったり。追って調査修正予定。
PepperのFuseはよっぽど必要でない限り Reset Disable にしない方が吉。

手が空いたらいじっていこう。


hatena bookmark

monaka_icon_240
もあさんが「奏」インスパイアなMIDIコントロールターミナルの「もなか」を公開開始したもよう。
同じくもあさんが作成している、GingerのファームをUSB-MIDIに置き換えて奏っぽくした代物。V-USB(旧AVR-USB)というAVRで動くUSBスタックを利用しているので、PCとはUSBで直接つないでつなげるという優れもの。このV-USBはObjective Development社が提供していてフリーで使えるUSBスタックなのだけれども、USBベンダーIDを ObDev 社が提供していて、アマチュアでも容易にベンダーIDとデバイスIDを付けることができるといったあたりがすばらしい。通常USBデバイスを作っても、USB Implementers Forum に数十万のお金を払ってベンダーIDを取得しないとそれを配布することはできない。なのでアマチュアがUSBデバイスを作ることができても、頒布することはまず無理なのだよな。V-USB はそのベンダーID部分を ObDev 社が肩代わりしてくれている。その代わり、5個以上配布するときはデバイスIDをコマーシャルライセンスで購入してね、といったビジネスモデル。

前書きが長くなったけれども、ようするに「もなか」はUSB接続できる「奏」なのですな。便利な。
インスパイア元としては一つ作ってみるしかないだろう。といっても、Gingerは持っていないので、適当に部品を買い集めてGingerクローンを自作することにした。
dsc00917dsc00921
出力のピンソケットはGinger互換ではなく、奏互換で 10ピン×2 としてみたあたり。
単に部品箱に余っていたというのもあるけれども。
dsc00919
裏は相変わらずこきたない。

制作自体はさほど問題はなかったのだけれども、AVR慣れしていないのもあって動くまで4日くらいかかってしまったあたり。
Read the rest of this entry »