电子说
在电子设计领域,对特定设备的编程规范有深入了解至关重要。今天我们就来详细探讨一下 CY8CMBR3xxx 设备的编程规范,这对于工程师们进行相关硬件设计和开发具有重要的指导意义。
文件下载:CY3280-MBR3.pdf
Cypress 现属于 Infineon Technologies 公司,但该文档仍以 “Cypress” 标记,因为 Cypress 是该产品的原始开发者。Infineon 会继续将此产品纳入其产品组合,为新老客户提供服务。这份编程规范主要提供了对 CY8CMBR3xxx 设备非易失性存储器进行编程所需的信息,包括通信协议、编程算法以及物理连接的电气规格等内容。
编程器是一个软硬件系统,其主要功能是将二进制程序(十六进制文件)存储到芯片的程序(闪存)存储器中。它在工程师的原型开发环境或制造环境(批量编程)中都起着关键作用。编程器有软件中心和固件中心两种类型:
CY8CMBR3xxx 系列是用于 CapSense 终端应用的专用集成电路(ASIC)设备,无需编码,通过 I2C - Bus 对配置寄存器进行编程。其非易失性子系统由最大 128 字节的闪存存储器系统组成,用于存储设备配置信息。该设备可以通过 I2C 接口进行系统内编程,I2C 从接口具有通信速度高达 400 kHz、无总线停滞(无时钟拉伸)以及 I2C 地址可通过 I2C 寄存器映射配置等特点。
客户使用 EZ - Click GUI 开发项目,项目开发完成后,芯片的非易失性配置信息会保存到十六进制文件中。该文件中只有一条记录真正针对闪存存储器,即设备配置寄存器,其他记录为辅助记录,用于保持编程流程的完整性。
闪存存储器组织成一个 128 字节的存储块,编程粒度为每次一个存储块。该存储块代表设备配置状态的寄存器,在芯片启动(硬件/软件复位后),重新编程的功能会加载到相应的易失性存储器(寄存器)中。
CY8CMBR3xxx 系列的十六进制文件遵循 Intel 十六进制文件格式,该文件定义了配置闪存、校验和和元数据三个数据部分。其地址空间并不直接映射到芯片 I/O 寄存器的物理地址,编程器使用十六进制地址将文件中的数据读取到本地缓冲区,然后将这些数据编程(转换)到芯片的相应地址。其中,元数据包含了十六进制文件版本、I2C 写入地址、设备 ID 等重要信息,编程器可利用这些信息进行文件验证和编程操作。
编程过程涉及的协议栈包括编程算法协议、I2C 接口和物理层。编程算法协议是最顶层的协议,实现了整个编程流程的原子 I2C 命令;I2C 接口层是纯软件和硬件实现之间的桥梁,有助于将编程算法与硬件细节隔离开来,使算法可复用;物理层则是信号和接口引脚的完整硬件规范,包括驱动模式、电压电平、电阻等组件。
I2C 是由 Phillips Semiconductors(现 NXP Semiconductors)开发的行业标准通信接口,是一种同步、串行、8 位定向、双向 2 线总线,支持 128 个从设备。CY8CMBR3xxx 设备是 I2C 兼容设备,工作在从模式,第三方编程器必须按照标准规范实现 I2C 主设备。该设备的 I2C 接口具有 7 位寻址模式、最高 400 kHz 的比特率、无总线停滞以及 252 字节的 I2C 缓冲区等特点。
编程器与目标设备之间的硬件连接通过特定的引脚实现,仅需五个引脚即可与芯片通信,包括 SCL、SDA、VDD、VSS 和可选的 HW Reset(XRES)引脚。编程模式有复位模式、无复位模式和电源循环模式,不同模式适用于不同的应用场景。同时,I2C 总线需要外部上拉电阻,电阻值的选择需考虑电源电压、时钟速度和总线电容等因素。
编程器需要支持一系列硬件访问命令,如 I2C_WriteTransfer、I2C_ReadTransfer、ToggleReset、Power 和 Delay 等。这些命令构成了高级编程算法的软件基础,可被视为硬件抽象层,理论上上层的编程算法可以在不同的编程器硬件上复用。
编程流程由众多 I2C_Read 和 I2C_Write 传输命令组成,为了方便编写和理解编程算法,文档使用了易读的伪代码。定义了 I2C_Write 和 I2C_Read 伪命令,这些命令会自动检查当前事务的所有 ACK 状态,并通过名称返回单个状态,有助于保持编程脚本的简洁性。
编程 CY8CMBR3xxx 设备需要按顺序执行一系列步骤,包括获取芯片、检查硅 ID、编程闪存、验证闪存和释放芯片。任何一步失败,编程流程都应停止,并执行释放芯片步骤,以确保编程器和目标设备处于已知状态。
编程流程中包含一些常用操作,通过封装成子程序,使编程代码更加紧凑、易读。例如 WritePacket 和 ReadPacket 子程序,它们分别封装了 I2C_Write 和 I2C_Read API,会不断发送 I2C 请求,直到收到 ACK 信号。
Intel 十六进制文件记录是十六进制编码二进制数据的文本表示,每行记录由起始代码、字节计数、地址、记录类型、数据和校验和六个部分组成。不同的记录类型具有不同的含义,如数据记录、文件结束记录和扩展线性地址记录等。
I2C 接口是基于数据包的串行事务协议,一次完整的数据传输包括起始条件、地址、R/W 位、数据块和停止条件五个阶段。数据在 SDA 线上必须在时钟的高电平期间保持稳定,时钟信号由主设备生成,大多数从设备(包括 CY8CMBR3xxx)不支持时钟拉伸功能。
综上所述,CY8CMBR3xxx 设备的编程规范涵盖了多个方面的内容,从数据提取到通信接口,再到具体的编程算法,每个环节都至关重要。工程师们在进行相关设计和开发时,需要深入理解这些规范,以确保编程过程的顺利进行和设备的正常运行。你在实际应用中是否遇到过类似设备编程的问题呢?欢迎在评论区分享你的经验和见解。
全部0条评论
快来发表一下你的评论吧 !