ftdi_layout_init设置FTDI GPIO数据和方向寄存器的初始值。  “ 1”用于选择方向作为输出,“ 0”用于输入,并且ft2232H中的每个通道都有16个引脚。

例如CN2包括AD0-AD7,AC0-AC7,CN3是BD0-BD7,BC0-BC7

ftdi_layout_init 0x0018 0x05fbThis means:High output data = 0x00 // 0001 1000Low output data = 0x18 // 0001 1000High direction = 0x05 // 0000 0101Low direction = 0xfb // 1111 1011

// BIT2是input 类型所以是0 作为输入除了低4为1011其他可以是0或者1因为是input/output类型

CPUMode Read Extended Address
0x91,
0xAddrHigh
0xAddrLow
This will read 1 byte from the target device.
CPUMode Read Short Address
0x90,
0xAddrLow
This will read 1 byte from the target device

ADR_CL = 0x40
ADR_AL = 0x80
ADR_CE = 0x10
ADR_WP = 0x20
READ_SHORT = 0x90
READ_EXTENDED = 0x91

def __read(self, cl, al, count):cmds = []cmd_type = 0if cl == 1:cmd_type |= flashdevice_defs.ADR_CLif al == 1:cmd_type |= flashdevice_defs.ADR_ALcmds += [Ftdi.READ_EXTENDED, cmd_type, 0]for _ in range(1, count, 1):cmds += [Ftdi.READ_SHORT, 0]cmds.append(Ftdi.SEND_IMMEDIATE)# if self.ftdi is None or not self.ftdi.is_connected:#     returnself.ftdi.write_data(Array('B', cmds))if self.is_slow_mode():data = self.ftdi.read_data_bytes(count*2)data = data[0:-1:2]else:data = self.ftdi.read_data_bytes(count)
NAND_CMD_READ0 = 0
NAND_CMD_READ1 = 1
def __send_cmd(self, cmd):self.__write(1, 0, chr(cmd))def __send_address(self, addr, count):data = ''for _ in range(0, count, 1):data += chr(addr & 0xff)addr = addr>>8self.__write(0, 1, data)
def __write(self, cl, al, data):cmds = []cmd_type = 0if cl == 1:cmd_type |= flashdevice_defs.ADR_CLif al == 1:cmd_type |= flashdevice_defs.ADR_ALif not self.WriteProtect:cmd_type |= flashdevice_defs.ADR_WPcmds += [Ftdi.WRITE_EXTENDED, cmd_type, 0, ord(data[0])]for i in range(1, len(data), 1):#if i == 256:#    cmds += [Ftdi.WRITE_SHORT, 0, ord(data[i])]cmds += [Ftdi.WRITE_SHORT, 0, ord(data[i])]# if self.ftdi is None or not self.ftdi.is_connected:#     returnself.ftdi.write_data(Array('B', cmds))
self.__send_cmd(flashdevice_defs.NAND_CMD_READ0)
self.__wait_ready()
self.__send_address(pageno<<8, self.AddrCycles)
self.__wait_ready()
bytes_to_read += self.__read_data(self.PageSize/2)self.__send_cmd(flashdevice_defs.NAND_CMD_READ1)
self.__wait_ready()
self.__send_address(pageno<<8, self.AddrCycles)
self.__wait_ready()
bytes_to_read += self.__read_data(self.PageSize/2)

