今進行中のプロジェクト?を紹介するコーナーです。そんなたいそうなものではないのですが...
  1. タイトル:手作りMP3プレーヤーを作ろう
  2. 趣旨:既に目新しくも無いのですが、数年前より計画していて全く進行せず、部品だけが集まって眠っている状態を打破すべく企画するものである。(おおげさ)
    で、電子部品のほとんどを秋月電子で購入している自分にとっては、なるべく秋月電子のみでまかなえる部品を使ってなるべく低コストで作成するものとします。
  3. 完成の姿:カラー液晶を使用してタイトルや歌詞表示を日本語で行い、SDカードに記録したMP3データを再生する。
まあ、そんな感じで、主要部品はこんな所です。価格等は変動したり、販売されなくなる物もあるかと思います。ご承知下さい。
MP3デコーダ VS1011E
(I-01484)
\600 まあ、VS1053bという新しいのも発売されていますが、買ってしまっているのでこれを使います。
カラーグラフィックLCDモジュール LTA042B010F
(P-01703)
\300 とにかく安いのですが、詳細が不明という実験用?のカラーグラフィック液晶モジュールです。 冷陰極管のバックライトは内蔵していますがインバーターがないので別に購入する必要があります。
極細冷陰極管+小型インバータ 点灯セット (M-00400) \800 上のLCDモジュールとのセット販売もあるようですが、セットだと\1000です。\100お得です。
SDメモリーカード 1GB \759 これは秋月電子では買っていません。1年以上前の特売の奴です。今はもっと安くなってますね。
SDカードスロット (C-00753) \150 表面実装用のSDカード用のスロットです。
1Wx2ステレオ・デジタル・オーディオアンプ・キット TS−DA01
(K-02168)
\2,000 TPA2001D1PWRを2個使用したデジタルアンプです。今は販売されていませんが、違う奴を売ってますね。 取り敢えずスピーカーではなくヘッドフォンを鳴らす予定ですので、使わないかもしれません。
フラッシュROM AT49BV040B
(I-01712)
\300
(2個で)
日本語フォントを格納するためのフラッシュROMです。4Mbit。文字サイズを可変に、かつ、サイズを小さくするために坂 直純さんの ストロークフォントを使用します。感謝!
テキストファイルで320KB足らずなのですが、第1、第2、ANKが入っているそうです。まだ試してませんが、少しわくわくします。PC上で一旦ビットマップにしてから格納するか、 リアルタイムに生成するか。リアル生成して遅ければPC上で変換してデータを格納します。
 
詳細がわからないカラーグラフィックLCDモジュールから攻めて行こうと思います。

横400、縦96ドット、RGB各色6ビット(64階調)の262144色表示可能みたい。

で、紙が入っていて、シールドカバーを外してコネクタを取り外した写真が印刷されています。あちこちから線を引き出して、 コネクタに相当するピン番号が書かれていますが、写真も白黒で基板も黒っぽいし、線も黒っぽくて何も見えません...何だろう、これ。 調べたら元のカラー版のPDFが見つかりました。これならわかる。 が、間違いもありますね。気をつけて見て下さい。
本当は0.5mmピッチのコネクタにフレキケーブルで接続するみたいです。手持ちのフレキが使えればそれを使い、駄目そうなら銅テープ+カプトンテープでフレキを自作します。 そっちの方が面白いかも。コネクタを外してUEWで引き出されている方も多いみたいですが、たぶん自分には出来そうもないので。
このLCDは意外に知られていて、様々な方が解析していらっしゃいます。おいしいところを頂こうと思います。

よく見ると、電源に+9V,−9V、5Vの3電源が必要らしく、秋月の説明紙では−9VはLT1144CN8というICを使用して生成している様子です。 持って無いよ...店頭では販売されていた様子ですが、通販だと商品が出てきません。 →ありました。\300です。
仕方ないので、負電圧生成実験を開始します。(そのうち)
   2009年4月3日

さて、早速やってみました。定番の負電圧生成回路。以前キッチンタイマーの液晶モジュールを3V駆動させるときに使用していた回路です。
bsch3vで書いています。水魚堂さん、ありがとうございます。

LMC555を使用して、50%デューティで駆動させます。 データシート通りです。

入力9Vの時、1KΩ負荷で出力が−6.6V位です。思ったよりでません。ダイオードは整流用ショットキーバリアダイオード1S4を使っています。 ショットキーバリアダイオードにしてはVfが高いかもしれません。表面実装用のSS2040FLというのも持ってますので、そちらでやってみようと思います。

さっきSS2040FLでやってみましたが、−6.6Vと、全く変わりません。SBDが原因ではなさそう。これが限界なのか?
一応、それなりの出力は出ているので、これで進めてみます。










2009年4月5日

さて、あとは信号の引き出しをどうするか。液晶側のコネクタを生かすならフレキを使うしかないが、 50芯のしか持って無いし、しかもコネクタはない。36ピンか。どのみち0.5mmピッチを2.54ピッチに変換しないと扱えないので、片側は変換基板に半田付けでも構わない。そうしようか。
ということで、変換基板作成です。bsch3Vと同じく水魚堂さんのMBEを がんばって勉強中です。何とかなるかな...
2009年4月6日

