FT232RL變磚之后


FT232RL是個是神奇的片子,說萬能可能有些誇張,但是。。。總之就是FTDIChip這個神奇的公司基於類似的技術,做了很多好用的產品,包括轉IIC啦,轉SPI啦,密碼狗啦之類的。是個很有用的工具就對了。

言歸正傳。用一句話描述起因呢就是,錯用了D2XX里面的FT_ProgramEx這個函數之后,片子內部的Firmware各種混亂。

1、VID、PID與INF文件

首先,VID和PID都錯亂了,原來的驅動沒法用。百度之,啊哈,發現可以通過修改inf文件,來使原來的驅動可以支持新的VID和PID。

因為我的VID和PID都變成了cccc,所以在ftdiport.inf文件中添加:

%VID_cccc&PID_cccc.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_cccc&PID_cccc

在ftdibus.inf里面添加

%USB\VID_cccc&PID_cccc.DeviceDesc%=FtdiBus.NT,USB\VID_cccc&PID_cccc

OK,重新給無法識別的器件添加驅動,然后它又變得可以識別了。

這里可以分析下inf文件,很顯然,驅動支持哪些VID和PID,可以通過修改inf文件來實現。首先,系統是會去讀inf文件,看該驅動能不能支持剛插入的器件;然后,驅動會使用該VID和PID去識別期間,類似於Linux寫驅動時的主設備號和子設備號。

 

2、下載libftd2xx1.1.12.tar.gz

額,雖然可識別了,但是用FT_ProgrammEx是沒法再把Firmware給設置正確了,操作一次后,一插器件上來,windows就藍屏。

所以,改在linux下面修改VID和PID再試。

先下了在Linux的D2XX支持包libftd2xx1.1.12.tar.gz過來。

唔,下這個包我抽了至少五根煙,雖然他只有34k大小,主要是服務器那邊連接一直斷。。。開始時候用chrome,斷一次,手動點擊連接一次。。。重復幾次之后就沒耐心了。所以,用上了wget。無限次嘗試下載,斷開連接1秒后嘗試重新連接。

wget --tries=inf --read-timeout=10 http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.1.12.tar.gz

第一次設的是1s,結果不停在嘗試連接,然后就設置為10s了,這樣每10s嘗試連接一次,開始時候總是速度很快,哦哈哈


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM