FC2カウンター FPGAの部屋 2019年05月28日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

MIPIボード用PMOD拡張ボードをテストする3(I2C、SPI のテスト方法)

MIPIボード用PMOD拡張ボードをテストする3(実機でテスト)”の続き。

フレックスターズさんのブログの”Ultra96 Linux で MIPI カメラから画像を取得する (解説編)”を全面的に参考にさせていただきます。

フレックスターズさんのブログの”Ultra96 Linux で MIPI カメラから画像を取得する (解説編)”の「3. カメラ制御」の「3.1 I2C 制御」によると、TCA9548A のI2C スイッチによって I2C が 8 個に分けられているということだった。
そのうちの 0 番ポートの I2C0 と 1 番ポートの I2C1 をPMOD に出力している。
I2C0 を使うには、PS の I2C1 コントローラから 0x75(TCA9548A のアドレス)、0x1 を送れば良いそうだ。I2C1 を使うには、 0x75、 0x2 を送る。
フレックスターズさんのブログの”Ultra96 Linux で MIPI カメラから画像を取得する (解説編)”の「3.1 I2C 制御」によると、TCA9548A の 0 番ポートの I2C0 が /dev/i2c-2 に、 1 番ポートの I2C1 が /dev/i2c-3 に割り当てられているようだ。これらを open して使えば良さそうだ。

PS の I2C1 コントローラからアクセスするためのソースコードもGitHub のultra96_design/src/linux/caminit/src/ov5640.cc::init_ov5640() もしくは ultra96_design/src/linux/caminit/src/imx219.cc::init_imx219() にあるそうだ。

もう1つの資料としては、Linux から I2C を使う方法を書いた”I2Cデバイスの扱い方”が参考になりそうだ。

次にSPI だが、低速コネクタのSPI0 の信号線をPMOD に出力している。
やはり、PS のIOU のSPI 0 が出力されているようだ。
SPI をLinux から使う方法は、なひたふさんの”ZYNQのSPIをLinuxから使う方法”が参考になりそうだ。
とりあえずSPI は後回しにしよう。
Xilinx Wiki SPI Zynq driver

I2CとSPI を使用するモジュールを買う必要があるが、秋月電子のBME280使用 温湿度・気圧センサモジュールキットだったら、I2C と SPI の両方使用できるから、これにしようか?
  1. 2019年05月28日 05:28 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Ultra96用PMOD拡張ボード16(タクトスイッチのフットプリントの修正)

Ultra96用PMOD拡張ボード15(Ultra96V2用に改版した3)”の続き。

Ultra96用PMOD拡張ボード15(Ultra96V2用に改版した3)”で基板が届いたので、部品を載せてみたところ、タクトスイッチのフットプリントが小さすぎてはみ出してしまうことが分かった。

データシートを見てみると、フットプリントの端から端までが 8 mm なのに、タクトスイッチの端から端までが 9 mm じゃないか。。。これじゃ必然的にはみ出しちゃう。怒、怒、怒。

フットプリントを修正した。今度は端から端までで 10 mm にした。これで大丈夫だろう?
Ultra96_ext_board_11_190527.png

基板を修正して、Ver.4 とした。
Ultra96_ext_board_12_190527.png

ただ、今の基板に部品を実装して確かめてみるまでは、基板を作らない。

今の基板に取り付けるタクトスイッチとして、ツィッターで”表面実装用タクトスイッチ”を教えていただいた。これだと端から端までで 8 mm なので、何とか搭載できそう。
  1. 2019年05月28日 04:35 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0