「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



今日も引き続きMEGA164PのDDSファンクションジェネレータ。

コードを弄り回して、割り込み処理(角速度の足しこみ、
波形テーブルからのデータ読み出し、ポートへの出力)
が約120クロックに収められることが判った。もちろん
2ch分出力してこの処理時間。シミュレータで色々な
ケースを流してみて、とりあえずバグは一応消えた
んじゃないかと思う。


これを元に考えると、1回の割込み周期は200クロック、
もしくは160クロックあたりが候補になってくる。
200クロックなら、20000Hz波形を出力するときに
1波形あたり5サンプル。160クロックなら6.25サンプル。

中途半端な割込み間隔にする手もあるかもしれない
けど、なんか気持ち悪いのでこのどっちかにしたい。

200クロックなら、割込み1周期あたりの4割は通常処理
(受信処理周り)で使えるので、処理能力的には
USARTにデータがラッシュしても19200bpsでは破綻する
ことはない目論見。

160クロックだと2割程度となり、一番処理負荷が掛かる
データパターン(具体的には”f”の文字を受信時に
角速度を求める処理)の時に超ギリギリになっちゃう。
USARTのダブルバッファ(2バイト分)を使い切る直前
といった感じ。その前後のデータパターンを眺めて、
大丈夫なら19200bpsで160クロックおきにしたいんだけど、
どうだろうなぁ…。エラーパターンまで含めてあとで
ちゃんと見直してみよう。

速度誤差の問題もあるんだよな…。試算してみると
200クロックの場合で130ppmくらい、160クロックの場合
240ppmくらい。水晶の3~5倍くらい精度が低くなるん
だけど、まぁ2ch出力を優先したいのでこのくらいは
目をつぶることに。小数部をあと1バイト増やせば
楽勝なんだけど、問題は処理時間だな…

でもやっぱ、SPIモジュールのI/Oと違って速いな。


初期化関係もほぼ直したので、残っているのは通常処理
の部分。USARTからの入力を受けて、内部の計算数値を
整える処理のところ。

2ch側は初期値としてcos波にすることにしたので、この
cos波を扱えるようにするのと、1ch、2chを切り替える
コマンドを増やしつつ、以前作ったやつとコマンドと
通信速度を上位互換にしておきたいので、そこらへん
も念頭にモロモロがんばってみよう。


ちょっとまえの記事だけど、がた老さんの
http://gataro-avr-ken.cocolog-nifty.com/blog/2012/06/p-10usb-3c26.html
この記事。色々スゴイ。P-10でちゃんとシリアル信号
取り出して使えるようになるまでが纏められてる。

あの時シリアル接続できるって知ったきり、おいらは
全然弄ることも無かったんだけど、物理的、論理的信号
が自由自在に扱えるようにってとこまではかなり手間を
かけられたのでは?と。

ケース加工もイイ。P-10はプローブが取り外しできない
タイプだから使うときちょっと不便なんだけど、こんな
風にコネクタ生やして取り付け/取り外し出来るように
なってたら便利。んで、その空いた部分にUSB/シリアル
変換回路が入っちゃってる!

aitendoのUSBシリアル変換回路って、こんな安いのが
出てたんだなぁ。オイラはArduino用で使うのがもっぱら
だから、ピン配置的にSparkfunのFTDI Breakoutばかり
なんだけど、用途によってはこれが小さくて安くて便利
かも。


おぉ、ザナルディー!金メダル!
http://headlines.yahoo.co.jp/hl?a=20120906-00000004-rcg-moto



コメント ( 0 )




相変わらず、2CH出力できるDDSファンクションジェネレータ
を作れないか、MEGA164Pのデータシートを見ながら進めて
いるところ。


8ビットでR2Rラダーdacと割り切ることで、結構サクッと
短いクロックで済むんじゃないかと思えてきた。20000Hz
なら1波形あたり5~6サンプルくらいには持っていけそう。

出力にオペアンプのアクティブフィルタは必須になるだろう
から、ここで高次フィルターを使えば、波形は結構綺麗に
整形出来るんじゃないかなぁと。


で、コードを書くといえばやっぱデータシートをよく
読まないといかんのだけど、MEGA164Pシリーズにしても、
MEGA164PAシリーズにしても、データシートに間違え
が結構散見されるんだよな。SPIとか、RAMPZとか。

データシートの間違えは、良く調べていけば判るから
まぁいいんだけど、昨日見たように、.incファイルに
間違えが残っていると、微妙に厄介だなぁ。まぁ
しようがない。


http://www.itmedia.co.jp/info/virtualevent/expo2012/embeded.html
これ見てみたいなぁ。


http://www.itmedia.co.jp/pcuser/articles/1205/16/news012_2.html
あのころのプログラムには神がかり的な知恵が満載
だったな。TEXDERには度肝を抜かれたな。


http://www.youtube.com/watch?v=txFoaxURoV4
このメタルスライム、ちょっと欲しい。



コメント ( 0 )