もったいないので、ロボットの簡易的なディスプレーにしようと思い、サイトに書いてあるGPIOをつないだけど動かない。もちろん直付けすると動くけど、他のGPIOが使えなので、、、
<追記>
初稿を書いた後に、Pin1の3.3Vを接続したら、ディスプレーとして動きました。SPIの件は、変わらずですが、、、
ディスプレーとして動いたので良しとします。
デバイスファイルは、/dev/input/touchscreen以外にもあると思うけど、、、
いつかちゃんと確認するという事で、、、
</追記>
<追記>
初稿を書いた後に、Pin1の3.3Vを接続したら、ディスプレーとして動きました。SPIの件は、変わらずですが、、、
ディスプレーとして動いたので良しとします。
デバイスファイルは、/dev/input/touchscreen以外にもあると思うけど、、、
いつかちゃんと確認するという事で、、、
</追記>
ということで、写真のように接続した時に、SPIちゃんと動いているのかしら
その為にSPIのテスト
(2) bcm2835 libraryのインストール(最新バージョンは都度確認)
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.52.tar.gz
./configure
make
sudo make install
(2) SPIのテスト
ls /dev/spi*
ls: cannot access /dev/spi*: No such file or directory
なぬ?
lsmod
.
.
snd 68784 5 snd_timer,snd_bcm2835,snd_pcm
i2c_bcm2835 6433 0
spi_bcm2835 7424 0
bcm2835_gpiomem 3791 0
uio_pdrv_genirq 3718 0
.
.
cat t1.c
#include <bcm2835.h>
#include <stdio.h>
int main(int argc, char **argv)
{
if (!bcm2835_init())
return 1;
bcm2835_spi_begin();
bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST); // The default
bcm2835_spi_setDataMode(BCM2835_SPI_MODE0); // The default
bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_65536); // The default
bcm2835_spi_chipSelect(BCM2835_SPI_CS0); // The default
bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW); // the default
uint8_t send_data = 0x23;
uint8_t read_data = bcm2835_spi_transfer(send_data);
printf("Sent to SPI: 0x%02X. Read back from SPI: 0x%02X.\n", send_data, read_data);
if (send_data != read_data)
printf("Do you have the loopback from MOSI to MISO connected?\n");
bcm2835_spi_end();
bcm2835_close();
return 0;
}
gcc -o t1 t1i.c -l bcm2835
./t1
Segmentation fault
だめだぁ、、、
(3) 直付け
ls /dev/spi*
ls: cannot access /dev/spi*: No such file or directory
あれ?
でも、PiTFT動いているし、、、???
./t1
Segmentation fault
ダメだぁ、、、
(4) SPI Off
sudo reboot
ハングアップしするので、電源Off-Onで再起動、、、
ところが、UIでるんだなぁ、、、(笑)
どうなっているのでしょうか?
何で、接続されているのかしら、、、
SPIではないのかしら、、、、
とっても、Peaceではない。
0 件のコメント:
コメントを投稿