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



例のMEGA48とAD595登載のボードについて
さらに確認をしてみる…。

MEGA48とAD3202を使ってPCとの通信は
問題なく出来ることが判ったので、あとはADCの
プログラムも付け足して、実際にAD595とK型
熱電対を接続してみようという作戦に。

接続する前に、まずはADC周りのプログラムを
付け足して抵抗の分圧値を取り込んだ値と、テスター
で計った電圧と比較することで、プログラムや回路
自体の動作内容について確認してみる。

おりゃー。

OK。
基準電圧はLM4040A(0.1%誤差)から
取っているので、かなり信頼性は高いはず。入力した
データ(10ビットデータ)から電圧を逆算してみると、
テスターで計った値とほぼ一致。どっちかって言うと
安物テスターの方が信頼性低そうだからな。
このテスター、なんだかいつも微妙にちょっとだけ高い
電圧出すんだよな…


そういう意味では誤差を作り出している可能性が
高いのは、このテスターと、MEGA48の内蔵ADC。

内蔵ADCはデータシート上4.5LSB程度の誤差
を生じる可能性があるらしいから、
   4.096V÷1024×4.5 = 18mV
程度の測定誤差が生じる訳だな…
LM4040Aは0.1%だから
   4.096V×0.1% = 4mV
程度。

あわせて最大22mV程度の誤差ってことかな?


で、ようやくAD595とK型熱電対を装着。

うーん、マトモに動かん…
0がずーーーとならんだと思ったら数十程度の数値
が現れる…しかもマチマチな数値でいかんともし難い。

データシートをもう一度見直してみる…。うーん、
別になんてことは無い気がするな。ん?
データシートの回路図を良く見ると、クロメル側が
点線でGNDに落としてあるなぁ。何だ?この点線…?

もしや、銅線をコマギリにして並べておくとか?

という冗談はおいておいて、AD595の入力は差動入力
だから、別に片方をGNDとかに落としておく必要とか
無く無くない?無く無く無く無くない?

この間拾っておいたアプリケーションノートの方も
見直してみる↓。
http://www.analog.com/static/imported-files/application_notes/34661261AN369.pdf

やっぱり、アルメル側かクロメル側のどっちかが
GNDに落としてあるみたいだなぁ。

試してみるか…


うぉ。一気にADCが安定した数値を吐き出すように!

うーん、差動入力って、電圧差を拾うもんじゃないの???
変だなぁ… オイラの知識が未熟なのか???

まぁ、とりあえず一生懸命PCBEで書いた回路は
1箇所NGってことだね。まぁ今回は実験用基板だから
後で適当にジャンパーで繋いでしまおう。


で、出てきた数値を温度に換算してみると…
約24.0度?うーん、微妙。目覚し時計の温度計では
22.4度を示してる…
目覚ましの温度計を信じるべきか、MEGA48君を
信じてあげるべきなのか…?

ちなみに、湯沸しポット(以前ニトリで買ったやつ)で
お湯を沸かし、ほぼ沸騰したところで熱電対を放り込む。
(注:ステンレスで覆ってある熱電対です)

…96~7℃。そうね。沸騰が治まった状態だから、こっちは
ほぼ合っているみたい。

室温付近でアレなのは、もしかしたらAD595の電源
が5Vの片電源だからなのかな?

AD595の内部って、要は一種のアンプ回路(+補正回路)
だから、片電源で使っちゃうと入力・出力ともrail-to-rail
にならないっていうことか?それでGND付近の出力電圧
は微妙に浮いてしまう…と。
やっぱ、両電源にしておいたほうが安心なのかな?
AD595のGNDはそれなりに安定する様な回路
にしてあるはずなんだけどなぁ。なんだろうな?

ちなみにADCの誤差が最大22mVだとすると、
AD595は1℃あたりおよそ10mVなわけだから、
最大で2℃少々の誤差が出るわけだな…。
(本当はさらにAD595の誤差も考えないとイカン
 のですが、ひとまず室温付近でしか使ってないので無視)

でもこの誤差はADCのゼロクロス歪みなんかも含めた
最大見積もりだから、その数値がモロに出ているとも
思い難いんだけどなぁ…

オフセット誤差か?それとも増幅率のエラーか?

データシート読んでも良く判らなかったキャリブレーション
については、アプリケーションノートの方を読むともう少し
わかり安そうに書いてあるから、あとでキャリブレーション
も検討してみるかな。15MΩ、8MΩとかいう微妙に
大きい抵抗は持ってないなぁ。464Ωや182Ωなどと
いう中途半端な抵抗も持ってないし。うーん。

そもそもホントはICそのまま無調整で使いたいんだ
けどなぁ…

とにかく、一旦ブレッドボード上で±の両電源にした
時にどんな反応になるのかは確認しておきたいな。
久々に両電源対応のスイッチング電源登場か?



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




久々にPICネタ。

PICでビデオ表示するというボード発見。
http://www.urbancorp.co.jp/kit.htm

16F88で、シリアル入力したasciiコード
をテキストVRAM展開して、20×10文字で
表示しちゃうというもの。

しかも、シリアル経由で外字登録したり、スクロール
したり、カナも使えたり、表示位置の微妙な補正が
できたり…

よくできてるねぇ…。ソフトもハードも。実用的だ…


おいらがTINY2313で作ったテキスト表示器
http://picavr.uunyan.com/avr_m_text.html
よりもずっと高機能だもんな。
(だって、TINY2313ってSRAMが全然
 無いんだもん…)

1200bpsをチョイスしているのは、
やはりおいらと同じ理由なのかな?垂直同期1回に
つき2バイト分処理ってことで…
(それ以上やろうとしても、USARTのダブル
 バッファが溢れちゃう)


そういえばテキスト表示器を作った後に色々
考えたんだけど、SRAMさえ一杯登載して
いるなら、各水平同期期間中にUARTからの
入力を10バイトとか20バイトとかバッファリング
させるようにして、垂直同期期間に一気にテキスト
VRAMに反映させるってことを考えたら、もう少し
ボーレート上げてもいいよなぁ、って思った。
思っただけ。いや、手は動かしてないんだけどね…

でもそうすれば9600bpsとか19200bps
とかには届きそうなんだけどな。

いずれにしてもTINY2313じゃぁメモリが
足らなさ過ぎ。うーん。

MEGA版でも考えるか?秋月でMEGA88が
250円で手に入るご時世だし。



コメント ( 39 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




以前、Chanさんの汎用ディスプレーコントローラ
http://elm-chan.org/works/crtc/report_j.html
を見て以来、ずーーーーーとアタマから離れなかった
のが、カラーで1ドット単位で自由自在にビデオ表示
をしたいって言う野望。しかも汎用部品で。

Chanさんのこれは16色表示。例のAVGA
(mega168ワンチップでマリオとかやっちゃう
あれね)も16色表示。

オイラとしては以前から1ドット3ビット(8色)や
4ビット(16色)を超える発色を実現したい、
しかもカラーNTSC表示で、と思っているんですが、
色々考えてみるとすぐに一つの壁にぶち当たってしまう…

単に表示するだけならともかく、マイコンからの
描画信号を受け取りながらVRAMとして使用する
外部SRAM(FPGAと違ってブロックRAMが
無い)への読み書きタイミングを取りつつ、
かつ14.3Mhzの4クロック単位(V、U、-V、-U)
で1ドット確実に表示するということを同時処理して
いかないといけないわけですが、SRAMへの書き込みは
最低でも3クロック(アドレスとデータをセット、
WE立ち下げ、WE立ち上げ)は必要だし、SRAMの
アクセス速度によってはあと1~2クロックは必要かも。

とすると、書き込みだけ、もしくは読み出すだけで
約4クロック、しかも書き込みだけで読む暇が無い…
(ん?読み出しはもう少し少ないクロックでも
 いけるか?)

うーん、そうか。Chanさんの回路で16色(4ビット)
しか使っていないのは、1バイト分の読み書きで2ドット
扱える(つまり8クロックに1回書き込めばいい)という
ことも一つの目的になっているわけだな…といまさら
になって気付く。

なるほどね。これならば8-4=4クロック分はマイコン
から受け取ったデータの書き込み用に充てられるわけだ。
頭いいなぁ。


うーん、じゃぁ14.3MhzのCPLDでは
やはり4ビット以上の表示は不可能なのか?
これより速いクロック源を探さないといけないのか?

というのが、ここ数ヶ月ずーーーーとアタマから
離れなかったことでした。大きな壁。


ところが、今日電車乗ってボーーーーーとしてたら、ふと
思いついた。(といっても、解法ではなくてまだ糸口程度)

1+1は2だな。考えてみれば当たり前のことだけど…
いままで気付かなかったおいらはやっぱ毛が3本足りない
んだな。

問題は、これをVHDLに上手い具合に押し込むことが
出来るのか?

かなり面倒なステートマシンを書かないといけないかも
知れない…(規模ではなく処理内容が)

でもこれが出来れば16色どころではなくなるもんな…
面白いかも!


まぁこの件に限らず、以前作ったスプライト表示器
http://picavr.uunyan.com/avr_m_sprite.html
とかも、頭の中で「おっ?なんかできちゃいそうだな…」
って思いついちゃったら、あとは力技でむりやり
ねじ伏せるまで突っ走ったから、こんかいも馬鹿丸出し
で突っ走ってみるか???

そう。馬車は嘶きゃ治らない((c)ログイン/アスキー)
なのだ。

あ、馬車丸出しか。


とりあえず、目指すは320×200の8ビット表示だ!
(注:8色表示ではない)

でもその前に、ようやく完成したCPUボードを弄り
倒す方が先だな。



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする