コメを噛め

コメを噛め

rerofumi の電子工作メモ

Archive for 12月, 2006


hatena bookmark

基板ができあがったところで、部品を載せて眺めていたら……


がびーん!244のサイズが違うぅぅ。

対策方法としては
(1)基板を修正して作り直す
(2)このサイズの244を買ってくる
(3)ジャンパーでごまかして無理矢理配線する
といったところが考えられるかなあ。
調べてみたら Eagle が持っていたパッケージパターンは SOPW といって、このサイズの 74244 は今入手できそうにもない。
念のためとチップ抵抗も載せて調べてみたら、


一見ぎりぎりだが、はみ出して、る?
改めてみてみたら手元のチップ抵抗はどうやら 2012 サイズだったらしい。てっきり 1608 だと思っていた。そういや、どうせ手作業でハンダ付けするから大きい方が良いやとかで選んだような……。

これは (1) の基板作り直ししかないですな。

74244 の方はそもそもで Eagle のライブラリに SOP が無かった。16ピンまではあるんだけれども、20ピンだと SOPW になっている。
しかたがないので 16ピン SOP パッケージをコピーして、そこから 20ピンのパッケージを作成。自前ライブラリとして使用する事に。


今度こそ問題がないように、予め紙の上で確認。


SRAM も載せて念入りに。

今度は良さそうなので再度基板作成。


2箇所ほどパッドが近接するランドにくっついていた(それくらいみっちりとした配線)のでカッターで切り離して完成。

fumi_la_eagle_061218.zip
この時点での EAGLE Project file (回路図&ボード)
—–


hatena bookmark

回路図が書き上がったところでため息ひとつ。
こんな数のワイヤーを皮膜線でぷちぷちハンダ付けなんかやりたくないのです。
というわけで、プリント基板の制作にとりかかる。

が、ここで軽く挫けることに。
これくらいのワイヤーになると両面基板でないと実装できなくなってくるのだ。
うむむ、ついに OLIMEX デビューの時か。と真剣に思ったけれども、既に年末で OLIMEX の年末年始休みにかかってしまうので時間がかかりすぎる。
なんとかがんばって自作基板でつくるのですよ。

最初は表面実装だった PSoC と CPLD を DIP と PLCC ソケットに差し替え。パッドの間に線が通せるようになるため。
74HS244 は 2つあるバッファの内、片方だけを使って、数を2個に増やす。これはバッファ 4ch 毎に向きが違うので、1個(8chある)で済まそうとすると配線が複雑になるのを回避するため。

色々手をかけた甲斐あって、片面基板でアートワークが引けた。


まあ、ジャンパー(赤い線)だらけですが。
一部ジャンパーが適当なのは、距離が長いのでスズメッキ線でなく皮膜線で繋がないとならないところ。
良くもまあ収まったものだ。パッドの間を 2本通すとか禁断の技を多用しているけど。


感光基板への焼き付けは特に問題もなく。


基板は完成。

もっとも、これで完成であるとか、一発動作する保証はどこにも無いのですよ。
まずはここまで。
—–


hatena bookmark

マイコン電子工作を始めてから、作ってみたいと思っていたものがある。
いや、作りたい物は結構沢山スタックしていて部品箱の中で出番を待っているものが沢山あるのだが。これはそんななかの一つであり、本当に初期の頃から「いつか作ってみたい」という憧れになっている物。それが「簡易ロジックアナライザー」の作成。
PICマイコンでの工作記事を探している時に見つけた「PICでロジアナ」の記事。これをみて、PIC 工作を物にしてみたいと思った。
マルキン’ず工房さんでもロジアナ制作記事がある。
マイコンではなくFPGA+SRAMだが「カメレオンUSBロジックアナライザー」も安価な簡易ロジアナとして有名なところ。

簡易ロジアナとはなにかというと、データ信号を定期的に RAM に記録し後で読み出せる装置のことだ。数KHz 程度ならマイコンだけでドライブできるけれども、ある程度の速度で調査したいとなるとデジタルロジックの補助が必要になる。
では自分で作るとしたらどうなるだろうか。
マイコンはマイブーム継続中である PSoC で良いとして、SRAM のコントロールをどうするかである。SRAM 自体は買い置きしてある SRM2B256SLMX55 を使うのだが、ドライブする I/O が不足気味。そこで CPLD を使ってアドレッシングを、シリアルインクリメントな感じでコントロールする。

ここで回路図を起こすとこんなかんじに、


参考にしたわけじゃないんだけれども、書き上がった後みてみたらマルキン’ず工房さんとこのとほとんど同じ構造だったり。あちらほど丁寧に作られてはいないけれども。

PSoC も CPLD もソフトウェアでピンが設定できるので、本数があっていればあとはなんとでもなるだろうという気楽さがうれしい。

—–


hatena bookmark

1chipMSX の PROM 更新ができるようになったところで、なにかちょこっとしたことをやりたくなってくる。
そんな場面で思い出すのがみんな気になっているアレだよな。あの緑色のLED。
そう、
残像が無いとナイトフラッシャーと言えないじゃないかっ!!

実は 1chipMSX のイルミLEDは 0 じゃなくて Z(ハイインピーダンス)に設定するとぼんやり光るような回路になっている。で、そのままでも実は 1つ前の LED がちょっと点いていて残像表現になっているのだけれども、ちょっと気づきにくい。
もちょっと明確に残光表現になるように、簡単な PWM で中間表現を追加してみた。


使用前


使用後
あのチカチカうるさいだけだった LED がちょっとゴージャスに :-)

