zoukankan      html  css  js  c++  java
  • 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,FTDIBUSCOMPORT&VID_cccc&PID_cccc

    在ftdibus.inf里面添加

    %USBVID_cccc&PID_cccc.DeviceDesc%=FtdiBus.NT,USBVID_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尝试连接一次,开始时候总是速度很快,哦哈哈

  • 相关阅读:
    Django admin修改密码
    Python中查看函数相关文档
    Python之False和None
    前端神器之jquery
    网页三剑客之JS
    Python常用模块-时间模块
    python静态方法和类方法
    数据库学习之MySQL基础
    lmbench的使用方法
    sd卡无法启动及zc706更改主频后可以进入uboot无法启动kernel的坑
  • 原文地址:https://www.cnblogs.com/pied/p/3107126.html
Copyright © 2011-2022 走看看