スパイス  組み込み制御装置の受注製作

自社標準仕様の製作
平成27年12月 16日

 汎用の高速シリアル通信機能(25)  SPIの動作検証(RTCとフラッシュROM)

 簡単な動作検証を行いました。最初はRTCからです。使用するRTCはDS3234という型式です。発信周波数の温度補正機能を持った高精度品だそうです。
このデバイスはSPIバスのCS信号をアクティブにした後、1バイトのアドレスを受け取ります。この値によって2バイト目以降のデータの送受信方向が決まります。具体的には、アドレスが0x80に満たない場合、2バイト以降はデータの読み出しとなり、アドレスが0x80以上ではデータの書き込みとなります。
これはデータに対して読み出し用と書き込み用でアドレスが分かれています。
アドレス表をDS3234デバイスデータシートより引用します。


 図中の日時。時間に関する数値部分はBCDです。16進数ではありません。
読み出しデータは必要なアドレスから開始して、必要な部分まで読み出せは、そこで読み取りを中断(SPIバスのCS信号をネガティブにする)してかまいません。
 一旦時間を設定しておけば、後は1バイトの開始アドレスを書き込むことで、簡単に時間を読み出しすることができます。

 次はフラッシュROMです。こちらはA25L016という型式の16Mビット品を使用します。
このデバイスは完全なコマンド方式でCS信号をアクティブにした後、1バイトのコマンドとオプションで3バイトのアドレスを読み込みます。コマンドによって、以降のデータが読み出しか書き込みかが決まります。こちらもデバイスデータシートから命令表を引用します。


 こちらで注意すべき点を列記しておきます。
 動作速度に関して、少しだけ書いておきます。
このデバイスを標準仕様のSPIでROMのリード動作をさせた所、動作可能周波数は10MHzまででした。その上の20MHzではデータ化けが発生しています。ROMからデータが出力されていることからCPUからROMへは正しくデータが渡っているようです。そこでSPIの仕様からは逸脱するのですが、PICの拡張仕様と思われるSMP機能を試してみました。この機能はマスタ側でのみデータの取り込みタイミングをデータ出力期間の中間から終わり側に移動させるもので、タイミングマージンの増加が見込めます。結果、ワンポイントでの実験ですが20MHzでも正しくデータを読み出すことが出来ました。どうしても速度が必要な用途では検討の価値はありそうです。


目次へ  前へ  次へ