Sabotenboy's *sigh*
今年こそ本業を変えたいなぁ...^^;




うちにはBlackfinのモジュールが1個あります、随分前にインターフェースのプレゼントで貰ったもの
開発したプログラムの書き込み方法としてマニュアルに記載されてたJTAGアダプタがそれなりの価格で(ADI純正は論外^^;)、
永らく放置していました
Blackfin BlueBootというシリアル接続で書き込み/起動させるソフトもありますがついぞ試さずに^^;

純正のIDEであるVisualDSP++にはADI純正のJTAGアダプタが必要で、価格はソフト込ながら天文学的...^^;
FreeのToolchainで構わないものの、やはりJTAGは欲しいカモ

VisualDSP++では使えないものの、
Open Source HardwareなgnICE(FT2232Lベース)gnICE+(FT2232HLベース)がありBlackfin関係でよく見かけます、
でも買うとそれなりの価格、いつ開発されたの?という位な昔の製品なのに
eBayとかにも互換基板等売ってますがやたら高い(USD 80とか)
単なるFT2232HL基板ならUSD 40弱位が私の相場観^^;、ざっくり倍か...

gnICE+の回路図を見ると、dual channelなFT2232HLのA channelしか使っていない
B channelはなんとなくUSB-シリアル変換モードに設定されている
今時のFTDIのEEPROM設定ツールはFT_Progだが、gnICE+が作られた当時はMProgの時代
SourceForgeにこのMProgで使える設定ファイル(BlackfingnICE+.ept)がありました!
ではこの*.eptファイルのA channel側だけを使って秋月のFT232HLモジュールを似非gnICE+にしたのが今回のテーマ
(もし既に誰かやっていたらご愛嬌^^;)
コストは1500円位(似非J-LINK v8の方が安い^^;)、パーツは全て秋月で購入可(2015年5月現在)
高いのか安いのか、最近はこのあたりの区別がつきにくくなって嫌な感じ

MProgで表示させたgnICE+の設定(AはJTAG、BはUART)
危険な項目はVID & PID^^;、間違えると即死なので

MProgの*.eptファイルはFT_Progで使えない^^;
自分で人力変換が必要(というほど難しくは無いが)

秋月のFT232HLモジュールのデータシートとgnICE+の回路図を見ながらピン配置を確認
- 秋月のAC8とAC9に繋がってるLEDは#PWRENLEDと#TX&RXLEDに設定する
 UARTは使わないのでAC9のLEDは不使用^^;
 AC8の黄色いLEDが結構明るい、電源なので使用中はつきっぱなし
- gnICE+の回路図ではAC3に#USBJTAGENなLEDがつながっているのでこれは外付け
 この赤いLED、urJTAGとかで当初USBにつないだ状態では消えているが、"cable gnICE+"とかしてつながると点灯する
- TDOとEMUは、ホンモノgnICE+ではレベル変換が噛まされているが、双方とも3.3Vなので似非では男らしく直結^^;
- EMUはホンモノgnICE+で10KΩでプルアップされているのでそうする
- TCK/TDI/TMS/TRSTには例によってダンピング抵抗33Ωがついてるのでこれは似非でも実装

PaaSでアダプタ基板作成、ボックスヘッダは(単価が)高いので普通のピンを立てました
ダンピング抵抗がPaaSの実体配線図上、重なっているのはそのせい
もう作り直さないと思うけど、ボックスヘッダを使うならダンピング抵抗は縦にすれば収まる

(PaaSの配線図で表側ではJTAGの1ピンが下側)

当初、14ピン並びのTDO(14)が隣のGND(13)とつなげてあって(PaaS上も^^;)bfin-gdbproxyの途中で固まっていた、
そして"TDOが0から変化しない!"と怒られた、そんなerror messageが実装されてるなんてステキ(おかげですぐ修正)


FT_ProgでEEPROM書き換え
今回は一発で成功したが、書き換え後は簡単には修正出来ない、特にVID
書き込むときはモジュールをbrickする覚悟で^^;









書込み自体は簡単に終了、
次はドライバのインストールだがこれはToolchainの中に含まれているから先にそっちをインストール
なお、Blackfinモジュールの製造元である金子システム株式会社が簡単なdebug手引き(EclipseのインストールからgcICE+でステップトレースするまで)をサポート資料の中で提供しているので参照

- Toolchainのインストール(GCC4.5の方)
- Eclipseのインストトール(資料ではKeplerだが最新のLunaをインストール)

Java(8 update 45)少し引っかかったが解決して先へ進む...

ドライバはそのままではインストール出来ません(そりゃそうだハードが違うんだから...)
Toolchainのインストール先にあるgnICE-driversフォルダを指定してもWindows7は「みつからない」の一点張り^^;
本来のgnICE+はFT2232HベースでDualなデバイスなのに対し、当方の似非gnICE+はFT232HLベースで1 channelしかない...
ドライバのインストールはFT2232Hの場合A側がJTAG、B側がUARTと2回行う都合上、デバイスを00と01で区別している
これがあるとどうもうまくいかないようだ(全く確信は無い^^;)、そこでgnICE.infをいじる(結果オーライ)
具体的にはAとBとを区別している部分を削除するだけ

修正前
[Devices.NTX86]
%gnICE_JTAG%  = USB_Install, USB\VID_0456&PID_f000&MI_00
%gnICE+_JTAG% = USB_Install, USB\VID_0456&PID_f001&MI_00

修正後
[Devices.NTX86]
%gnICE_JTAG%  = USB_Install, USB\VID_0456&PID_f000&MI_00
%gnICE+_JTAG% = USB_Install, USB\VID_0456&PID_F001