emsx_top.vhd の diff ファイル
esemsx3_led_knightfade.diff

ソースコードいじっていて気が付いたんだけれども、この LEDイルミネーションって元はディップスイッチの設定を LED 表示するものだったみたい。
LED の点灯と同時にディップスイッチを読み取っていたりして、むやみに削れなかったりするのです。

とまあ、冗談やっているだけだとおしかりをうけそうなので次はもちょっとまじめに。
各所で LED 点滅を削ったり別の表示をさせたりというプチハックが続いている様で。SDカードアクセスランプに割り振るとか、データバスを光らせるとか良い感じのハックは既にやられちゃっているのでちょいと考えてみる。
LED が一列並んでいるのをみて思いついたのが、内蔵音源のレベルメーターにするというハック。


写真じゃわからないけど。

音声レベルメーター化 emsx_top.vhd の diff ファイル
esemsx3_led_levelmeter.diff

このために音周りを眺めていてちょいと変わったことをやっている事に気が付いた。
音声回路で PSG は 8bit、SCC は 9bit、OPLL は 10bit でレンダリングされているんだけれども、それを 16bit の桶でミキシングして 12bit の振幅解像度をもった音圧として内部では持っている。それをラダー抵抗の 6bit DAC で出力しているかというとそうではないのだな。
12bit の情報を 22kHz のローパスフィルタに通すのは良いとして、その後 10.5MHz ベースの PWM 変調をして 1bit の情報(最大か最小か)を出力している。 6bit DAC には 000000b か 111111b しか来ていないから実質意味はない。その 1bit PWM 音声はその直後の電解コンデンサーで平滑化されてアナログ信号となっている。
だから、6bit DAC なので音がイマイチという論は御門違いな様で。
音質で言えば電解コンデンサの質に因るところが大きいかも。
ちなみにステレオ処理はされておらずに、白と赤両方同じものが出力されているもより。

音が小さいというのはまたちょっと違った問題でして。
レベルメーターを作るのに苦労したんだけれども、最終的にミキサーされた 12bit 音声情報の内最上位は符号相当(無音時中央値)だから 11bit として、その上位 3bit はほとんど 0 のままなのよね。下の 8bit 部分だけがちまちま鳴っているので音圧が小さい。試しに 1bit シフトしてみたら、ちゃんと音が大きくなった。
しかしまあ、SCC は PSG よりちょっと音が大きめにミックスされているみたいだなあとか、なんか意図があってこの数値になっているんじゃないかとか穿ってみたり。
音量についてはなんかちょこっといじる気にならなかったのでしばらくそのままにしておこうか。

—–


hatena bookmark

一般販売も始まり、盛り上がっているんだかそうでないんだか良くわからない雰囲気の 1chip MSX。や、人は選ぶけど面白いよ。技術力があれば少しづつできることが広がっていって、じわじわ味が出てくる感じ。
さて、VHDL ソースコードもコンパイルできたし、書き込んで見たいこの頃。
SD カード経由でのアップデートはできるものの、すでに起動しているロジック上で行うものなので、万が一失敗したら手も足も出ないことになってしまう。やっぱりそれはなんとなく怖い。単純なアップデートならともかく、自分でロジックをいじる気にはならないところ。
となるとやっぱり AS で EPCS4 の書き込みがやりたいのです。

私が使っているダウンロードケーブルは、ストロベリー・リナックスの「PLD−PGMキット」


パラレルポート接続だけれども、XILINX と ALTERA のニコイチでケーブル付き 2000円なので在庫がある限りオススメなのですよ。
だけれども、このダウンロードケーブルは一般的な ByteBlasterMV 互換で、AS 書き込みには対応していない次第。
そういえばヒューマンデータ「とりあえず ByteBlasterII 互換として動く回路」が公開されていたなあ、と思い出し久々に見てみる。
こんなんで良いんだっけ。74HC244 なんかたしなみとして部屋にごろごろ転がっているし 25Pin D-SUB コネクタもまだ 1つある。むしろ無いのは抵抗器だ、2.2k はプルアップで使うのであるけど 100 はなあと部品箱を漁ったら数本は出てきた。茶黒茶。うむ、新規に作るのは無理だけれども、改造で ByteBlasterII 互換もどきにすることは可能そうだ。
レッツトライ。

「PLD−PGMキット」付属の回路図ではD-SUBの7番と10番が短絡されていない様に書いてあるけれどもそれは誤記で、実際は短絡されている。


部品面なので見づらいけれども。
パターンカットはその短絡部分のみ。あと 244 の GY2 への信号をカットするのだけれども、これは R16 と R21 を外せばよい。


破壊活動は以上。


あとは抵抗を追加しつつショート。
やってみるとあっさり終了。

わくわくしながら QuartusII を起動……。


キターーーーー(゜∀゜)!!!
JTAG だけじゃなくて Active Serial が選択できるよー!!

でもチキンな私は手元にあった FPGA ブレッドボード(借り物だけれども)でもってテストするのでした。

全くもって問題なかったので遂に 1chip MSX の更新にチャレンジ。


そして完了。(BGM:勝利のテーマ)

今回利用した、簡易互換回路だと AS コネクタを接続したら回路が停止してしまいケーブルを外すまで動き出さないという問題があるけれども、大した事ではないでしょ。書き込み終わったらケーブルを外すだけのお話。
ちなみに、ヒューマンデータさんのダウンロードケーブルキットだとその問題が回避されているのでより使いやすいのです。(使わせてもらったことがある)

あ、出荷時のROMイメージとっておくの忘れた……。
—–