goo blog サービス終了のお知らせ 
「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



引き続きTINY2313の似非PSGをコーディング中。

処理内容自体は大した話じゃないんだけど、処理クロック
をどうやった短く出来るか悩みながらコーディング、
ちょっと書いては見直して、可能なところは縮めて…
みたいな感じで効率悪し。

なんとか200クロックに収めたいと思っていたんだけど、
収まりそうにないなぁ…うーーーん。がんばろう。


いしかわきょーすけさんはドイッチェラントに旅行
だったのか…。イイなぁ。海外のショップあちこち
覗いてみたいなぁ。

いしかわきょーすけさんのサイトやsimさんのサイト
などでも触れられてたマイナビの例の記事

マイコンでなにか作っちゃうようなオトコにドン引き
っていうこの女性にとって、スティーブ=ジョブズ
は背筋も凍るような憎悪の対象の「頂点」ってことに
なるんだろうな。


simさんがゲットした中華オシロ、値段的にもスペック
的にもぐっとくるなぁ。ATTEN製か。PCとの親和性が
どうなのか気になるな。以前USBシリアルケーブルで
ATTEN製を使ってたんだけど、windows7になった途端
ドライバが無くて使えなくなっちゃったからな…

秋月で取り扱ってるpicoscopeシリーズの3000番台の
新しいやつとバッティングするくらいのスペックかな。
オイラ用なら2000番台の安いやつでも良さそうな
気がするんだけど。2ch見れてPCと繋がるなら
安物でもいいんだよな。ファンクションジェネレータ
機能も付いてるからお得な感じだよなぁ。

http://brown.ap.teacup.com/nekosan0/1555.html
この間触れたArduinoのインターネットラジオ。
http://blogs.yahoo.co.jp/jun_constellation/archive/2012/04/07
基板が頒布されてるのか!うーーーん、チップ抵抗
とかがなぁ…。以前optimizeのMAX2ボード作った時、
あの大きさでも能力的に限界ギリギリだったと
感じたからなぁ。でも、これ欲しいなぁ。


この間youtubeで見つけたインダクタ計測の回路。
http://www.youtube.com/watch?v=Ypc7J7f4NYI
74HCU04や74HC14はあるんだけど、極普通の74HC04
が手元に無かったのでゲットしておいたんだけど…

http://www.kyocera.co.jp/prdct/electro/product/timing/xtal_faq.html
ここを見ると、水晶を発振させるのはやっぱり
アンバッファタイプの74HCU04の方がいいって
書いてあるんだよな。

インバータだけで発振回路を作るときって、
アンバッファタイプの方がいいのか、それとも
ゲインがあるバッファタイプの方がいいのか、
はたまたシュミットトリガが入っていた方が
いいのか…その辺が良くわかんないんだよな。
あとでまた調べよう。


いつか自分の手でCNCを作りたいと思ってはや数年
なんだけど、基本の「基」をお勉強しようと思って
amazonのお気に入りに入れてある2冊の本、別件で
調べ物してたらふと作者さんのサイト見つかった。
http://gsimple.yu-yake.com/
G-SimpleもEMC2も同じ作者の人だったのか!

近いうちにコレ読んで、Gコードの何たるかとか
お勉強しないとな。

http://www.hobby-machine.net/
ここなんかもすごいよな。


ダイソーに行って、
http://komin.blog.so-net.ne.jp/2009-08-15
この材料を買い込んできた。あとでチョキチョキ切って
サクサク縫って作ろう。


ふと地図。アメリカの海岸線って飛行場だらけだな。
海岸沿いに延々と数十個の空港を見た。

アメリカ人って、自転車はおろか、歩いてでも着ける
ところまで飛行機乗ってくのか?とか思った。太るよな。


そういえば、以前作ったファンクションジェネレータ。
http://brown.ap.teacup.com/nekosan0/1278.html
まだ纏めてなかったな。使いたい人が居るかは
しらないけど、まぁシンプルだし部品少ないしで、
用途によっては使ってみようって人もいるかも
しれないから、あとでちゃんと纏めておこう。