FTDI 2232H GPIO设置 NAND Read相关推荐

  1. uboot中添加hi35xx的GPIO设置

    以hi3531d为例,具体地址可以参考手册:ReleaseDoc/zh/00.hardware/chip中Hi3531DV100 H.265编解码处理器用户指南.pdf,内容中的14.外围设备–14. ...

  2. 移植uboot第四步:设置NAND启动

    写在前面: 我的博客已迁移至自建服务器:博客传送门,CSDN博客暂时停止,如有机器学习方面的兴趣,欢迎来看一看. 此外目前我在gitHub上准备一些李航的<统计学习方法>的实现算法,目标将 ...

  3. Linux系统的GPIO设置(以UpBoard为例)

    GPIO往往是通过sys文件系统进行操作的,当我们需要验证一个GPIO口置1还是置0的话,可以通过操作sys文件来完成. UpBoard官方所提供的linux系统已经安装了支持UP-Board的RPi ...

  4. 应广单片机 PMS150G、FPC161 基础例子【GPIO设置】

    应广单片机 PMS150G.FPC161 基础例子[GPIO设置] 调试方式:仿真器5S-I-S02B 编译软件:FPPA IDE 编译语言:mini C 电脑系统:win10 软件功能:设置GPIO ...

  5. 【STM32学习笔记】#002 GPIO设置练习

    系列文章目录 -[STM32学习笔记]#001 前期准备 文章目录 系列文章目录 前言 一.目标功能 二.CubeMX设置 1 端口设置1(Port Setting) 2 端口设置2(Port Set ...

  6. GPIO设置高低电平

    问题: 当按键按下设置某个GPIO为高电平时,如果按键一直不释放,则会一直去设置 解决思路: 设置一个标志,设置了一次后就将标志位置1.会出现两个问题: 如果执行了,但是实际当前设置ODR寄存器时出错 ...

  7. 树莓派GPIO设置和使用输出

    学习目标: 如何使用树莓派的GPIO打开和关闭来控制树莓派的输出端口 学习内容: 1.简单的格式 1.1 设置输入内容的方式 GPIO.setup(port_or_pin,GPIO.IN) GPIO. ...

  8. 关于DSP的GPIO的输入输出设置

    DSP 28335 的 GPIO的输入设置: GPIO的输入设置时,除了将此GPIO设置为输入之外,还需要将此GPIO口的电平拉高 //RXD3GpioCtrlRegs.GPBMUX2.bit.GPI ...

  9. MTK:GPIO模式与设置

    GPIO设置篇  一.GPIO有关的函数  1.GPIO_ModeSetup: 函数原型:voidGPIO_ModeSetup(kal_uint16pin,kal_uint16conf_dada)  ...

最新文章

  1. SAP S/4 HANA的物料编码40位设置
  2. python如何读二进制文件_python怎么读二进制文件
  3. centos mysql proxy_CentOS7搭建MysqlProxy实现读写分离
  4. oracle数据库的安全测试
  5. 如何将NCM转换成MP3 - NCM转MP3转换软件
  6. rss订阅_RSS订阅
  7. 网页加载过程+性能优化+安全
  8. Bootstrap系列之折叠(Collapse)
  9. grpc系列1-K8S集群,VIP,grpc._channel._InactiveRpcError connection reset by peer解决方案 Paddleserving服务化部署
  10. 在 Windows10 系统下重新安装 Ubuntu22.04 系统
  11. Kaspersky Anti-Virus NDIS Filter导致的网络故障一例
  12. mysql学生管理系统er图_java swing mysql实现的学生选课成绩信息管理系统附带视频指导教程及数据库ER图...
  13. 【​观察】美国公有云“排位赛”结束 中国市场正“步其后尘”?
  14. 论文阅读笔记《Fine-tuning Deep Neural Networks in Continuous Learning Scenarios》
  15. 2575: Moveable quadrangle with three edges
  16. 著名杀毒网站 江民再次被黑
  17. macOS下妙用option按键
  18. MyBatis研习录(09)——MyBatis一对多查询
  19. 微信小程序云开发demo项目部署报错:V[云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errM
  20. [附源码]计算机毕业设计springboot南通大学福利发放管理系统

热门文章

  1. 海康设备接入EasyCVR,出现告警信息缺失且不同步该如何解决?
  2. 手机端滑动banner代码
  3. 移动app hybird 框架之多少
  4. php表格制作4行两列的表格,excel表格怎么插行和列?
  5. python余弦定理求角_python余弦定理计算相似度
  6. git push 报错Push rejected、 remote unpack failed 、unpacker error、 failed to push some refs to
  7. left + (right - left) / 2;
  8. Lync客户端证书安装
  9. k阶子式、主子式、顺序主子式、余子式、代数余子式
  10. 中介者模式(Java)