月別アーカイブ: 2011年5月

温度計7


今度は、PIC16F873Aです。
いつものように、エレキジャックのサポートページからCCSC-TempRead.zipをダウンロードしました。
CCS-Cは持っていないのでデモ版のMikroc-Cでコンパイルして書き込みますが動作しません。
zipファイルにhexファイルが含まれていたのでそれを書き込んでも読み出す値は違いますが動作しません。
結局LM73のアドレスが違っていて0x48を0x4cにしてコンパイルすると無事動作しました。
写真の左端のコネクタがLCD用でMikro-Cにあるライブラリで簡単に動く予定だったのですがまだ動いていません。
追記:PORTAを使っているのでADCON1=0b00000111;の追加が必要でした。
リセット時にアナログ入力になっているのでデジタルに設定する必要がありました。

温度計6



ATtiny2313とLM73で温度計です。
エレキジャックのNo.8サポートページとLCDライブラリを組み合わせて実現しています。
これで付録CPUの4個で出来ました。

DDT付属78K0R基板

DDT No.9では78K0R基板の応用例が特集されています。
中に3.3Vで動作させる例(拡張基板、SDカード)がありますが、
紙面の内容だとCP2102のREGINに3.3Vが加わりMin4.0Vを満足しない問題があります。
CQ connectお問い合わせフォームで質問したところ
根本的対応するには3.3Vで動作させる場合REGINとVDDを接続するとの回答をいただきました。
この方法はデータシートにあり正しいのですが、基板ではVBUSもREGINに接続されているので
外部電源動作させた場合はUSBが正しく動作しないように思えます。
バスパワーで動作させた場合でもデータシートではUSBコネクタのVBUSに接続するようになっています。
5Vでそのまま使うのが良さそうです。

温度計5



小ピンシーリーズのスターターキットとLM73組み合わせてみました。
マイコンと表示器をつなぐ10の方法の4_78Kprog.zipとI2Cプログラムを組み合わせて作りました。
78K0Sでは、I2Cのインタフェースが内蔵されていないので上記のプログラムをコピーして
ポートをP2からP3に変更しています。
最初値が正しくなかったのですが、P30につながるINT SWを切り離すことでOKになりました。
LM73との通信は、7segLEDの表示を行っているのを参考にしています。
なので写真の表示が0.1度単位の数値になったままです。
LCDのコントラストはP20_AN1につながるVRを流用しています。

QuartusII web edition 11.0

1chipMSXのLEは、10.1の時から変化なし。
一部プロジェクトで10.1から11.0にすると
Can’t open project – Quartus 2 Settings File contains one or more errors
と表示されてオープンできない。
プロジェクト自体は11.0にされるようで,
再度オープンするとバージョンに関するメッセージは出ないで同じエラーになる。
極一部のプロジェクトのみで発生して共通性がわからない。

温度計4

エレキジャックの付録のMC9S08QG8でつくりました。


温度計LCD表示を組み合わせてLCD表示の温度計を作りました。
LCD表示のプロジェクトに温度計を加えたので、ライブラリの指定を浮動小数点を使えるものに変更する必要(変更しないとリンク時にエラー発生。ansiis.libをansis.libにしました。)がありました。
これでビルドは成功しますが表示される値がでたらめでした。
オリジナルの温度計のプログラムをビルドしてdebugで確認したところLCDに表示される値と同じでした。
結局BGE(バンドギャップイネーブル)=1になるようにCPUビーンの設定を変更することで動作しました。
値は何もしなくてもほぼLM73の値と一致しますし、
負電源用の信号も出しているので外付け部品が必要ありません。
ただ消費電流は3mA程度でMSP430より多くなっています。

温度計3

エレキジャックの付録のMSP430F2013でつくりました。


MSP430でLCD表示
とTIのSLAC080d_20xxのsd16a_02.cを合わせて作りました。
LCDに加える負電源は、手元に有ったPIC12C508で作りました。
Voffsetの値を調整することでLM73での値と同じになるようにしました。
プログラムは、LPM0(低消費電力)にして
1.WDT割り込みでAD開始
2.AD完了割り込みでLCDに結果表示
で動作しています。単三乾電池2本で消費電流は1mA程度でした。
ただ電源投入時に1度リッセットを加えないとLCDに正しく表示されない問題があります。

温度計2

エレキジャックの付録のuPD78F0503でつくりました。


7セグメントLEDに表示する温度計
を参考に作ってみました。
7セグメントLED部分は別基板にして、LCDの14ピンコネクタと共通になるように作りました。
リンク先のプログラムを書き込んで動かしてみると表示はされるのですが、
消えてるセグメントが薄く点いているように見えてしまいます。
プログルラムは、割り込みで3つのLEDを順に点けているので交互に全LEDを消すようにしました。
薄く点いているように見えるのは解決しましが、ちらつきが気になります。
割り込み周期を倍にすることでちらつきも気にならなくなりました。



LEDを乗せた基板をLCDに置き換えてみました。
最初から置き換えできるように作ったつもりが、LCDのデータとCPUのポート出力のビット順が
逆になってしまって、仕方がないのでLCDの書き込み時にビット反転のテーブルを参照するようにして
ハードの変更はしませんでした。LCDのプログラムはDDTのNo.8のプログラムを流用しました。

温度計1



eJackino-Pico+LM73で温度計を作りました。
プログラムは検索すればすぐ、見つかりました。
I2CもLCDもとっても簡単に使えるようになっています。