码迷,mamicode.com
首页 > 其他好文 > 详细

FT1248开发笔记

时间:2016-06-12 21:53:21      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:

环境配置

开始调试前必须确保电脑已安装上正确的驱动程序,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. 读写数据在每个返回延进行采样。

 

FT1248开发笔记

标签:

原文地址:http://www.cnblogs.com/guzhen24/p/5399814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!