PIDの大文字小文字が区別されるか分からなかったので、念のためFT_Progで書き込んだ値に変更(多分小文字OK)
こういった変更が数か所あったが全て同様に修正 (gnICEの方は今回は関係ないのでいじらない)

JTAGとしてはgnICE.infだけの修正でドライバのインストールは出来る、
ftdibus.infはFT2232HのB channelにUARTドライバをインストールするものでデバイス識別子がMI_01になってる
直さなくてもそんなものは無いので無視された(と思われる)、ftdiport.infもいじらない
以上の変更後、EEPROMを書き換えたFT232HLをPCにつなぎ、修正したinfがあるフォルダを指定するとドライバがさっくりインストールされる


あと一息 - -;

金子システムのdebug手引きに戻り、Eclipseの設定の続き
- 3.4に書いてあるBF592用のリンカスクリプトの誤りを修正
- Eclipseをインストール、ワークスペースの設定など適当に
- 3.7のBlackfin pluginのインストールはLunaでは"CDT Optional Features"でなく以下の箇所に
    
- 手引きの通りに残りの設定を済ませる

すると以降のお試しdebuggingは手引きに書いてある通り(gnICE+を使っているのと同じ)に実行可能!
サンプルプログラムはBlackfinモジュールの37ピンに繋がったLEDを点滅させるもの
ブレッドボードに配線して、Blackfinモジュールへの給電はトラ技ARMライタCN5から(ある意味活躍している^^;)
秋月で買った2*7のリボンケーブルで似非gnICE+とBlackfinモジュールをつなぐ...

bfin-gdbproxyを立ち上げると、

よし!
で、Eclipseからdebug開始、

最初のコードでbreakしてます!
勿論、ステップトレースも出来るし、
但しこのサンプルコードの10000000回ループをStepoverで走らせて無限ループっぽい状態に陥って焦った^^;
ループを10回とかにして正常に動いていることを確認

で普通に走らせると、

こんな感じで^^、点滅します

CQの基板付Blackfin本を買ってしまった(配達はまだ)ので(某ショッピングモールのポイントで支払^^;)、これからも色々学ばねば
しかし金子システムのモジュールACB-BF592-Aは税込5800円(!!!)、
マルツで単体販売しているこの本の付録基板は外税ながら2980円、今後買うんだったらこっちかな...(これ以上買わないけど)
一応この基板上にもJTAGのパターンがあることは確認済(^^;)、似非gnICE+は使えるはず
金子システムの中の人がこの書籍にも噛んでいるようで、日本でホビーレベルでBlackfinを触りたい人に情報発信しているのはほんとに限られたこれらの人達だけなのかなぁ^^;

BF592はロットがそろえば単価USD 4.5前後の石、
アナログが絡むだけに基板の造りはそれなりなのだろうが、出来上がりがもう少し安いと手を出す人も多いだろうに
CQの本は定価4500円とかでいきなりは買わんだろう、せめて書籍込みで2980円かな(買ってしまったが^^;)
この本、発売からしばらくたつがネット上に一向に取り上げられない
書籍関係者の身内ネタばかり、もう少し盛り上がらないものだろうか^^;
エフェクタを作りたいギターな人たちが気軽に使えるBlackfinモジュールが、Arduno UNO R3程度の価格で出たらいいのになぁ

 

※ よく見たら、似非gnICE+の配線でGNDをFT232HLモジュールの2か所につないでた
ループしているようで嫌だったからダンピング抵抗の位置もずらして修正 in PaaS、これですっきり^^

※※ 最近FTDIチップ関連で秋月C基板工作を続けてやったが、秋月モジュールを使うと配線が少なく楽
あと静電気やらノイズ対策部品やらも個別に買わなくていいし^^;
既製品は偉大だ^^;、あとはほんの少しの加工で...


 

 

 

 



コメント ( 3 ) | Trackback ( )


« J-LINK... 到着 Blackfin (1) ... »
 
コメント
 
 
 
vid pid 変更について (mizu)
2015-08-14 16:44:50
貴殿の記事を拝見し同様にFT232HL(秋月)で追試を
してみましたが、VIDとPIDの変更方法がわかりません。
実際、FT232HLをはじめはメモリ内容も表示していましたが
そのうちまったく表示しなくなりました。USBに接続し
スキャンさせてもなにもFT_PROGには表示されなくなりました。(壊れたのでしょうか?)それとも何か間違った作業をしたのでしょうか?ご教授いただければありたいです。
よろしくお願いいたします。
 
 
 
Unknown (Sabotenboy)
2015-08-16 22:34:52
FT232HLのVID/PIDを書き換えてしまったものと思われます
デバイスマネージャーを見て、不明な(ドライバのあたっていない)デバイスを探してください、あったらそれがFT232HLです

FT_PROGは特定のVID/PIDを探しに行きます
書き換えしてしまうと普通の手段ではFT_PROGではFT232HLを見つけられなくなります

FTDIの方でツール(GUIではないですが)が提供されており、プログラミング出来るなら任意のVID/PIDをFT_PROGの処理対象リストに付け加えることは可能ですが、私は実験していません

私のやったことをなぞったのなら、VID/PIDを含め指定個所の書き換えが完了しているのならあとはドライバの導入(ひと手間必要ですが)をすれば似非gnICE+が稼働するはずです(保証はありませんが^^;)

最悪の場合で、PID/VID以外の設定をせずに書き換えてしまった場合、前述のツールを使ってFT_PROGからアクセスできる状態にしないとどうにもなりません...
 
 
 
Unknown (mizu)
2015-08-23 20:08:41
Sabotenboy様
もう一枚同基板買って再度設定しましたところ
うまくいきました。ドライバーも入り bfin-gdbproxy
コマンドも動いているようです。
ご迷惑をおかけしました。
 
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。