コメント ( 0 )




昨日から、久々にTINY2313でアセンブラのプログラムを
ガリガリ。例のPSGもどきをTINY2313で作っちまおう
という作戦。

久々のアセンブラでちょっと忘れかかってた。
途中段階で部分的に機能確認しようと思ってシミュレータ
動かしてみたら、inc命令でキャリアフラグが立たない
のをすっかり忘れてコード書いてた。それにしても、
キャリー立たないのにその後続処理が変な結果に
なるのはなんだかおかしい。プチはまり。

あと、レジスタの内容(0~15の値を取る)によって
ジャンプ先を振り分けられるようにしたいんだけど、
TINY2313はレジスタ値をインデックスにしてジャンプ
する命令が無いんだよな…

ということで、しばし悩む。大昔どこかで聞いた
ような裏技をふと思い出す。テーブルで用意した
アドレス群を使ってレジスタ値によってジャンプ先
を振り分ける処理を書いてみる。

具体的には、プログラム中の各ラベル16個について、
掻き集めて16要素のアドレス値テーブルにして、
レジスタの値に従ってテーブル要素(アドレス値)を
読み出し→読み出したアドレス値をスタックポインタ
に積んで、ret命令を使ってジャンプをするという荒業。

プログラム上にコメント書き残しておかないと
後で見たら間違えなくちんぷんかんぷんだな。
サブルーチン中の分岐処理でret命令が急に出てくる
のでまさにスパゲッティー。
こういうのをスパゲッティーっていうんだろうな。
こういうときだけは可読性をよくするためにマクロ
でも組んでおいた方がいいのかな?


UART回りの処理は一応済んだことにしておいて、でも
まだまだ課題山積。16Mhzで毎秒40000回タイマー割込み
掛けるとして、1回あたり400クロック。割り込み内の
処理はせいぜい200クロック程度には収めたいところ。
割り込み処理内の冒頭部分だけでももう数十クロック
は使ってる。push/popも入れればもうそれほど余裕が
ない状態。

なんとか200クロック以内に収めたいところなんだけど
なぁ。SPIのDACとちがってPWMの比較レジスタに書き込み
するだけだからアクセス速度自体はあっという間なんだ
けど、その値を計算する処理はtoneとnoiseあわせて
6chもあるし、エンベロープもあるから、結構重い…。


夕方からはちょっと買い物に。まだaitendoは
シマッテンドーだと思ってたら、今日から開いてた
みたい。この間買ったブレッドボード用D級アンプ
に搭載されていたチップ(PAM8403)をゲットして
おいた。小さくて安いのに、ナカナカの代物と見た。


千石に寄って、ふとArduino用の純正ケースを見て、
どうしようかなぁ…と迷ったんだけど、ふと冷静に
なって思いとどまる。

emerge+のprojectbox for arduinoの透き通った
あのボックスの方がかっこいいんだよな…と。
1個欲しいな。


今日はスーパームーンだったのか。オトモダチが
元気かどうか確認のために谷中に寄ってみたところ、
遠くに見えるスカイツリーの真横に大きな月が
丁度登ってくる所だったんだけど、地平線間近だから
大きいのかな?と思ってたら、やっぱ大きかったのか…

で、再来週は逆にちっちゃくなって、金環食か…

お友達は元気だった。うち1匹は、蚤取りのくしを
見せたら、お腹まで出してコーミングしろの催促。
野生動物とは到底思えない…。


時々ふと思い出す「VHDLでCPUをいつか作りたい」と
いう妄想。FPGA規模じゃないと作れないのかな?とか
思うとちょっとねぇ…と考えちゃう。
でも、4bit規模程度のCPUならMAX2程度でも作れちゃう
んじゃないか?と思って検索してみると…

http://www.youtube.com/watch?v=9SBfAGk_mcc
あった!4bitでちゃんと動いてるみたい。optimizeの
MAX2ボードだなぁ。オイラも持ってる。

http://www.youtube.com/watch?v=Vkyd_QmlGLw
こっちも。トラ技2006年4月号付録のMAX2基板だな。
これも動いてる。

