环境配置

开始调试前必须确保电脑已安装上正确的驱动程序,64位系统在driver中安装amd64的,32位的系统安装x86的(我在调试时因为驱动程序没有选对,真是血的教训。。。)。对于FTD2XX的芯片,除非使用MPSSE功能,其他情况都使用FTD2XX的驱动,然后使用dll或者配置成com来进行通信。

建议在调试硬件前用FTDI官方提供的测试程序进行测试。这是C#下的测试程序,http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/CSharp.htm,建议使用example 3的数据轮回测试,注意这个测试程序需要把TXD和RXD引脚短接,RTS和CTS引脚短接。因此建议画板的时候可以留下接口方便测试。如果四个脚都连接FPGA,那也可以用FPGA来扮演连接器的角色。

然后,别忘了还要使用FT_Prog把芯片和Master通信方式配置成FT1248模式。,这个在hardware specific中PART A的hardware中可以选择。,并在driver中选择FTD2XX。需要注意的是,如果只使用了一个FT232H和Master通信,FT1248总线上没有其他设备,那么一般会选上FT1248 setting的Flow ctrl not selected,这样在非通信过程是芯片的MIOSIO[0]和MISO才会反应数据缓冲区状态,在调试过程中如果出现数据发送出去但是板子没有收到的情况,那么有一种情况就是电脑的另一个usb也连着一个ft的usb芯片,有可能是程序烧录器。那就拔掉以后再试试。

FT1248的8bit协议

(一) FT232H在本协议中作为从机与主机进行8bit通信(或者1bit,2bit,4bit,本文基于8bit

1. 在8bits通信中,会用到11根信号线,双向数据线[7:0] MIOSIO,Master控制的时钟线(SCLK)和使能线(SS_N),FT232H控制的MISO

2. FT232H判断使用的是多少bit通信是通过检测SS_N在拉低后的第一个周期内MIOSIO情况(需要注意手册建议每个MIOSIO都要加上拉电阻,因此芯片默认都是在高电平的),

    如果[7:4]MIOSIO中有一个被拉低了,那么通信为8bit;

    如果[3:2]MIOSIO中有一个被拉低了,那么通信为4bit;

    如果[1]MIOSIO被拉低了,那么通信为2bit,否则就是1bit通信;

3. 在未进行通信时,FT232H将会通过MIOSIO[0]和MISO分别反应write buffer和read buffer的状态,两个buffer都有1 kBytes的空间:

    (a)其中MIOSIO[0]在高电平表示在write buffer中至少还能存放1 byte;

    (b)MISO在高电平表示read buffer还有至少1 byte没有被读取;

4. 当SS_N变为低电平表示主机正开始一次传输,这时首先由主机发送8bit的CMD指令(在第一个时钟返回延,从机进行采样),没有使用到的MIOSIO都拉低。

  对于8bit模式,              目前可用的指令包括:

    CMD0 = MIOSIO[6];            0x0  写输入到USB缓冲

    CMD1 = MIOSIO[5];            0x1  从USB缓冲读数据

    CMD2 = MIOSIO[3];            0x2  读取modem状态

    CMD3 = MIOSIO[0];            0x3  写modem状态

                           0x4  把write buffer中的数据擦除

5. 在第二个周期开始时,[7:0]MIOSIO的传输要转向,主机的这几根线进入三态状态(注意:AN_167手册上对8bit的这段描述貌似直接复制了4bit的,所以时钟和位宽都有错误)。转向完后,第三个周期就开始收/发数据了,当然这个时候SS_N都要保持低电平。同时,MISO会使用ACK或NAK来告知是否传输成功。

6. 在准备把SS_N拉高来结束传输前,必须把MIOSIO置于三态,使得FT232H能通过MIOSIO[0]把write buffer状态映射出来。

7. MISO的状态将表示是否在write的时候write buffer满了,或者在read的时候read buffer空了。如果出现这些异常,MISO将反馈NAK,手册建议当收到NAK的下一个周期必须SS_N置高停止传输,否则之后的read和write都会出问题。

8. 读写数据在每个返回延进行采样。

转载于:https://www.cnblogs.com/guzhen24/p/5399814.html

FT1248开发笔记相关推荐

  1. 运维开发笔记整理-前后端分离

    运维开发笔记整理-前后端分离 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要进行前后端分离 1>.pc, app, pad多端适应 2>.SPA开发式的流 ...

  2. iOS开发笔记-两种单例模式的写法

    iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...

  3. 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理

    本系列文章由zhmxy555编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7405479 作者:毛星云    邮箱: happyl ...

  4. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云    邮箱: happylifemxy@163.com    期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...

  5. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  6. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...

  7. os-cocos2d游戏开发基础-进度条-开发笔记

     os-cocos2d游戏开发基础-进度条-开发笔记(十)   ios-cocos2d游戏开发基础-游戏音效-开发笔记(九)       ios-cocos2d游戏开发基础-CCLayer和Touch ...

  8. 【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩:纹理映射技术(一)...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8523341 作者:毛星云(浅墨 ...

  9. 【Android】Parse开发笔记(1)—— 准备

    一.简介 Parse是由 YC 孵化出来的.专为移动应用提供后台服务的云计算平台,为开发者包办繁琐的后台服务,让开发者只需专注于具体的开发工作.它提供任意数据保存.照片或其它文件存储.发送推送通知.创 ...

最新文章

  1. java 连接oracle数据库(最简单的使用)
  2. 安卓AS_git 进行更新远程分支
  3. C++设计模式:Template Method
  4. error: invalid use of incomplete type 'XXXX' ;error: forward declaration of 'XXXX' 声明改为包含头文件
  5. nginx部署laravel需要修改的配置
  6. linux贪吃蛇c程序,Linux环境下C语言实现贪吃蛇游戏
  7. 数据库实例:mysql与mongo结合用户登录
  8. 火柴人小程序linux,火柴人你瞅啥小程序
  9. 吉利控股集团申请注册“富吉康”商标
  10. C++ 四种智能指针详解
  11. 30多门免费课程上线,亚马逊“机器学习大学”开学了
  12. 为IT部门画一个“饼”
  13. [论文总结] 深度学习在农业领域应用论文笔记2
  14. 层次图和HIPO图---描绘软件结构的图形工具
  15. yml在线格式转换工具
  16. 整车模型系列之发动机模型的建立
  17. 简单三步教你制作一个数据可视化大屏
  18. 从聚合数据请求菜谱大全接口数据,解析显示到ListView
  19. 菠萝狗四足机器人使用手册
  20. 小白也能看懂的手机配置攻略

热门文章

  1. eclipse 创建springboot 提示socket time超时问题
  2. Git如何忽略已经上传的文件或文件夹?
  3. 颠覆世界的新技术:区块链
  4. 【Cisco NA】单臂路由+DHCP+DHCP中继+GRE Tunnel
  5. zookeeper watcher机制
  6. Bash 一些变量的操作
  7. IntelliJ IDEA 12 中用 Maven + Jetty 来开发Web项目
  8. 工具存储过程收藏(spFindString)
  9. php mysql搜索包含数据查询慢,php – 在mysql中搜索关键字并获取至少包含5个关键字的数据...
  10. 【FFMPEG系列】FFMPEG linux下集成x264