Hatena::Groupecrafts

Chuckの電子工作

趣味の電子工作を中心に書いています。音関係工作はg:emusic:id:Chuckどうぞ。


検索エンジンより飛んでこられたかたで、お探しのキーワードが見つからないかたは、↑の検索をご利用ください。

2007-01-20

LCD

LCDキャラクタディスプレイ(秋月の20x4液晶)を去年のデザインウェーブ付属基板に接続しようとしてうまくいかないので、参考書を見ることにしました。

最初に開いたのがこの本。

しかし、なんというか、使えません。

カスタムキャラクタの周りを知りたいのだけれど、記述がない。互換なコントローラVFDのところにちょっとあったけど。

そもそもアルゴリズムと実装が渾然一体と書かれているのでよくわかりません。アルゴリズムを知りたいのにPICのアセンブリコードや、78Kのツールの解説を読まされるのは勘弁です。H8や78Kやらは Cで書いてるんだけどソースが別々で、Cで書くんならポータブルにすればいいのに…

このシリーズはこういうのが多いなぁ…

次に

この本が気になりましたが、身近の本屋になかったので注文しました。まだきてません。

しかしどうにも動かないのが気になるので、トラ技バックナンバーを出してきました。2004年2月号の特集です。

これを読んで大体の動作がわかりましたが、必要な内容がすべて記載されているわけではありませんでした。

結局一番参照したのは液晶についてきたデータシートというかペラ紙。

ということで、ようやく"Hello World"を出すことができました。

何が悪かったかというと、結線を間違えていた orz 奇数列と偶数列を入れ替えて修復。

それでもカスタムキャラクタを作るときにDDRAM/CGRAMアドレスをいじるとbusyフラグが落ちないで行ったきりになってしまったり、カスタムキャラクタが化けたりするので、もうちょっとタイミング周りを見直すことにしましょう。

しかしこの目的に対して42MHzは速すぎるのでしょう。OS使わないで書いているので、LCD処理に取られて、割り込みはともかく、他に仕事が回らない場合が出るかもしれないから、(ハード割り込み後の)ソフトウェア割り込みによるディスパッチャみたいな仕組みを入れないとだめかなー。

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20070120

2006-03-10

DWM 4月号

| 12:24

とりあえず読んでみました。

「第5章 ARMプロセッサでオーディオオシロスコープを実現する」という記事があります。参考になります。ていうかここまで完成度が高いとこれはこれでコピーすればいいかなと思ったり。

r0r0r0r02006/03/10 06:38早速、立ち読みしてみないと^^;

ChuckChuck2006/03/10 06:50レポートお待ちしております(などと…)。

マクロマクロ2006/03/10 23:03AVRは参考書が少ないっていう定説が崩壊しつつありますね。

ChuckChuck2006/03/11 07:07そうですね。入門者がどっと入り込んでくるかしら?
目次にあるようにペリフェラルをひととおり説明してあると、対象外のAVRへも応用しやそうです。

geniegenie2006/03/18 17:40>付録基盤
「4月号の特別付録は碁盤!!」くらいのおチャメをやって欲しい。

ChuckChuck2006/03/19 18:32「プリント基盤」を揶揄する意味で「プリント碁盤」の造語を喧伝するのは楽しいかもしれません。

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20060310

2006-02-21

さらにメモ

シミュって実行速度

スピードでoptimizeしたら

もう少し速くなりました。

と書いた後でほかのやり方もやってみました。KEILシミュレーションだけど。

Thumb命令にしてみる

最小ステップ実行時間 0.024usec になりました。41.78MHz 動作ということですね。1-HCLKでROMからインストラクションフェッチできるようになったのでしょう。

正弦波の周波数も 50.4kHzぐらいに。

RAMに置いてみる

テーブルとループでルックアップする部分を関数にしてRAMに追いやってみました。ARM命令(32-bit)でも50.4kHzが得られました。

実機はどうなってるんだろうなぁ

DACみたいなAPBなペリフェラルってAHB-APBブリッジを介してその先にいるのかな。

ところでPCLKとHCLKは同じ、だよねぇ…

ChuckChuck2006/02/21 23:36了解ですー

suikansuikan2006/02/22 00:33先週末は秋葉原の書泉グランデに数十冊おいてありました。

ChuckChuck2006/02/22 09:26マクロさん、メールをお送りしました。
あるところにはどっさりとあるんですね… 私自身ももう一個買っておこうかしら…

マクロマクロ2006/02/22 21:05よろしくお願いします。m(__)m
今の時期じゃなければ、県庁所在地にでも隣の県にでも遠征可能なんですが…
通販も検討したんですが、雑誌は意外に買い難いものなんですねぇ。

ChuckChuck2006/02/24 08:38マクロさんに1冊お送りして、自分用にもう1冊買ってきてしまいました (^^;)

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20060221

2006-02-20

メモ

いやー、よくわからないことがいっぱい←ちゃんと勉強していないからですが。

シミュって実行速度

GNU ARMなKEILの環境で、DACsine.c のデモを動かして、disassembly のステップ実行で whileループの1周の時間のexecution profiling。