規模が小さいなら、お手軽MAX2基板でもいけるのか。
うーーーん。


http://headlines.yahoo.co.jp/hl?a=20120505-00000003-reut-bus_all
エルピーダの入札ねぇ…。

半導体全般とは言わないけど、DRAMみたいに
コモディティー化しちゃった製品だと価格以外
にはあまり差別化できないから、労働集約型の
中国/台湾や資本集約型の韓国なんかの方が
競争力あるのはアタリマエなんだろうから、
早々に手を引いた方がよかったんじゃないか、
という気はする。
で、違う分野にチカラ入れたほうがよかった
んだろうな。



コメント ( 0 )




相変わらずPSGをマイコンでエミュレートしちまおう
という妄想中。

考え始めると、色々と難しいところが出てくるんだ
なぁ。なんでオリジナルのPSGはあんなつくりに
なってるんだろうなぁとか思ったり。

tone出力なんかは、設定値が小さいと高音に、大きい
と低音になるっていうことは、CTCモードみたいに
設定値に合わせて自動でカウンタクリアさせる機能
が入ってるんだろうけど、マイコンでエミュレート
するなら逆の方が楽なんだけどな。大きいと高音に、
小さいと低音に…いわゆるDDSの仕組みがそのまま
使えるんだけど。

あと、ノイズ出力。3.58Mhzとか4Mhzをクロックに
使うとすると、ノイズ出力の際に1ビット分の乱数
を出力する周波数は最大で119khzとか125khzとか。
そもそも10ビットPWMだと16Mhzクロックでも15k程度
しか出力できないし、出力データの計算をするにも
毎秒40000回程度としても1割込みあたり400クロック
しかない。

割り込み頻度、PWM周波数、計算方法と計算時間…
色々うまく噛みあわない…

まぁ、マイコンとソフトウェアでやるとなると、
PSGすらフルスペックでは難しい…CPLDあたりを
持ち出さないと駄目ってことかな。


http://special.auctions.yahoo.co.jp/html/minnano_charity/index.html
ちょっとずつでもお手伝い。10%だけだけど、
その分数を増やしていこう。
「これぞ」ってものは100%でもいいといえば
いいんだけどな。



コメント ( 0 )




PSGをTINY2313でエミュレーションできないか
っていうもくろみ。ピン配置的にはまぁなんとか
なりそうだし、アナログ出力のレンジがちょっと
厳しい感じはあるものの、レンジをちょっと
押しつぶしてしまえば、あとは処理速度の問題
だけかな、と思って買い込んでおいたYMZ294の
データシートを眺める。
http://akizukidenshi.com/catalog/g/gI-00181/

想像してたよりアクセス速度が3桁ほど速いみたい。
まぁ、SRAMと同じような端子構成なんだから、
よく考えたらそりゃそうかも知れん…。
アクセス速度が10nsとか30nsとか書いてあんの。


どうしたものかな…。端子配置だけ同じような
PIOでアクセスする意味無い気がするな。

それでもPIOにこだわるか、シリアルI/Oでアクセス
するか、シリアル+1ビットで制御するか…

PIOではアクセス速度が追いつかないってことは、
シリアル方向でいいんじゃないかなと思えてきた。
楽だし、ピン数少なくて済むし。

あとPIOをあきらめればタイマー1が使えるから、
分解能も10ビットに上げられるしな。うん。
残ったピンで通信速度決められるようにしようかな。


とりあえず、音を出すことを最優先にしてみよう。



コメント ( 0 )




simさんのつぶやきから、共立エレショップで
tiny4313が380円という情報。

フラッシュ、SRAMとも2313の2倍でそれぞれ4KB、256B。

スバラシイ。2313大好きなオイラとしてはやっぱ
手に入れたいところ。とうとう出ましたか。

なんと言っても、SRAMが2倍が良いよな。
2313のSRAMの小ささには悩まされたからな。

そのうち秋葉原の店頭でも手に入るようになるかな?



コメント ( 0 )



« 前ページ 次ページ »