ここ数日、ひたすら変換基板作りをしていました。
自分がプリント基板を作るときは生基板と自作の転写シートを使って作ります。JA7TDOさんのアイロン道場さんの インクジェット紙アイロン熱転写などを参考にしました。ほとんど、他の人のアイデアのパクリです。

一応、紹介します。
プロジェクト終了後は、別のコーナーに独立させる予定です。
転写シートの作り方
まず、用意する物ですが、PVA(ポリビニルアルコール)が原材料の洗濯糊、ポスターカラー、 毛先がナイロン製の刷毛、トレー、新聞紙、インクジェットプリンタ用のL判光沢紙(安い奴)、まな板みたいな平らな厚めの板、他で使わない壊しても構わないアイロンです。
L判光沢紙が転写シート代わりになります。参考にしたサイトではOHP用のフィルムを使って作られている方がいらっしゃいましたが、近所の電器屋で見つけられなかったので、 代わりにたくさん購入した安いL判光沢紙を使っています。ただのインクジェット用紙とかも試してみたのですが、すごくカールします...まあ、まっすぐ伸ばせば使えなくも無いと思います。 そちらは余り実験していません。
まず、トレーでポスターカラーと洗濯糊を混ぜます。長く使って無くてポスターカラーが分離していてかき混ぜたので、 写真ではかなりポスターカラーが多いですが、ほんのり色が付く程度で構わないので、なるべく少なくしてください。色をつけるのは後で塗るときに塗りむらをなくす為です。 JA7TDOさんの受け売り。

ここで注意するのは、なるべく泡を立てないで混ぜることです。泡は厳禁です。

ポスターカラーの色は何色でもいいと思いますが、オリジナルが青色なので青色にしています。
ちなみに生基板は先ほどのPCBマテリアルズドットコムで通販で購入しています。

なお、ブラシの材質はナイロンに限ります。(滑りがいい!のもあるけど、動物の毛と違い、抜け毛が少ない。)
後は、L判の光沢紙の印字面側にひたすら塗ります。
ここでの注意は、むら無く・泡を立てず塗ることです。写真は手本にならないくらいの最悪な塗り方かも・・・。やはりポスターカラー入れすぎです。
塗りむらはそこまで気にしなくて構わないと思います。塗り残しが無ければ大丈夫です。ただ、泡がだめです。
レーザープリンターで印刷するのですが、泡があるとその部分がずれたり切れたり無くなったりします。 太いパターンではさほど気にならないのですが(修正が可能なので)、0.3mmとか細かいパターンを作る場合、泡にパターンがくると致命的です。
色々条件を変えながらやっているのですが、泡を出さずに塗るのは難しいです。10枚中1、2枚くらい何とか泡が出ないか、 端の方に少し残る程度の物が出来ます。単に自分が下手なだけかも...どなたか良いアイデアはありませんか?
乾燥させます。1時間くらい?表面を手で触って何も付かなければ、たぶん大丈夫。
仕上げにクッキングシートと板の間に挟んでアイロンがけします。温度は高めで。10秒程度で水分が大分飛びます。 なるべく発生した泡を押しつぶす様にアイロンがけしてください。
アイロンと板は、実際の転写の時にも使用しますので、他の用途で使わない方がいいと思います。ここで使用した後白系の布にアイロンがけすると、 焦げが付いたり、色が付いたりするかもしれません。安い奴を購入されることをおすすめします。 購入されるときはできればスチーム機能の付いていない、ただのアイロンをおすすめします。 スチームアイロンだと底にスチームを出す穴が開いているので、基板との当たりが均等になりにくいです。 自分のアイロンは安いスチームアイロンでしたので、なるべく穴を避けて使うようにしています。
変換基板作り
それでは実際に先ほど作成した転写シートを使用して変換基板を作成します。 写真の転写シートは1年前に作成した奴です。
まず、パターンを作成し転写シートにレーザープリンターで印刷します。
自分の場合、パターンは先に紹介した通り水魚堂さんのMBEを使いました。 以前は高戸谷 隆さんのPCBEを使っていましたが 何でも結構です。使いやすいのを使ってください。
レーザープリンターは自分はbrotherの安い奴を使用していますが、少し解像度が足りていない感じがします。 出来ればTrueで1200dpi以上ある機種が良いと思います。自分のは600dpiです。
濃さの設定が可能な機種では一番濃くしたり、トナーセーブ機能をOFFにして印刷してください。標準ではベタの部分が薄くなるみたいです。 自分の奴は色々変えてもほとんど変わらないような気がします。
なお、場合によるとドラムの感光体や定着器に異物が付着したりして、その後の印刷に問題が発生する恐れがあります。壊れても支障の無いプリンターを使用してください。

なお、パターンはミラー印刷するか元々を左右反対に作成してください。転写すると左右が反対になりますので。 MBEをお使いなら、SOLレイヤに書くと反転します。→すいません。SOLレイヤは部品を置いたり、 シルク文字を書いたときが反転するだけでした。部品面に書いていた場合EDIT→FLIPで反転します。(反転するとレイヤがSOLに変わります。)
PCBEをお使いなら、印刷ダイアログの反転印刷にチェックを入れれば反転します。プリンターの設定でも反転モードがある機種も多いと思います。どれかでやってください。
生基板をPカッターで必要なサイズに切り出します。
初めの数回は定規を当てて力を入れず傷をつける程度にし、その後、定規は外してだんだんと力を入れて溝を深くしていきます。
両面から溝を入れて最後はくしゃっと折って割ります。

写真の基板はガラスエポキシ基板なので堅くて刃がすぐに切れなくなってしまいます。
生基板を細かい耐水ペーパーで磨いた後、クリームクレンザーとナイロンたわしで磨きます。 よくすすいだ後、水気を切り、乾燥させます。
その後、先ほどの印刷済み転写用紙を貼り付けます。多少ずれても問題無い場合はそのまま基板の上に置いて、 アイロンで10秒程度加熱すると貼り付くのでその状態で問題無ければ本加熱するのですが、ずれが気になる場合、耐熱性のテープで仮固定します。 自分の場合、カプトンテープ(ポリイミドテープ)を使用しています。高価です。けちけち使います。 テープで貼った場合でも、仮加熱してずれなくなったら、テープをはがしてから本加熱します。そうしないとテープの分、押さえが弱くなってうまく転写されません。
仮加熱からアイロンは高温のままです。 (温度は試行錯誤して決めて下さい。 低すぎても高すぎても駄目みたいです。)
最初3分間(1分くらいでいいかも。基板の大きさによります。)程度手は添える程度で真上から軽く押さえます。 アイロンは絶対に横に滑らしたりしないで下さい。加熱してトナーが溶け始めた頃、横滑りしやすくなっているので滑らすとずれます。自分もよく失敗します。
次に1分間くらい、真上からギューと押さえつけます。ずらさないように。
次に、アイロンの先端部分でまんべんなくこする様に押さえていきます。
このとき基板を手で支えると思いますが、とんでもなく高温になっているので、素手では触れないようにしてください。くれぐれも火傷や火事に気をつけてください。
こすり終わったら、冷却(放置)します。なかなか熱が冷めないので、加熱後すぐにさわったりしないように...

用紙が軽く焦げます。においもしますので、換気や火災報知器にも注意が必要かも...
冷却後、熱湯でも大丈夫なタッパーの様な入れ物の中に基板を入れて、その上から熱湯を注ぎます。どっぷりつかるくらい入れます。
そのまましばらく(10分くらい?)放置します。
お湯をかけてすぐに転写用紙の中央部分がぷっくりふくれてくるようでしたら、まず間違いなく転写失敗してます。押さえ方が足りてません。
横から見て、端の方がめくれてきたら、はがれはじめていますので、 お湯を揺らしたり箸を使って上手にゆっくりはがしてください。べろんとはがれている場合もあります。今回はべろんとはがれました。 ここで、べったりくっついているのに無理矢理はがすとせっかくの転写されたトナーがはがれてしまうことがあります。

転写用紙がはがれたら、基板の表面を水洗いします。決してごしごし洗ったりしないように。細いパターンがある場合は時に注意が必要です。

写真で一部分に変色が見られますが、温度が高すぎたようです。
水気を切り、乾燥させます。
次に、エッチングで銅箔を残したい部分やパターンの問題のある部分をマッキーの青で修正します。 マッキーの青はエッチングのマスクに向いている様です。
マッキーで修正後は少し時間をおいた方が良いみたい。気のせい?(すぐにエッチングしたら溶けた事があった。)


25年前の頃はペイントマーカーを使ってました。マスクは完璧ですが、はがすのが大変だった...。
エッチング液 です。腐食液。塩化第2鉄水溶液です。これは画材屋のゆめ画材から通販で買った奴で銅版画用です。 500mlで350円位。サンハヤトの廃液処理剤付き エッチング液もあるのですが、それよりかなり安価です。廃液処理を自分でやれるのならおすすめ。

自分はこいつをチャック付き袋の中に入れて、その中に基板をいれ、袋をお湯の入ったトレーに浸してエッチングします。 お湯の中で袋を軽く揉んでエッチング液を攪拌させます。お湯は40℃くらいかな。温度が低いとエッチングが進行しません。
基板の状態を時々チェックしながらエッチングしています。

エッチングが完了したらトナーやマッキーを落とす必要があります。 ごしごしこすってもいいのですが、便利な物があります。ニッペホームペイントの塗料はがし剤です。
 何とも表現しにくいゼリーのようなスライムのようなそんなどろっとしたもので、これを基板に塗り、キッチンペーパーとかティッシュペーパー等でこすりつつ拭き取っていきます。 拭き取った後は水洗いします。
若干、溶剤系のにおいがしますが、それほど気になる感じではありません。でも換気には注意してください。
便利ですが、250mlしか入っていないこの量で\1300円位します。(店で見つけたとき、値段が違う奴につけてあると間違えました)

ちなみに、ごしごしこするのを考えると高くてもこれを使いたくなります。固着したトナーは簡単にははがれません。
さあ、完成です。で、終わればいいのですが、大失敗です。フレキを半田付けするパッドのラインが隣とくっついてしまってます。 ラインは0.3mmで引いたのですが、太すぎたみたいです。4面取りしたので、4枚パーです。こういう時は1枚づつやらないと駄目だよね。この同じ失敗を過去に何度もやってます。全然学習してない。 だってガラス基板なので堅くて切りたくなかったんだもん。(かわいくないね)
今度はラインを0.1mmにして作成しました。今度は隣とも十分開いてます。 今度こそ成功かも。
早速、塗料はがし剤でトナーをはがしてみます。
さあ、やっと成功! と、書きたいのですが、ラインが細すぎで、あちこちで線が切れまくってます。 最悪...いままでこのやり方で何度も作っていましたが0.1mmは初めてでした。自分のやってはいけないリストに入れとかないと。
しかし、分割して作っても、同じ事を同時にやっているので何の意味もない...学習能力ゼロか...
そのまま終わってしまうと飽きられそうなので、がんばって成功させました。 パターンが何か気持ち悪いけど...今度はフレキのパッドの直線ラインは0.2mm、他は0.3mmで引いてみました。
成功と書きましたが、1カ所だけ失敗してます。紙一重くらいでつながっているラインがありました。 ちょうど転写用紙の泡の部分がラインに重なっているところと思われます。後で修正します。まあ、作り直してもいいけれど。
 →結構、修正大変でした。パッドの部分も切れそうな部分があり、かなり入った部分でフレキを結合させました。
とりあえず、銅箔が酸化してしまわないようにフラックスを全面に塗ります。
ほんの少しで、かなり広範囲に塗れます。アップで撮っているので大きな入れ物に見えますが、20cc入りの小瓶です。もっと大きな奴が欲しい。
25年くらい前に基板を作っていたときも、サンハヤトのこんな小瓶のフラックスを使っていた。キャップも中栓も同じような感じでした。 ただ昔のはもっとどろっとしていたような覚えがあります。

後は穴を開ければ完成です。実は穴を開けるのがまた大変だったりする。

なぜ、自分が転写シートを作って転写しているのかというと、直接インクジェット用紙等に印刷した物を転写した場合、 転写後の紙が簡単にはがれないからです。がりがりやるとトナーのパターンがはがれたりするので指で丁寧にこすり落とすのですが、 細いパターンはどうしても紙だけをはがすことが出来ませんでした。以前、0.5mmピッチ、ライン0.25mmの変換基板を作ったのですが、 そのときにこの転写シートを使って思い通りに作ることが出来るようになりました。シートを作るのが少し手間ですが、作り置きが可能なので、 暇なときにたくさん作ればいいし。泡の問題が克服できれば最高なんですが。
2009年4月9日

今日はソフトの方です。
以前紹介していたストロークフォントをPC上に表示させるプログラムが出来ましたので一応公開しておきます。
まあ、MBEと同じく水魚堂さんが 日本語テキストの配置ツールjtext4mbeを公開されていますので 敢えて作る必要はなかったのですが、AVRマイコン上に実装できるか検討する為に作りました。既にサポート切れのBorland社のDelphi4を使用しています。

良かったらどうぞ。

使い方は、まず適当なフォルダに解凍し stfprn.exe というプログラムを実行させます。フォントを指定する欄がありますので、そこに ここから ダウンロードして適当なフォルダに解凍した坂 直純さんのストロークフォントを指定します。あとは好きな文字を入力すると表示されます。

2009年4月10日

変換基板ですが、フレキを切って、少し削って配線をむき出しにして、フラックスを塗り、予備半田をしようとしたら、どろどろに溶けてぐちゃぐちゃになってしまいました。熱には弱かったんだ...
そこで、カプトンテープを貼って補強して、基板側の予備半田だけでくっつくかやってみました。何度も失敗して、ようやくくっつきました。
導通も全ピンとれてます。ショートはしてないようです。

ただ、半田でくっついているのか、 単に溶けたフレキのビニルで押さえられているだけなのか、その辺が不明です。まあ、様子見ていきましょう。

基板の方ですが、本当はピンヘッダを半田付けするつもりでしたが穴の位置がずれてしまって入りませんでした。 錫メッキ線を半田付けしてあります。

クリーム半田があればもう少しうまく付くかも...どこやったっけ。

くっつけるときに半田ごての先でごりごりやっていたら、コテの先のメッキがはがれて半田がのらなくなってしまいました...ぼろいコテを使えば良かった。

2009年4月11日

さて、色々と資料を探したり整理したりしていました。 で、秋月電子で買ったSDカードのコネクタが表面実装であったのに気付き、実験で使いにくいので基板を作りました。1回失敗したので、2度目です。 でも何か汚いですね。
メーカーがわからない安い奴と、 リバースタイプですがヒロセの奴を買っていましたので、2種類作ってみました。 メーカーがわからない奴はパッドの推奨パターンがわからなかったので、ヒロセの奴の標準を引用して適当に作りました。 一応パーツ登録してから線を引き出してあります。MBEもかなり慣れてきました。 と、言ってますがパターンをひっくり返すのを完全に忘れてました...左右が反対です。もったいないので、今回は無理矢理使おうと思います。

さて、次はいよいよ液晶の部分の回路を組んでみます。マイコンも繋いでパターンが出るところまで出来ればうれしいですね。まあ、焦らずいきます。
2009年4月15日

体調がすぐれません。トップページもファイルを壊してしまってるし...
全体の電圧をMP3デコーダに合わせて3.3Vにしようと思っていたのですが、使用予定のS-RAMの電圧が5Vだったので、 デコーダのみ3.3Vで動かし、他は5Vで動かす事にしました。信号レベルが違うので間にTC74VHC244Fをはさみます。以前秋月で購入しました。 色々と変換基板が必要になりそうなので、まとめて作ろうと思います。
SDカードも3.3Vでしたね。間違って、色々壊してしまいそうだ...
2009年4月18日

