読者です 読者をやめる 読者になる 読者になる

Lynx-EyEDの電音鍵盤 新館

広帯域制御屋の駄文とか

Vinculum-IIでUARTからUSBメモリに書き込んでみる

いまさらVinculum-IIを使ってみた

VinCulum-IIのDIP化モジュールV2DIP1-32を以前に買って3年近く積んでたのですが、FSながらもUSBホストが2つあるのと、サンプルコードが豊富ということで使ってみました。
f:id:Lynx-EyED:20150710223943j:plain
UVC対応Webカメラのサンプルコードなんかもあっていいですね。時間があったら触ってみよう。
2.0mmピッチのコネクタがついていたのですが、接触不良を起こしていたのでmolexのソケットに交換したV2DIP1-32とVNC2 Debugger/Programmer
3年前の自分は一番安いボードって理由だけでV2DIP32-1を選択したんだろうと思うんだけど、USBホストコネクタがはじめから2ポートあるV2DIP2のほうがコネクタを増設したりする作業がないので良いと思います。詳細はDevelopment Modules
Vinculum-IIは16bitオリジナルコアで、RTOSがのってるなど、いろいろルネサsを彷彿とさせる地雷臭がちょっとするとか思うところがありますが、使ってみたところ非常に好感が持てる環境でした。

IDEはVinculum-II IDE(以下VinIDE)ですが、初期設定はテキストで書かず、メニューのModifyから選択し、すべて自動生成させます。VOSというRTOS上で動くドライバを自動生成してくれます。

UARTから受信したテキストデータをUSBメモリに保存するサンプルコードをV2DIP1-32用にmodifyしてみました。
元のソースコードはこちらhttp://www.ftdichip.com/Firmware/Precompiled/UART2DSC.zip/
まず、V2DIP1-32のUSBホストコネクタはUSB Port2のものなので、Port1を前提としているサンプルコードの設定を変更します。

メニューのFileタブ → Modify → AppWizardのTarget ModuleタブでV2DIP132pinを選択

DriversタブでUSBHost1のチェックを外し、USBHost2をチェック
FAT File System → BOMS → USBHost2のみチェック
Kernelタブで12MHzを選択
IOMuxタブで
Debugger -> IO0
UART_TXD -> IO4
UART_RXD -> IO5
が緑色でアサインされているのを確認してFinish
f:id:Lynx-EyED:20150711001229p:plain

余談。VinIDEはよくソースコードウィンドウが行方不明になったり、ウィンドウレイアウトが滅茶苦茶になって直らないときがある。こうなったら、C:\Users\(user_name)\AppData\Roaming\FTDI\VinIDEのなかにあるxmlファイルをすべて消す。
こうすると、ウィンドウレイアウトがインストール時のものに戻る。

UART2DSC.cを少しだけ修正。
258行目あたりのコードをUSBHOST_2を使うように変更

hUSBHOST_2 = vos_dev_open(VOS_DEV_USBHOST_2);

あと、エディタの置換機能を使ってhUSBHOST_1をhUSBHOST_2に置き換えておく。
このサンプルコードだと、UARTがループバックしないので、ループバックコードの追加をする。
TXD、RXDの2線のみで通信したいので、RTS,CTSは使わない設定に直す。
21行目

#define DEF_UART_PARITY		UART_PARITY_NONE

367行目のvos_dev_read(hUART...の次の行に以下を追加

vos_dev_write(hUART, &buf[pBuf], numRead, NULL);

メニュー→Buildタブ→Buildして、Debugタブに移行し、VII Debugger ModuleをConnectしてから書き込み。
f:id:Lynx-EyED:20150711001641p:plain

V2DIP1-32のUART(UART_TXD -> IO4,UART_RXD -> IO5)を秋月のFT232RLモジュールと接続
f:id:Lynx-EyED:20150710235850j:plain

FT232RLへTeraTermから9600baud,8N1で文字を打ちこむ
f:id:Lynx-EyED:20150711000756p:plain

USBメモリエクスプローラで確認すると、TEST.TXTが生成されているはず。USBメモリはFAT32フォーマットしているものを使用しました。
f:id:Lynx-EyED:20150711000947p:plain

無事書き込まれうんこ。
f:id:Lynx-EyED:20150711001047p:plain