PDA自作日記

 

まとめトップ

最近のコメント


   

システム構成 ━━━━

このPDAのハードウェア構成は、現時点では以下のようになっています。

[#fc8M32102]{ss[#ff8PIC16F873A]{nn}s[#ff8PIC16LF88]e(#ffcキーボード)nw{#fffne(#8fcカードスイッチ)sw}e(#ffc電源制御)}{nn[#cf8CPLD]{ne(#cf8ビデオ出力)}e[#cf8LCD]}{e[#8fcSDカード1]w}{ne[#8fcSDカード2]sw}

28ピンと18ピンのPICを両方使用しているのは、1つだとピン数が足りなく、40ピンタイプでは実装する場所がないためです。キーボードは74キーあり、8×10のマトリックスになっています。PIC16LF88が10ラインをスキャンし、PIC16F873Aでセンスしています。PIC16LF88はリアルタイムクロックも兼ねており、キャパシタによりバックアップされています。

M32RとPICは、シリアル(UART)で接続されています。液晶のenableやコントラスト制御、電源offなどは、M32Rからコマンドを受けとっておこないます。キー入力があった場合は、PICからM32Rに通知されます。また、現在時刻や電源電圧は、M32Rからリクエストを送り、PICが応答する形で通知されます。

SDカード2枚は、M32Rに直接接続されています。汎用ポートなので、特別なことはしていません。CSIOモードなので、信号はすべて単方向です。M32Rのボード(OAKS32R)にはデバッグ用のLEDが2つあり、これをそれぞれのカードのCSに入力していますので、アクセス時にLEDが点灯します。また、通常運用時にはオープンになっているジャンパースイッチがあるので、これを出力ポートにすることでピン数を節約しています。細かい点ですが、カード検出のスイッチはPICに接続されており、M32Rから定期的にリクエストを送って状態をセンスしています。SDカードは、コマンドを送らないとCSIOモードにならないので、カード状態をセンスし、カード挿入時にコマンドを送る必要があります。

LCDにはメモリは搭載されていないので、常にデータを送り続けてスキャンさせる必要があります。このため、クロック同期シリアル(CSIO)を使い、M32RのDMAを使って送信しています。これをCPLDが4bitずつにまとめ、クロックなども生成してLCDに送信しています。

実は、当初はLCDは16bitバスからデータを送っていました。この方が、最終的にシステムクロックを下げられるというのが主な理由でした。ちなみにクロック同期シリアルは、オーディオ用DACに使うつもりでした(これは未実装ですが、パターンだけは用意してあります)。その後、ビデオ出力がほしくなったこと、MP3用DSPなら低い転送速度でも問題ないことなどから、クロック同期シリアルをLCDに、バスをDSPに使う方向に方針転換しました。

コメント: nn (05/23 20:19)
システム構成の画像に書いてあるPICの型番と
文章に書いてあるPICの型番が異なっていますが、どちらが正しいのですか?
画像:PIC16F783A
文章:PIC16F873A

コメント: pai (05/24 00:31)
ご指摘ありがとうございます。873Aが正しいです。画像の方を修正しました。

コメントを書く


 
  Copyright © π 2009-2012
Powered by light work group
このページの内容は無保証です