S-RAMとバッファIC用の変換基板を作成しました。 ピッチが1.27mmの物なので、普通に半田付け出来るのですが、作って見ました。今回はサンハヤトの紙フェノール片面基板を使ってみました。 やはりガラスエポキシとは違い、簡単に割れます。今度は紙エポキシを購入しようかな。安かったので、ガラスの両面をたくさん購入したので、 まあ当分買うことも無いかも。でも、なんで両面の方が片面より安いのだろうか...
2009年4月20日

今日はユニバーサル基板にLM317の12V電源回路、5V電源回路、 3.3V電源回路、 −12V電圧発生回路を作りました。LCDの変換基板もつけましたが、半田が外れたりなかなか思ったようにはいきません。 正式にやるときには何か工夫が必要と思われます。
2009年4月21日

SDカード基板、VS1011e基板、フラッシュメモリ基板、S-RAM基板、バッファ基板、 ATMEGA64L基板を両面テープで仮固定して、UEWで結線中です。思ったより大変で、少し時間がかかりそうです。それぞれ変換基板を作らないで、 専用のプリント基板を1枚作った方が早かったかもしれません...ま、いいか。
2009年4月23日

ある程度配線できたので、ISPでATmega64Lに書き込みを行おうとしたのですが、書き込めません。 自作のライターを使っているのですが適当に作りすぎてターゲットの負荷が大きいと電源供給が出来なくなり、書き込めないことがしばしば有りました。 で、FETやらTrやらで電源供給しようと改造したのですが、とたんに何も書き込めなくなってしまいました。 単純な書き込みソケット経由でも書き込めません。悔しかったので色々いじっていましたが全然書き込めません。 さらに色々やっているうちにUEWがぐちゃぐちゃになってきたので、すっきりプリント基板で作り直そうと思い、今、基板を作成中です。 以前大量に購入した10cm角の両面ガラス基板です。今日アイロン転写してみたのですが、失敗しました...何だろう。 基板の脱脂がうまくいってないようです。温度かな?まあ、しばらくライター作りをやります。
2009年4月26日

何とかエッチングも完了しました。気になるずれも1mm程度に収まりました。 初めて両面を作ったのですが、割とまともに出来たと思います。例によって間違いが有りました。 相変わらず半田面の表面実装部品の左右をひっくり返し忘れて配線を引いていたところが1カ所有りました。 ミニルーターで、がりがりパターンを削って修正しました。何とか使えそうです。
あと、穴開け中に超硬ドリルを1本折ってしまいました。ほとんどの穴をボール盤で開けたのですが、開け忘れがあったので、 手抜きしてハンドドリルで開けていた時にペキッと折れました。何か悔しい。ガラス基板の穴あけは超硬ドリルでないと厳しいです。 100均のHSSドリルで試しましたが、なかなか穴が開きませんでした。
2009年4月27日

半田付けも完了し、プログラムを焼こうと秋月のライターを動かそうとしたのですが、 ”実行時エラー”が出て使えません。MSのVB?のDLLのバージョンの違いかも。 どうにもならないので以前作成したパラレルライターを使って書き込みました。結果は全然変わりません。エラーの発生状態も同じような感じです。 ほとほと困って、アナログオシロで何とか波形を見たりしましたが、特に問題なさそうです。
で、何時間もかけて調査したところ、AVRStudioのコンパイルオプションが反映されていません。 最適化無しの-O0指定でも-O2指定でコンパイルされています。AVRStudioのバグ?と思い、新しい4.16が出ていたのでダウンロードしてやってみましたが、 変わりません。で、以前プロジェクトのフォルダに日本語のパス名が含まれているとおかしかった事が有ったので、 日本語を含まない所に移してやってみたところ、正しくコンパイルするようになりました。そして、そのデータで書き込んだら正常に動作しました。 改造して動かなくなった奴に同じAVRを差したところ、それも正しく動作しました。この数日間は一体何だったのか...。 まあ、いいんです。両面基板が作れたことが収穫と思えば。
今後、それを使ってやっていきたいと思います。今度はUSBで動作するパラレルライター/シリアルライターを作ろうかな...
2009年4月28日

新しいライターを使ってISPでATmega64Lに書き込みを行おうとしたのですが、やっぱり書き込めません。 で、よく調べるとVccとGNDがショートしています。初心者的な間違いの予感。配線をずっと追いかけて調べたのですが、間違いは有りませんでした。 で、GNDとVccの接続箇所毎に外していって導通の確認を行ったところ、ATmega64Lに接続すると短絡状態になることがわかり、 デバイス内で短絡している?と思い、変換基板から苦労して取り外して、ついでにその状態で短絡状態を確認したら、短絡しています。 外さなくてよかったんだよ...
で、変換基板をよーく見てみると、パターンが接近している箇所があり、細いひげが出ていてショートしていました。 誰だ、こんな基板を作った奴は...俺だよ。で、修正して何とか短絡状態は回避出来ました。で、外すときの熱で壊れてるかもしれませんが、 もったいないので外したAVRを再度取り付けて、書き込みを確認しました、が、駄目です。 やっぱり熱で壊れたんだ、と思い、又取り外して新しいのをつけて確認しましたが、やっぱり書き込めません... で、データシートをよく読み直してみると、ISPの時はMOSIはRXD0、MISOはTXD0を使用するとの事。ただしSCKはそのまま。なんだそれ。 何のために変更するんだよ...。つなぎ直したところ、書き込めるようになりました... ただし、読み直すとちゃんと書き込めていないようです。明日、再調査します。2度も外したAVRは今度こそ駄目かな。 700円近かったんだが...
2009年4月29日