POWCON = 0x0000 で
1サンプル(sine LUTが1進む) 0.528usec
POWCON = 0x0001 で
1サンプル(sine LUTが1進む) 1.056usec
POWCON = 0x0003 で
1サンプル(sine LUTが1進む) 4.213usec

POWCON = 0x0000 のときで 1ステップあたり、0.048usec というのが最小単位でした。20.8MHz。

測ってはみたものの、パイプラインのどこをどう測っているのかわからなかったりしていますが、ステップ実行とrun/break で出てくる時間が同じということで、ふむふむ。

スピードでoptimizeしたら

もう少し速くなりました。

AMBAとかペリフェラルとか

ADuC7026のデータシートを見るとMMRペリフェラルアクセス速度に関しては、バスアクセスのAMBAを見ろ、と。

そういえばDWMのgcc記事に ROMで動かすよりも RAM で動かすほうが速いとの記述(p.101)。なぜだろう。どちらも AMBA AHB にぶら下がっているのではないのかしら。ROMはwaitかかっているとか?

p.51の1サイクルでアクセス可能、というのもよくわからなかったり。アドレスとデータでフェーズ分かれて 2-HCLK 要るんではなかったかしら、って AHB を勉強しろということですか、そうですか…

APBはともかくAHBは忘れてAXIに切り替えたいのだけれど…

マクロマクロ2006/02/20 19:38ROMは16BitでRAMは32Bit構成らしいです。今回は出遅れて買いそびれてしまってさみしい思いをしてます。

ChuckChuck2006/02/20 19:54マクロさん、ありがとうございます。そうですか、ビット幅がちがいましたか。それなら速度が違って当然ですね。
私の通り道の本屋さんでは、先週の前半はまだまだ平積みの状態だったのですが、もう見当たらない状況ですか?

マクロマクロ2006/02/21 00:03地方住まいでDWMを入れてる本屋が凄く遠いのですが、昨日行ったら売り切れでした。FPGAのときは売れてるようには見えなかったんですが、ARM-CPUだと興味を持つ人がいたようですね。

ChuckChuck2006/02/21 06:44そうですか、残念ですね…

ChuckChuck2006/02/21 06:45ROM 16bit幅、RAM 32bit幅の記述をDWM記事中 複数で見つけました。ちゃんと読まないとダメですね>自分。
さっそく Thumb でコンパイルしてみたら 50.7kHz の正弦波が得られました(KEILシミュレーション)。

RJBRJB2006/02/21 08:14なるほど16bit命令だと読み出しが早くなるのですね。実機でもその速度が出るといいのですが…

ChuckChuck2006/02/21 10:03実機はいったいどこで速度が落ちているのでしょうね… settling time 10usec でも 100kHz は行けるはずですよね。

RJBRJB2006/02/21 22:10このサンプルだと64sample/periodなので、セトリングスペック的には100kHz/64=1.56kHz程度となるような???

ChuckChuck2006/02/21 23:16おお、おっしゃるとおりです。
そうすると速い方で10kHz出るのがこれまた謎です。

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20060220

2006-02-18

sine gen

IARとKEILのツールのインストールをしていません。gcc だけでとりあえず遊んでます。

RJBさんがsineを出力していた (RadioJunkBox@cocolog: DWM3月号おまけ基板その2) のを見て、自分でもやってみようと思いました。

gccの練習記事のスタートアップコードとリンク情報を使い、KEILのcode exampleにある DACの例を引っ張ってきてちょこっと直して build。

オシロでは見てませんが、ミニアンプに繋いだらピーと音が出たので、動いているのでしょう。

ああ、ちゃんとしたスタートアップコードとレジスタ定義ヘッダを書くのが面倒だな。IARかKEILをインストールして include を抜いてこようか…

追記

オシロでみたところ、POWCON = 0x0003 で 1.7kHz、POWCON = 0x0000 で 10.2kHz の正弦波が得られました。クロック比と合わないな…

S1.8 must be off ってなんだろう…

追記2S1.8 must be off

Micro Conberter ADuC7026 Eval ボードを使用しているときは LED と DAC1 が共用で、S1.8 で切り替える、ということと思われる。参照: 7026EvalGuide_B.pdf

RJBRJB2006/02/19 19:46仕様ではDACのセトリングが10usなので、この辺が関係あるやないや…

ChuckChuck2006/02/20 09:35KEILをインストールしてシミュってみています。

ChuckChuck2006/02/20 10:46シミュレーションでは POWCON = 0x0000 で 29.4kHz が出ていますね。(KEILのLogic Analyzer画面)

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20060218

2006-02-17

とりあえず

やっぱり出力が電源とあたっているのは気持ち悪いので。内部回路見ないとなんともいえないけど…

とりあえず 揚げ足 足上げの改修。

f:id:Chuck:20060216180132j:image

改修に使った道具、

  • ハンダゴテ
  • ハンダ吸い取り線
  • ルーペ
  • ペンチ

f:id:Chuck:20060216180151j:image

それから、

  • ターゲット基板をクリップで固定して、
  • 裁縫針をピンバイスに食わせたものと
  • 裁縫用の糸通し

