当前位置:首页 > 工业控制 > 电子设计自动化

  I2C ISSP方式

  PSoC是赛普拉斯半导体生产的一种基于MCU的可编程片上系统,它集成了大量的可重新配置的数字/模拟模块来完成用户订制的数字/模拟功能。


  PSoC器件可以基于I2C协议实现在系统中串行编程(ISSP),Power-On模式下通过SDA/SCL和VDD/GND就能够编程整个代码空间,Reset模式下则是使用SDA/SCL和XRES/GND编程。在很多PSoC CapSense触摸按键应用中,如果改变了机械布局因而需要重新定义按键引脚,或者需要赋予新的按键触发行为,主机端通过集成ISSP协议,可以在需要的时候下载新的.hex代码到PSoC端,实现代码的现场快速升级。


  图1是ISSP编程流程图,首先使PSoC进入编程模式,校验其内部的Solicon ID,保证是对正确的PSoC编程,对PSoC内部的Flash块(64字节)逐一擦除/编程,并读出Flash内容进行比较;ISSP随后编程用户自定义的Flash块保护模式,每个Flash块可以被指定为W - 写保护 / R - 读保护 / U - 不保护 / F - 工厂更新;最后,每个Flash块的校验和被读出并计算出全部Flash空间的总校验和,如果与.hex文件中的总校验和一致,代码已经被成功升级。

  I2C Bootloader方式

  用户也可以使用标准的I2C系统接口,通过I2C Bootloader(I2C引导加载器)方式更新PSoC器件内的用户代码。从图2可以看出,整个Flash空间由红色的不可编程的Bootloader区(包括中断向量、重启动向量和Bootloader代码),灰色的可以现场编程的用户应用程序区(包括应用程序中断向量、Relocatable起始地址、用户代码和Bootloader API),以及黄色的Bootloader校验和区组成。PSoC复位时,Bootloader接管程序控制权,它会计算和校验用户代码的校验和,仅当匹配时才转到用户代码的首地址,开始运行用户代码。与ISSP方式不同,I2C Bootloader方式仅更新可以现场编程的用户代码区,Flash空间的其他区用于此方式的控制和校验。


  I2C Bootloader方式在数据传输时分三种命令格式,FF38是进入Bootloader命令,FF39是写Flash块命令,FF3B是退出Bootloader命令。图3是I2C Bootloader方式传输的头部下载数据,图4则是成功下载的最后数据。


  Bootloader方式工作时,需要更新的PSoC器件做为一个I2C Slave。图3中,第一行数据传输将进入Bootloader方式,它由0x70 - Slave 7bit地址0x38的写地址,需要忽略的两个前缀字节380a (Slave 7bit地址和后续字节长度),FF38命令和8个字节的Bootloader key组成。所有的Bootloader命令都必须包含正确的Bootloader key,否则将被Slave器件忽略。第二行由71 - Slave 7bit地址0x38的读地址和状态响应字节0x20组成,状态响应字节的其他值标识各种出错状态 - 02/Image verify error, 04/Flash checksum error, 08/Flash protection error, 10/Comm checksum error, 40/Invalid bootloader key, 80/Invalid command error.


  写Flash块命令传输了绝大部分数据量,除了最后一个块以外,其他都有相同的格式。图3中,写Flash块命令包含0x70, 需要忽略的两个前缀字节3810 (Slave 7bit地址和后续字节长度),FF39命令, Bootloader key,Flash块的块号,64字节数据,0x18 - 64字节数据的校验和,0x86 - 此传输78字节的校验和(包括FF, 39, Bootloader key, 块号, 64字节数据, 0x18)。仅在以上数据传输完后需要传输读地址0x71,并读出正确的状态响应字节0x20.


  写Flash最后块命令包含了一些特殊信息,参见图4,(0d, d4) 是随后直到(85, f4)的字节校验和,(08,80)是图2灰色用户代码区中可重定位中断矢量表的地址,(12,00)是图2灰色用户代码区中用户代码空间的开始地址,(3f,80)则是用户代码结束块的地址,(00,b7)是用户代码占用的块数量,(85,f4)是Bootloader计算的用户代码检验和,0xb5是以上64字节数据的检验和,0xbd是此传输78字节的校验和。

  通过PSoC Designer的用户模块实现I2C Bootloader方式   

PSoC Designer是功能全面的基于图形用户接口(GUI)的PSoC软件开发环境,它的用户模块可通过配置PSoC器件内部资源创建Timer、PWM、ADC/DAC,I2C等多种有用功能。一个用户模块包括硬件配置数据、启动代码、中断服务例程(可选)以及应用编程接口(API),这些API可对用户模块的各个方面进行即时控制。用户使用PSoC Designer中的BootLdrI2C用户模块可以很方便的实现启动时的引导载入(Bootloader)。

  用户先在项目中添加BootLdrI2C用户模块,然后选择“I2C for Bootloader Only”或“Full I2C API Support with Bootloader”;之后设置图五中的用户模块参数,这些参数定义了I2C的引脚和通信速率,Bootloader的I2C地址,用于其他I2C操作的地址,以及图2中各个存储区的参数。用户随后可以通过图6提供的“Boot Loader Tools”设置中断向量和重启动向量,编译项目后生成应用程序校验和,以及从hex 项目输出文件中生成一个可以升级PSoC器件的dld 下载文件。

  其它需要设置的包括在菜单Project -> Settings -> Linker中,设置Relocatable起始地址,在flashsecurity.txt中指定Flash块的访问属性——可以现场编程的区域需要设置为可写操作。

  在PSoC器件上加入I2C Bootloader功能后,我们还可以通过Cypress提供的I2C-USB Bridge工具通过PC下载更新代码到PSoC器件来验证以上设计。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