やっと原因がわかりました。ライターの動作を少しでも早くするために、 ライターからの応答を受け取るモードと、受け取らないモードを用意していて、ページ書き込みのAVRの場合、受け取らないモードで、 PCからライターにどんどんデータを送っていたのですが、バッファが小さくて、フラッシュROMに書き込む時間がかかった為、 バッファがオーバーランして書きつぶしていました。 応答を待つように修正したところ正常に書き込めました。やれやれです。しかし、書き込み時間がかなりかかります。 ベリファイしなければそこそこなので、しばらくは書き込みだけで開発しようと思います。やっとプログラムが書ける状態になりました。
2009年4月30日

もう5月ですね。さてやっと液晶に何かを表示することが出来ました。 まだS−RAMを使っていないので、ベタのデータで塗りつぶしています。ATmega64Lを16MHzで動作させています。 素直にLが付かない奴を使えばいいのですが持っていないので...
AVRライターは調子いいのですが、USB-RS232C変換ケーブルの調子が最低です。時間を空けるといきなり通信できなくなっていたり。 何だろうか...余計なトラブルが多すぎるよ...

動作の様子

どうも負電圧が高いです。−2.6Vとかになってます。そのためか電源の投入タイミングでおかしくなることがあります。 具体的には表示がちらついたり、同期が取れなかったりです。やはりまともなDCDCをつけないとまずいかもしれません。 でもLMC555は安いし、たくさん買っているので...実験ではLMC555の出力に2SJのFETと電源用のインダクターを付け足すと 1KΩ負荷でも軽く−30Vとか出せるのですが、電圧の制御をやらないと使い物にならないし。
ATTiny26LのADとタイマー出力を使ってDCDCを作ってしまうという手も有るけれど。どうしようかな.。-12Vを作ってみようか。 というか、ATmega64Lでやってもいいんだよね。処理が間に合うかわからないけど。 でも、負電圧の電圧を測定するときはどうすればいいんだろうか...まあ、また明日ですね。
2009年5月2日

液晶を色々いじってます。やっぱりどうしても動作がおかしい感じだったので、 ジャンク品のDCDCに変更してみました。入力24Vで出力が±15Vの奴で、入力を12Vで使用しました。それでも一応出力は±15V出ます。 で、さすがに動作はしっかりするようになりました。が、S-RAMが妙に熱かったので配線を見直したら全く間違ってました。 違うパッケージのピン配置図を見てました。壊れたかも。
苦労して配線は直しました。液晶の裏のVRを調整したらかなりクロックを遅くしてもそれらしく表示されるようになりました。 スピードを気にしないのであれば250KHz程度あれば絵は出そうです。ただし、一画面0.5秒くらいかかりますけど。
ただ、250KHzでもS-RAMからデータを引っ張り出してポートに出力するだけでも大変なんだよな...
それにしても、まだ焦げ臭い感じがする。絶対何か壊れているか配線間違えてる感じ...
2009年5月4日

さて、S-RAMは壊れている可能性が高いですが、 それ以前に読み出せたとしても1画面を表示するのに2秒位かかっています。当然、まともに表示されません。 がんばって最適化していったとしてもそこそこ見られるような画面を出せそうにありません。 マイコン単体で色々表示されている方がいらっしゃるようですが、俺には真似できそうにないです。 今回のプロジェクト自体がMP3プレーヤーというより液晶に何か表示してみたいだけだったような気もしますが、どうしようかな。 ここで放り出すのも嫌なので、CPLDでも勉強しますか...(ほとんど知りません)
何か諦めが早すぎる気もしますが...
2009年5月5日

昨日は諦めムードだったのですが、とりあえずやれるところまでやってみようと思い、 S-RAMを交換しようとしました。RAMを外した後で何も接続されていない端子が目にとまりました。GNDに繋いで有るはずのE1でした。 つなぎ忘れ。これでは出力されるわけが有りません。

E1をつなぎ、外したRAMを半田付けしてから確認すると、なんと逆に取り付けていました。また外して正しく取り付けました。 壊れたかもしれませんが、とりあえず電源を入れて動作確認しました。交換前と症状が変わりません。がっくり...。 たぶんRAMは問題無かったのです。AVRの時と全く同じ事をやってます。何度も交換し直す事で本当に壊れたかも。

仕方ないので新品のRAMに再度交換 しました。交換前と症状は変わりませんが、読み出したデータがころころ化けたりしていないので、前のRAMは本当に壊れてしまったのかも... プログラムを見直すとRAMへの書き込みタイミングを色々と間違っていたので修正していった所、書き込まれるようになりました。 ただし、表示させると何か色が書き込んだ物と違っています。
初期化処理で400*96*3バイトのデータを設定しているのですが、白色以外だと色が転んでいる行が7行近くあったり まともな色が続いたり、何かむちゃくちゃです。

色々チェックしたりAVRStudioのデバッガでデバッグしたのですが、問題有りません。 で、書き込むデータ量で色が転んだり転ばなかったりすることがわかり、どのくらいで転ぶのかチェックした所およそ8200バイト付近でおかしくなることが わかり、 アドレスのA13(8192)が怪しい事がわかりました。で、配線をチェックしましたが間違えていなくて、もしかしてと思い、 変換基板のAVRの足と引き出してあるパッドの導通を確認したところ、導通してません...またしてもこの自作基板にやられました。 上位のアドレスがつながってなかったので、同じ所へ書きつぶしてしまっていたのですね。修正して動かしたところ正しく表示されました。