裁縫針は5号じゃ太くて8号とか9号とかのあたりを。針先を曲げてフックにしようと思ってはいけませぬ。確実に折れます。

特に説明はしません。動画にしたところでなんの参考にもならないでしょうし。あとは創意工夫でどうぞ。

足を上げただけでとりあえず満足、というか適当なチップコンがなかったというのが正しいところ。

LED点滅サンプル

チップコンデンサの手持ちがなかったのでどうしようか思案して、ジャンク箱を漁ってみました。壊れたハードディスクドライブを発見。何個かチップコンがあるので容量を測ったら許せる値のものがあったので移植しました。

LVddの手当てと電源パターンを見てパスコンの薄そうなところに追加。

で、gccの解説記事のサンプル(LEDを点滅させるもの)を流し込んで無事動作しました。よしよし。

追記

少なくとも一晩ノンストップで動きました。よしよし。

suikansuikan2006/02/16 22:28私はあきらめて後にCapをつけました。以前1.27mmピッチの足上げをやったときは、針を焼きなまししてフックにしようとしましたが、折れて挫折しました。あの時は針を梃子にして足上げできましたが、今回はもう、投げてます。

ChuckChuck2006/02/17 09:00結構つらいです。どうやったか言葉で説明するのが困難ですが (^^;) ハンダを吸い取って、針で少し持ち上げて、糸通しをもぐりこませてハンダ角ができないところまで引き上げ、ペンチで整形しました。もう1枚あるなぁ…

geniegenie2006/02/17 11:14巷でブロワーっていわれているのは、熱収縮用のヒートガンとは違うモノのかなー。ジャンク基板を焙ってQFPを剥がす練習でもやってみるかなー。やれやれ

ChuckChuck2006/02/17 14:54温風をかけるやり方はやったことがないのでわからず、どうもすみません。
http://www.nri.mydns.jp/kick4wiki/index.php?%A5%EA%A5%EF%A1%BC%A5%AF こちらが参考になるかもしれません。

geniegenie2006/02/18 06:48URLをありがとうございます。手持ちの熱収縮用に使っているモノでは非力だと判明しました。チップコン1個でお茶を濁すかなー。よくも欺いてくれたよ、DWMめ!って感じ。

RJBRJB2006/02/18 09:07じゃ僕は、人柱として当面無改造で行きます(笑)。DACを使ったsin波genを焼いて、POWCON CD=0で一晩寝かしてますが、特段異常なく、チップもほとんど熱くなってないようです。素直に、楽しいですねこれ。JTAGツールが欲しくなってきました。

suikansuikan2006/02/18 10:13手元の基板ではなぜかシリアル経由のGDBがうまく行かず、JTAGへの移行を画策しているところです。

ChuckChuck2006/02/19 00:58RJBさんの環境では安定しているようですね。私も2枚目はそのままにしておこうかしら。
suikanさん:シリアル経由のgdbは私のところでもうまくいっていないです。うまくいっていても途中で通信Time out を繰り返すようになったりしています。

ChuckChuck2006/02/19 00:59そうそう、suikanさん、ふたりでRJBさんのBlackfin EZ-KIT購入の背中を押しましょう!

suikansuikan2006/02/19 01:36おお、RJBさん、こっちの世界へどうぞ!

ChuckChuck2006/02/19 05:10RJBさんは以前に http://rjb.cocolog-nifty.com/blog/2006/02/post_e1bc.html このような記事を書かれていました!

RJBRJB2006/02/19 17:26suikanさんにも背中を押されて落っこちそうです…

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20060217

2006-02-15

DWM買いました

すっかり出遅れ感ですが、本日ADuC7026付録したデザインウェーブマガジン3月号を買いました。

1冊馴染みの店に予約して確保。でも2冊目は無理でした、、、と思ったら道すがらの本屋に平積みでいっぱい置いてあったので、改修に備えてもう一冊確保できました。

なひたふJTAG日記: DWM付録のARM基板でLEDチカチカ で見て、その後データシートをチラッと見したところでは、少なくとも回路図では output pin である LVDDが +3.3Vに吊られているようです。

記事中 p.44 の図1の説明に意図的にやっているとも取れる旨が記載もあり、私自身は設計者でないのでなんともわかりません。そこまで資料をまだ読んでいないし。

とは言え

石のデータシートで MUST と書かれているのを蹴っているわけで、何かしら説明が欲しいなぁとは思います。エンジニア倫理としては隠すのはイクナイ。

  1. ただなんとなく
  2. じつは間違い
  3. やってみたらそれでうまくいったから
  4. IO cellの現行実装に鑑みた高度なノウハウ
  5. 守秘義務で貝になる

というか、仕事だったら普通はとことん突き詰めないと製品安全が確保できないかもしれないじゃないですか。基本的に 2, 4 以外は不可です。

RJBRJB2006/02/15 21:53復活されましたね!僕も話のタネに1冊だけゲットしました。まだ山積みでしたが…

ChuckChuck2006/02/16 06:32いつ火入れできるかなー、といったところです。
入手に苦労している人がいるような記述をどこかで見て心配していたのですが、杞憂でした。

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20060215