TOP
開発日記
徒然なるままに



■レトロボマーバージョンアップ
完了しました。
ダウンロードページはここ。

マルチメータの製作は相変わらずのらりくらりと進行中。

CEATEC JAPAN 2009の10日土曜日に参戦します。
ついでに秋葉原に寄って真空管を買ってこようともくろんでいます。

2009/10/05

■新規作成
電子工作ページ内にタイマ/カウンタの割り込みのページを新規作成した。

昨日レトロボマーをバージョンアップしたと書いたが、ベクターに差し替えを申請しただけで
実際はまだバージョンアップ後のファイルはダウンロード出来ません。念のため。

2009/09/19

■電子工作に改名
AVRマイコンのページを電子工作に改名した。
エッチングとか既にマイコンとは直接関係ないし。
そのうち真空管アンプとか作りたいし。


レトロボマーをバージョンアップした。
ステージ切り替えが少々理不尽だったので画面中に敵がいる間は切り替えないようにした。
ついでにステージ数も表示するようにした。

2009/09/18

■デジタルマルチメータ
まだ前回のレポートが書き終わってない段階で既に次の工作を始めた。
前回のmp3プレイヤー製作中に唯一持っていたアナログ電圧電流計が壊れた為、
どうせだから測定器も作ってしまえと思い作るに至った。

欲しい機能をそこそこ盛り込んで作る予定。
具体的には

電流
電圧
抵抗値
導通チェック
バイポーラトランジスタの特性評価


今回は回路図、実装配線図を描いてユニバーサル基板に実装。
機能選択にロータリスイッチを用いた為配線が大変な事に…。

2009/09/16

■また久しぶりの更新
2ヶ月以上の放置…。
学校の試験やら、mp3プレイヤーの製作やらでつい更新が出来ず。
前回の日記ではeasyMP3を接続するところまでだったが、このたびついにmp3プレイヤー完成しました!

この2ヶ月間は異常なまでに濃いものだったと思う。
初めてのエッチングやらプリント基板の設計をしていた。
2ヶ月間で2回digikeyに発注するという無駄遣いもしてしまったよ^^

早くmp3プレイヤーの製作記事を書きたいところだが、エッチングについてのページを先に書き上げる予定。

一先ず、油性ペンでマスクを書くエッチングについてのページを書いた。

2009/08/05

■久しぶりの更新
mega88を購入したはいいもののなかなか手を付けれずに1ヶ月も放置してしまった。
豚インフルエンザで大学が休校になり時間が出来たので再開できた。

前回発覚した問題から、SPI通信をソフトの処理からハードの処理に移行した。
ハード処理にすることで最大4MHzの通信が出来る。(のか?)
具体的にはmega88に標準装備されているSPIの機構を使用するのだが、
途中CMD1まではすんなり出来たもののCMD17がどうにもうまくいかなかった。
先頭セクタを読み込んでもありえない数値の羅列だったので何かがおかしいと探って9時間。

RAM使用率が100%を超えていること表示されてるのを発見。
しかし実際の使用量と見比べると明らかにおかしい。

結局問題はAVRstudioの設定でデバイスをmega48としてしまっていたことだった。
最初mega48で開発していたので変更するのをすっかり忘れてしまっていたのだ。

相変わらずしょっぱいミスに長時間悩まされています。

そんなこんなでCMD17も無事成功し、SDCから希望通りのレスポンスが返ってくるようになった。
明日はeasyMP3を接続して音を出してみる。

2009/05/23

■問題発生
mega88のヒューズビットの書き換えに失敗して復帰不可能になってしまった。
あいにく今手元にあるのがこいつだけなのでストロベリーリナックスに1石発注した。

こんなことになった原因はこうだ。
SDカードからのデータをそのままVS1011Eに突っ込むだけで音楽が流れるはずなので
とにかくデータを突っ込んでみた。
SDカードはフォーマットしたばかりなのでデータは順番に蓄積されているはずなので
一先ず音が出るかどうか確認すべく、forループで順番にデータを読み込んでは突っ込む。
実際にこれで音は出たのだが、断続的に再生されてしまっている。
これはSDカードからのデータ読み込み速度が遅いからだろうと考え、試行錯誤するもうまくいかない。
実際、今は3種類のSPI通信(SDCと、VS1011Eのデータとコマンド)全てをソフト的に行っているので
そこにガタが来たのだろう。いや、確信はないが…。
そこで、処理自体を早くするためにクロックを上げてやろうとしたところ、不注意でヒューズビットの
書き換えをミスってしまったのだ。こればっかりはやり直しがきかないので別のデバイスを使わざるを得ない。

ということでMP3ファイル再生の前に、SPI通信の見直しをしなければならないようです。
これでどうしてもうまくいかないようであれば振動子を使ってクロックをクロックを上げて
やらなければならないが、出来れば3.3V駆動にしたいので内部クロックの8MHzでどうにか
うまくいって欲しいところだ。

2009/04/22

■easyMP3での正弦波出力
VS1011Eとの接続もSPI通信なのでSDカードの制御と同じような感覚でプログラムが組める。
SPI通信なんてのも今まで知らなかったが、いったん知ってしまうとなかなか便利な規格だと思う。

しかしながらVS1011Eはコマンドを送ってもそれに対するレスポンスがないのでうまく出来ているのかが分かりづらいと感じた。

また、データ転送に関してVS1002ネイティブ・モード(NEWモード)とVS1001互換モードという2パターンの転送方法があり、
最初使うピンを間違っていたためにうまくいかなかった。
放課後の電子工作さんがデータシートの和訳(私家版)を公開してくれているので
それを読むとすぐに解決できた。感謝!

そんなこんなでなんとかテスト用正弦波の出力に成功しました。

次は実際のMP3データを送信してみます。

2009/04/14

■MP3ファイルの検出
ルートディレクトリ中のMP3ファイルの数を数え、任意のMP3ファイルのディレクトリエントリを取得することに成功。

ゆきの研究室さんのソースが大変参考になります。
(ほとんど真似してしまっています…)

今日やっと基板にeasyMP3を取り付けました。
ところがどっこい。
マイコンとの接続のことをまったく考えておらず接続するポートがバラバラになってしまいました。
LCDディスプレイに6本とられ、SDカードに4本取られ・・・
SPI通信を実際に制御してみたいと思って普通のポートを使ったのが少々間違いだったようです。

とにかく次はもう音を出すしかないですね!

2009/04/13

■BPBの読み取りに成功
まず、SDカードの初期化に関して、CMD1ではうまく初期化できるがACMD41はうまくいかない。(CMD55が成功しない)

CMD1ではうまく初期化できているようなので一応おkとして進むことにした。

とりあえずセクタ0を読む。
CMD17を送信して0x00レスポンスを確認後、0xfeを待ち、0xfeを確認。次のバイトからデータが帰ってくる。
ということなので0xfe確認後に512回のループをかけ、data_baf[512]に詰め込んでみた。

当方PCとマイコンを繋ぐことが未だに出来ていないため、マイコンからの表示は全て16x2のLCDに任せてある。
そこで、読みこんだ512bytesは全て表示できないので最初の8bytesだけ表示して確認したところ

00 00 00 00 00 00 00 00

…(;´Д`)
初期化したとこから何も変わってないがな…と1日悩んだ。
出た答えは最初は00の羅列であること。すっかり忘れていた。
PCでダンプしたときはSECTOR0がBPBとして表示されていたため、最初からがっつりデータが入っているものだと思い込んでいた。

MBRの存在なんて記憶から葬りさっていたようだ。
そこで446byte目から表示させたところ期待通りの値が出たのでめでたし。
そこに書かれているfirstSectorNumbers[4]のセクタを読み込むと無事BPBも確認できた。

次は引き続きMP3のデータを読むところまで頑張ります。

2009/04/11

■SDカードにアクセス
FATの仕組みも大まかに把握出来た。
PCにて、手持ちのmicroSDをダンプしmp3ファイルまでたどり着くことが出来たのでひとまずFATの勉強は終了。
現在はマイコンとSDカードを接続し、初期化コマンドの成功まで漕ぎ着けたところだ。
引き続きプログラムを書いていきます。

参考にしているURLを忘却録的理由により貼り付けておく。
http://elm-chan.org/docs/mmc/mmc.html
http://www.geocities.jp/kuman2600/n12sdcard.html
http://www10.ocn.ne.jp/~noe/micon/gpslog/gpslog.htm
http://www.geocities.jp/urannene/
http://yuki-lab.jp/hw/mp3player2.html

2009/04/08

■早くもつまづく
easyMP3は早々に組上げたもののSDカードの制御を甘く見ていた。
現在FATについて勉強中。

それに伴ってwindowsの電卓の便利さに気付く。
16進と10進とか2進の変換が非常に楽に出来る。
とはいっても手元に関数電卓があれば必要ないか。

2009/04/05

■easyMP3
ストロベリーリナックスのオリジナルキット、easyMP3を購入した。
その際通販を使用したのだが、昨日注文して今日届いた。
なんという迅速さ。こんなに速い通販は初めてだ。

そんでもって注文時の宛先記入欄。名前の例が『綾瀬はるか』だった。
好きなのかなぁ…(笑

さて、先人の知恵を借りながらMP3プレイヤーの製作を始めるとします!

2009/04/03

■蛍光表示管で時計
蛍光表示管で7セグメント表示時計のページを作りました。
プログラムは今後改良を加えるつもりです。

2009/03/10

■帰省
長らく実家に帰省していた。
昨日帰ってきて早速新しい時計を作った。またもやACアダプタ付き…。
今回はデジットで4本350円で売っている蛍光表示管を使用した。
というかこれを光らせたいが為の時計製作だ。

詳しくはAVRマイコンのページに書くつもりなので見てやってください。
まだ書いてないですが。

2009/03/08

■無題
今日は非生産的な一日を過ごしてしまった。

最近はもっぱら電子工作のことばかりだが、そろそろソフト制作に戻ってきたいところだ。
2ヶ月くらい前に某同人弾幕シューティングゲームの劣化コピーを途中まで作ったけど
それも気付けば放置している。

低迷中というか、なんというか。
これじゃだめだなぁ。
明日からまたプログラムを弄ってみよう。

2009/2/16

■AVRマイコンのページ
最近はゲームよりももっぱら電子回路ですよ。
そんなこんなでAVRマイコンのページを作りました。
まだコンテンツはひとつです。
プログラムのページもコンテンツひとつだな…。しかもひつまぶしゲー…。

うーむ。

2009/02/10

■日本橋

日本橋に行ってきました。
月に1回程度しかいけないのでいつも欲しい部品をリストアップして買いに行きます。

いつもはデジット以外には行かないのですが、今回は千石電商とシリコンハウスにも行ってきました。
実はどちらも最近存在を知りました。

千石電商でtiny2313が250円だったので一石買って来ました。
2313はPORTDが一列に並んでいるので部品の配置を考えるのも楽だと感じました。

そしてまたやってしまいました…。
以前デジットの抵抗50円パック(たぶん1/8W、100本入り)を物色していて4.7kΩのパックがあったので
買ってきたのですが、家に帰ってよく見ると47kΩだったことがあったのです。
こんなに大量に使えない・・・と思い、あのコーナーは二度と見るものかと心に決めました。

そして今回。
ふとそのコーナーに目が止まりちょろっと見てみようかと。
あの日の決心はすっかり忘れていました。
でもやはり黄紫橙金(47k)が大量にあるばかり…。
やっぱり丁度いいのはもうないのかな、と思ったその時。
赤い帯が見えたのです。
手にとって見てみると赤赤黒金。
2、2、0・・・おお!220ΩってLEDのブリーダー抵抗にぴったりやん!と思って即買い。

家に帰って気付きましたよ。
赤赤黒金って22Ωだった…。

2009/02/09

■AVRデビュー



1月の最終日まで大学の試験があって触れなかった(触ってたけども)AVRをついに動かしました!
LEDによる2進カウンタと7セグメントLEDによる10進のカウンタでテストし、無事成功しました。

最終目標は今のところmp3プレイヤーの製作を予定しています。
でもその前に部屋に置く時計も作りたいです。

ちなみにデバイスはAtmel社のマイコンAVR、ATmega48を使用しています。
tiny2313にすればよかったです。
今のところ必要な機能は2313で十分満足できると思いますから。

プログラムライターは共立電子(デジット)のAVRWRT2を使用しています。
やってみれば簡単な操作で書き込みが出来るのは分かるけど初心者向けにちょろっと手順を示してくれると
尚良かったと思います。
初めてマイコンに触れたので何を何にどうやって書き込むのかも知らない状態でしたから少し戸惑いました。
ネットで検索したところ使い方が分からずに放置してる人もいたので簡単に説明ページでも作ってみようかと
考えています。(初心者の私がやるのもおかしいが…)


とりあえず近いうちに日本橋に行って必要なパーツとか同人誌とか買ってきたいです。

2009/02/03

■過去ログ
このサイトの開設から2009/01/16までの開発記を過去ログ01に移動しました。

2009/02/03




過去ログ: 01

TOP inserted by FC2 system