やっとS-RAMの内容が表示できるようになりました。当初割り込みで処理を行うことにしていましたが、処理のステップ数が多すぎて 割り込み期間内には全く間に合わず遅れまくってましたので、普通の関数として表示ルーチンを作成し、暇な時にどんどん呼び出す事にしました。 ただし表示に専念したとしても1秒に2画面程度しか描画出来ていませんので、動画的な物を表示させるのは厳しいでしょうね。 今、各色8ビットになっていて完全にオーバースペックなのですが、5ビット程度にして3色で16ビット以内にすれば もう少しスピードが上がりそうですが、とりあえずこのまま進めて見ます。次はフォントを展開して、表示させてみます。今日も疲れました。
2009年5月6日

フォントを展開と思ったのですが、展開するデータがまだフラッシュROMに入っていません。 AVRにPCからデータを転送させてフラッシュROMに書き込まないといけません。取り敢えず、以前作成していたFT232BMの基板があったので、 つなげて通信出来るか確認しました。115200bpsで通信できました。 まあ、これでフォントデータをどんどん送ってそのままフラッシュROMに書き込めたとしても30秒はかかる計算になります。 もっとかかるだろうな...。取り敢えず、今日はそのくらいです。次はフラッシュROMの読み書きルーチンを作成して、 フォントを送信する側のプログラムも作りましょう。
2009年5月7日

今度はフラッシュROMが書けません。何が悪いんだろう...
そうこうしているうちに液晶の表示がおかしくなってしまいました。たたくとちらついて表示が出なくなったりします。 裏にあるVRを回しすぎていて前からおかしかったのですが、とうとう駄目になった様です。 VRを外して線を引き出し10KΩの半固定抵抗器をつけました。かなり調整しやすいです。
2009年5月8日

急 に液晶が明るくなったり暗くなったりします。 電源を入れたり切ったり頻繁に行ったので、冷陰極管の寿命がきたのかもと思い、インバーターを使うために買った秋月の極細冷陰極管と交換しました。 長さが少し短いでしたが適当に絶縁して電源を入れると交換前と同じく明暗になります。 別のスイッチング電源をインバーター単体に繋いで動かすと正常に光ります。作りかけのプレーヤーの5Vから持ってくると明暗を繰り返します。 3端子レギュレーターの電圧を見てみると、インバーター接続時に4.3Vとかかなり低い電圧になっていて、明暗に合わせて変動します。 入力があんまり電流が取れないトランス式のACアダプターだったので、電流が増えて電圧がかなり低くなっていたため、 3端子レギュレーターが調整しきれなくなって5V以下の電圧が出ていたみたいです。最新の低飽和型を使えばもう少しましかも。同じ?
一旦、317で受けて12Vを生成し、それから7805に送っていたので、かなり低くなったようです。 もう少し大型のACアダプターが有ったので、それでやってみましたが、もっとひどくなりました。 今度は発熱の為、317がダウンします。どうしようもないです。

測定したらインバーターに200mA以上流れていました。かなり大食いです。どうしようかな。 いっそのこと、スイッチング電源を内蔵させる手もありますが...秋月のスイッチング式超小型5V ACアダプターあたりを使えば大丈夫かな。 今のACアダプターはかなり熱くなっていますので常用するには危険かも。

取り敢えずはインバーターに別の5V電源を使用して、今までのACアダプターをプレーヤーの基板に使い、 317はバイパスして7805に直結するようにしました。本当はその状態でインバーターを繋いでやってみたのですが、変わりませんでした。

さて、フラッシュROMですが、一応読み書き出来るようになりました。が、フォントを転送中に止まることがあります。 書き込みエラー時に固まってしまうみたいです。プログラムを修正しないと駄目ですね。データシート通りのはずなんですけど...見直します。
思ったより高速に読み書き出来るので、リアルタイムに展開するのも夢ではなさそうです。
2009年5月9日

フラッシュROMですが、色々と面倒なバグを作り込んでいました。やっと正常に読み書き出来るようになりました。 途中、またしてもフラッシュROMを交換しようと思ったりしましたが、思いとどまってよかったです。 さて、スピードですが、順番に読んでいって最後のフォントを探すのに1秒程度かかります。そこまで高速ではなかったです。 インデックスを作らないと実用的では無いかも。あと、このフォントはJISコードなので SDに書かれているシフトJISコードをJISコードに変換しないといけませんが、面倒なので変換したデータを書き込むことにします。 インデックスの構造とかを検討します。
2009年5月10日

うーん。ストロークフォントはやめてFONTX2のフォントを使うことにしました。 内部的にSHIFT-JISコードになっているのでコード変換する必要がない事や、ストロークフォントの標準が縦32横30ドットになるので 縮小しないと大きすぎる事、既にマッピングデータが存在していて面倒な事を考えなくていい事などがありました。 決してストロークフォントが駄目と言うことではないので、使う機会があれば使いたいと思います。せっかく色々やったので。
実際には東雲フォントを使う予定です。 というか、既に組み込んで指定文字列を表示させる機能まで実装しました。 半角、全角を織り交ぜて任意の座標に表示することが可能になりました。表示は遅いですが... 通信を使ってデバッグしていましたが、画面表示も使える様になったので便利かもしれません。
2009年5月11日

