ePLL write コントローラ仕様
by K.I
Index
概要
ハードウェア仕様
CPUについて
入力・表示装置
電源回路
コントロール回路
ソフトウェア開発
ePLL writerの動作
注意点
ひとりごと
概要
NPCのePLLへのデータ書き込みを行なうためのコントロール基板
要求仕様として
単体で動作可能であること。
設定内容を保存可能であること。
安価であること。
[top]
ハードウェア仕様
CPUについて
安価なCPUとして、PICとH8を検討した。 PICはチップ数と内蔵する回路等で、様々なバリエーションを選択することが可能で、非常に小型で、安価に抑えることが出来る。外付け部品も最小で、試作が容易である。 但し、速度が比較的遅いことと、ピン数がある程度、制限される欠点がある。 H8はピン数が多く、速度が比較的速いアプリケーションにも対応出来る。 フラッシュ内蔵のデバイスもあり、開発環境も比較的安価である。 CPUの機能が豊富でピン数も多い反面、試作のパターン作成やプログラム作成が少し難しいように感じられた。 大雑把にいえば、PICは小規模向き、H8は中規模向きと考えられる。 結局、今回のアプリケーションがかなり小規模であるため開発の経験があるPICを選択し、最小限必要なI/O数と部品の入手性を考慮して16F873
1
とした。 これは、以下のような特徴がある。
28pin DIPパッケージ → 非常に小型である(SOPもある)
Flashプログラムメモリ内蔵 → 16F873の場合、プログラム設定も可能らしい
RA×6、RB×8、RC×8の計22ポートのI/Oを使用可能 → ポート数が多い
UART、I2C、MicroWire等のインターフェース内蔵 → 将来的にシリアルI/O追加可能
10bit A/Dコンバータ内蔵 → 今回は未使用
プログラムで設定可能な 128byte EEPROM内蔵 → 設定内容の記憶に利用出来る
ICSP(In Circuit Serial Programming)対応
20MHzまで動作可能だが、今回はスピード不要なので消費電流を考えて4MHzのセラロックでクロック発振させている。
入力・表示装置
ちなみにこの回路図のシリアルポートのDSUB9コネクタの配線は間違っているので、
このように
配線しなおす必要がある。
入力装置として、仕様書ではHEXスイッチが提示されていたが、CPUで扱う場合はI/Oピンを消費する上に、HEXスイッチの操作性にも不満があったので、液晶表示装置と4×4のキーマトリクスを検討した。最終的には、I/Oの節約と操作性から最小限のUP/DOWNキーによる操作とした。これにより、安価なタクトスイッチを利用出来る。
液晶表示装置SC1602の仕様
5V単一電源
英数字、カタカナを含むキャラクタを16文字×2行表示可能
7本のI/Oでコントロール可能(4bitモード時)
電源回路
単体で動作する場合に電源を容易に確保出来るように、通常のACアダプタを利用し、必要な電源は全てボード内で生成するようにした。
9〜15V程度のACアダプタを利用可能。ダイオードブリッジを通すため極性不問で自由度が高い。短時間であれば、006Pの9V積層電池も利用可能。
コントロール回路
コントロール可能な信号線は5本(VPP,EPCLK,CLK,DATA,LE)
基本的に0V,3V
2
の2レベル出力
VPPのみ、0V,3V,20Vの3レベル出力可能
3
。この仕様は、1ピン書き込みデバイスを意識している。
1
16LF873が入手出来れば、VDDを合わせることで、3.3Vデバイスに直結可能でありインターフェースを簡略化可能。
2
試作基板では簡略した回路のため、ダイオード3本のドロップで約3.5Vとなっている。
3
この端子RA4はオープンドレインなので、保護用のダイオードと分圧でちょうど3V程度になってる。
[top]
ソフトウェア開発
MICROCHIP
社純正のMPLABのアセンブラを使用。
標準で、トレース可能なデバッガが附属しているので、開発し易い。
ePLL writerの動作
動作仕様は以下の通り。信号波形の詳細は、高松氏の仕様書に準拠している。
ePLLの、Ncounter(16bit),Rcounter(16bit)の設定値の表示と変更。
表示した内容をePLLに転送する。
設定内容をEEPROMに保存。
動作フローについて
初期化(リセット後の処理)
I/Oポート、LCD、EEPROMによる設定値の初期化を行なう
スタートメッセージ表示(LED1回点滅)
設定モード・N,Rcounterの16進数表示(LED2回点滅)
カーソルキーで変更箇所を選び、Up/Downキーで値を変更する
書き込み確認表示(LED3回点滅)
OKキーで書き込みモード。Cancelキーで設定モードに戻る。
書き込みモード
Ncounterの転送
Rcounterの転送
設定内容をEEPROMに書き込み
設定モードに戻る。
プログラムソース
epll.asm
[top]
注意点
16F873のプログラム上、注意が必要な点について
LVP(Low Voltage Programming)をONにすると、RB3ポートはそれ専用となり入力に設定されてしまうので、通常はOFFとする。
同様にDEBUGをONにすると、RB6,RB7は使えなくなる。
RAポートは、初期状態ではアナログポートとして設定されるので、デジタル入出力を行なう場合は、最初にADCON1,ADCON2の設定を必ず行なう必要がある。
RA4ポートはオープンドレインなので出力として利用する場合は、必ずプルアップすること(用途によるけど)。
ICSPを利用する場合はMCLRポートに15V程度掛かるので、それを考慮したリセット回路にする。RB6,RB7ポートはICSPに干渉しない回路にするか、切り離せるようにしておく。
LCDの設定上の注意
LCDは最初に、所定の初期化ルーチンを掛けないと正常に動作しない。
RSによる切替えを忘れると、表示が滅茶苦茶になるので注意。
ひとりごと
RBポートにスイッチを付ければ、内蔵プルアップが使えるので回路が簡単になるかもしれない
4
。
4
あとから思いついたので、配線しなおすのが面倒。RCはシリアル用の2本除くと、6本だからLCDに繋ぐ1本をRBからとらなきゃならないし。R/WはL固定でもいいけど。。。
[top]
[電子工作関連に戻る]
コメント欄の表示/非表示
⇒ Disqusの広告がうるさすぎるので基本は非表示にしました
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus