×

1号の足跡(2) 新しいLazuriteの自動テスタをラズパイで作る

2016-06-30

8月に発売を予定している新しいLazuriteのテスターをRaspberry Piを使って開発していこうと考えています。
ブログではその過程を公開していこうと思います。体当たりで開発をしながらブログを書いていくので、うまくいかない場合は方針転換があるかもしれませんが、ご容赦ください。

さて、本題ですが「Lazuriteの出荷用自動測定器をraspberry pi3で作るぞ!!」という事で、それに関連する記事を書いていきたいと思います。

IMG_0445

目指しているシステム構成はこの通りです。

IMG_0522

今日は第1日目、まず最初の開発のテーマはUSBシリアル変換チップ FT232のD2XXモードをRaspberry pi3で使うです。

FTDIのD2XXドライバは、USBをシリアルIOとして使用するのではなく、GPIOやメモリとして使用する事ができるドライバです。(シリアル制御以外の機能も実現できる優れものです。)

LazuriteではFT232に内蔵されているEEPROMにボードの識別コードを書き込んでいます。また、FT232のGPIOを動かしてマイコンボードをリセットしたりプログラム書き換えモードに変更する制御を行っています。

さて、早速FTDIのホームページのD2XXドライバのページを見てみると、(suits Raspberry Pi)との文字が!!

スクリーンショット 2016-06-30 21.03.44

早速、マニュアル通りにインストールしてみましたが、上手くいきませんでした。

ネットで調べてみると、どうやら使ったライブラリは初代Raspberry piのものだった様です…

初代Raspberry Pi用:1.3.6 ARMv6 hard-float(suits Raspberry Pi)
Raspberry Pi2/3用:  1.3.6 ARMv7 hard-float

気をとり直してインストールしてみたら、無事に動作させるの事が出来ました。

インストールの方法はダウンロードしたファイルを解凍するとできる、「release¥ReadMe.txt」というファイルを開くとフォルダの構成と設定方法が記載されており、その下にサンプルプログラムの実行方法まで記載されています。

スクリーンショット 2016-06-30 21.14.59

 

実行したら次の通り動作させることができました。ManufactureやDescriptionにLazurite用のコードが記載されているのが確認できます。

[bash]

pi@raspberrypi ~/develop/miniTester/ftdi_test/lib/release/examples/EEPROM/read $ sudo ./read
Library version = 0x10306
Opening port 0
FT_Open(0) failed
pi@raspberrypi ~/develop/miniTester/ftdi_test/lib/release/examples/EEPROM/read $ sudo lsmod
Module Size Used by
ftdi_sio 31193 0
usbserial 22115 1 ftdi_sio
brcmfmac 186478 0
brcmutil 5661 1 brcmfmac
cfg80211 427817 1 brcmfmac
joydev 9024 0
evdev 11396 4
rfkill 16018 2 cfg80211
snd_bcm2835 25029 3
snd_pcm 75826 1 snd_bcm2835
snd_timer 19160 1 snd_pcm
snd 51844 9 snd_bcm2835,snd_timer,snd_pcm
i2c_bcm2708 4770 0
spi_bcm2835 7286 0
bcm2835_gpiomem 3040 0
bcm2835_wdt 3225 0
uio_pdrv_genirq 3164 0
uio 8000 1 uio_pdrv_genirq
i2c_dev 5859 0
fuse 83461 3
ipv6 347473 30
pi@raspberrypi ~/develop/miniTester/ftdi_test/lib/release/examples/EEPROM/read $ sudo rmmod ftdi_sio
pi@raspberrypi ~/develop/miniTester/ftdi_test/lib/release/examples/EEPROM/read $ sudo rmmod usbserial
pi@raspberrypi ~/develop/miniTester/ftdi_test/lib/release/examples/EEPROM/read $ sudo ./read
Library version = 0x10306
Opening port 0
FT_Open succeeded. Handle is 0xf6f2b0
FT_GetDeviceInfo succeeded. Device is type 5.
FT_EE_Read succeeded.

Signature1 = 0
Signature2 = -1
Version = 2
VendorId = 0x0403
ProductId = 0x6001
Manufacturer = LAPIS
ManufacturerId = A1
Description = LAZURITE Sub-GHz Rev2
SerialNumber = A1Z3R8F6
MaxPower = 90
PnP = 1
SelfPowered = 0
RemoteWakeup = 1
232R:
—–
UseExtOsc = 0x0
HighDriveIOs = 0x0
EndpointSize = 0x40
PullDownEnableR = 0x0
SerNumEnableR = 0x1
InvertTXD = 0x0
InvertRXD = 0x0
InvertRTS = 0x0
InvertCTS = 0x0
InvertDTR = 0x0
InvertDSR = 0x0
InvertDCD = 0x0
InvertRI = 0x0
Cbus0 = 0xA
Cbus1 = 0xA
Cbus2 = 0x0
Cbus3 = 0x1
Cbus4 = 0x5
RIsD2XX = 0x0
Returning 0
pi@raspberrypi ~/develop/miniTester/ftdi_test/lib/release/examples/EEPROM/read $

[/bash]

実行コマンドは「./read」ではダメで、「sudo ./read」にしないと動作しないのですが、sudoを付け忘れてしまい、少しだけハマってしまいました。

最後に初日のポイントです。

1.正しいUSBドライバをインストールする
初代Raspberry Pi用:1.3.6 ARMv6 hard-float(suits Raspberry Pi)
Raspberry Pi2/3用:  1.3.6 ARMv7 hard-float

2.USBシリアルのドライバをrmmodを使用して無効にする

です。皆様に新しいボードを早く届けられるよう、開発を加速していきます!!