SDカードを調べていたら、CRC7が必要なことがわかり、 どうやって計算するかちょっとDelphiでプログラムを作ってみました。 まあ、実際は最初の初期化の時位が正確なCRC7が必要で、それ以外は無視らしいのであらかじめ計算しておいて、埋め込もうと思っています。
取り敢えず、欲しい方はどうぞ。あんまり参考にならないかも...CRCはUSB以来だな...

2009年5月12日

CSのプルアップをして無くて全くアクセス出来ず2日ほど途方に暮れていましたが、 やっとCSDの16バイトデータを読み出せる所まで出来ました。一時は中古のデジタルオシロを買おうか、とネットを検索したりしてました。 作ろうかとも思いましたが...恐らく次回のプロジェクトです。ステッピングモーターのドライバも作らないと。
さて、次はいよいよFATアクセスです。やっとだよ...
2009年5月15日

SDHC規格のカードだとどうなるのかやってみた所そのままでは動か無かった為、 仕様書を見て初期化処理をそれらしく修正しました。まだFATに手をつけてないというのに...まあ、少し気になっていたのでいいでしょう。
2009年5月16日

FAT32ですが、長いファイル名の扱いがUNICODEだったとは知らなかった...めんどくさい... 取り敢えずネットで変換表をダウンロードして、フラッシュROMに書き込みました。27KB位と思ったほど大きなサイズではないので 先頭から順番に検索してコード変換すれば大丈夫そうです。
で、FAT16/32の構造の勉強中です。ライブラリを使うだけなら必要ないとは思いますが、何かライブラリを書きたくなってきたので。
面倒かな。やめとく?
2009年5月17日

長いファイル名(LFN)ですが、別にFAT16でも出来るんですね。何か勘違いしてました。取り敢えず、勉強が続きます。
2009年5月18日

10日以上ほったらかしです。FATとFAT32とLFNで悪戦苦闘中です。 ネットの情報で混乱してましたが、何とか理解出来てきました。調べていると、少なくても4つほどフリーのFATのライブラリが存在してました。 使った方が便利だし時間の節約かも。信頼性も高いはず。
何とかファイルの一覧?をだらだら表示させる所まで出来ましたが、データを読み出すとか書き込むとか、まだまだ先が長そうです。 今年中に出来るのやら。
ファイルの一覧情報を取得しても保存しておくメモリーが無いので、ファイル名を使ってファイルをオープンするとなると メモリーが足らなくなりそう。で、どうするのか色々と妄想中です。
2009年5月29日

もう6月です。4月頃から開始してもう2ヶ月も経過しています。なのに肝心の音がまだ鳴っていません。 MP3デコーダーから音声の出力を引き出してもいないので音が出るはずも無いのですが...ちょっとゆっくりしすぎかな。 中だるみの状態です。やる気が大分無くなってきているのがわかります。とにかく、完全なFATシステムを作成しようとか思わないで ファイルを適当に読み出してデコーダーに送ってみるようにしなくてはいけませんね。単純にデータを送るだけで音が出てくれるのだろうか...
2009年6月 1日

いつの間にか7月になってます。6月から全く進行していません。興味を無くしている...
もう少し放置して、やる気が出てきたらぼちぼち再開しようと思います。
2009年7月 5日

いやはや、放置しすぎでした。
とりあえずFATを読み出してファイル一覧を表示させるところまで出来ていたのですが、色々と忙しくて(やる気がなくて)ファイルを読み出すところが出来ていませんでした。2011年の9月頃に少しやる気が出てがんばり始めたのですが、なかなか進まず12月の中旬に漸くファイルを読み出せるようになりました。その少し前の11月にプレーヤーの本体にイヤホン端子をつけて音声が取り出せるようにしました。
はじめはテストトーンを出そうとしたのですが、音が出ず、VS1011eを交換しようと思いました。実はSDカードがCSを操作してもバスが解放されず、その影響でコマンドやデータを受けつけない状態でした。で、電圧変換に使った例のHC244を追加しました。変換基板で埋まってしまい、あいているところがない状態です。
その後、コマンドは受け付けるようになったのですが、音が何もでません。で、音量のパラメータが0が最大で、FFが最小という事になっていました。0にしたらテストトーンが出るようになりました。
その後、ファイルを読み出し、VS1011eに送ると、なにやら早送りしてブチブチ切れている感じで音がでます。送信するタイミング等を色々変更してみたのですが、さっぱり改善されません。何度VS1011eを交換しようとしたかわかりません。(高かったので、交換しなかった。)
SPIのクロック速度を250Kbpsにしていたのが原因で4Mbpsにしたら大丈夫でした。8MにしたらSDが読めなくなりました。
とりあえず、読み出したデータをVS1011eにそのまま送ると演奏されます。すごいですね。
テストとして、ルートのファイルを全てループで演奏するようにして、今度は液晶をどうにか表示させようとしました。
が、やはり、データを送信しつつ、画面を書き換えると、1秒に1.5画面くらいの更新になります。全くダメですね。
で、表示部分は切り離した物を作ろうと、今、液晶の表示ユニットを作成中です。
また、そのうち紹介したいと思います。

2012年1月15日