at_kazutaka.bito
2020年1月27日 10時19分
Armadillo実践開発ガイド 第3部(linux-3.14-at対応)
2.3. SPI接続A/Dコンバーター
に紹介されているspidevでSPIデバイス(MCP3204)を制御するサンプルプログラムを
カーネル(Linux-4.9)で動作するように変更しました。
参考)Armadillo-X1の拡張インタフェースのSPIの使用方法は下記をご参照ください。
Armadillo-X1製品マニュアル
21.7.4. SPI
サンプルプログラム一式を添付します。
mcp3204_for_spidev_20200123.tar.gz
上記の実践開発ガイドのサンプルプログラムから、下記2点を変更しています。
mcp3204.c(変更部分のみ抜粋)
/* 転送設定をセットする */
tr.tx_buf = (unsigned long)tx;
tr.rx_buf = (unsigned long)rx;
tr.len = ARRAY_SIZE(tx);
tr.delay_usecs = MCP3204_SPI_DELAY_USECS;
tr.speed_hz = MCP3204_SPI_SPEED_HZ;
tr.bits_per_word = MCP3204_SPI_BITS;
tr.cs_change = 0;
tr.tx_nbits = 0; // 追加(※)
tr.rx_nbits = 0; // 追加(※)
※)Linux-4.9では、この要素が追加されているため。
Makefile(変更部分のみ抜粋)
CROSS := arm-linux-gnueabi
の箇所を下記のように変更(※)
CROSS :=
※)Armadillo-IoT(G3)/X1上でのセルフコンパイルを想定し、クロスコンパイル用のプレフィックスを削除。