mxcardのオプションボード「Card-UNIV5」には、I2Cで制御するRTCとプログラマブルOSCがあります。また、mxcardにはSPIで制御するFRAMを搭載しています。
【制御する部品】
FRAM (MB85RS256BPNF-G-JNERE1 ; SPI)
RTC (RX-8035SA ;I2C)
プログラマブルOSC (570CAC000141DG ;I2C)
【制御回路の概要】
Platform Designerを利用して無償IPのI2Cマスタ、SPIマスタをAvalonバスペリフェラル、当社製無償IPのGPIF_Master(USB制御回路)Avalonバスマスタを接続します。
FRAMが1ポートなのに、SPIスレーブが3つある理由は、8bitコマンド送出、16bitステータスレジスタアクセス、32bitデータライト/リードと分けたためです。SPIアクセスする前にはPIOをアクセスし、バス外に設けたセレクタ回路を制御することで、1ポートのFRAM制御を行います。
I2C/SPIマスタの詳細は、Intel社の資料を参照してください。
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_embedded_ip.pdf
SPIについては、P.48 Table18、 I2Cについては、P.172 Table122にそれぞれレジスタマップがあります。
I2Cの制御手順は、P.181 Fig.54とP.178が参考になります。
RefApp7.exeで実行できるI2C/SPI制御のTCLスクリプト、FPGAサンプルプロジェクト(Quartus prime LiteEdition V18.1版)を用意していますので、Intel資料を読まなくてもすぐに制御ができます。
【サンプルプロジェクトダウンロード】555KB