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

  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器件来验证以上设计。

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

    本文主要介绍的就是基于DM642的视频采集处理系统中I2C模块的正确初始化,以及通过I2C总线正确地对视频解码芯片SAA7115的寄存器读/写程序。   1 I

关键字: dm642 i2c 视频采集

    串行总线和并行总线相比具有结构简单、占用引脚少、成本低的优点。常见的串行总线有USB、IEEE1394、I2C等,其中I2C总线具有使用简单的特点,在单片机、串行E2P

关键字: vhdl i2c 串行总线

  Cypress Semiconductor宣布其电容式触控元件出货量突破10亿颗,其中包括Cypress TrueTouch触控萤幕控制器、取代机械式按钮、滑桿、开关等元件的CapSense

关键字: 赛普拉斯 psoc 音乐播放器 电容式触控元件

  最新低成本、低功耗PSoC 4系列采用ARM® Cortex™-M0内核,   同时拥有PSoC的可编程性、模拟性能和高集成度   赛普拉斯半导体公司日前

关键字: 4 capsense psoc 电容式触摸技术 赛普拉斯

  赛普拉斯半导体公司日期宣布,KORG公司在其新一代KAOSS PAD手持式合成器产品中,选用了赛普拉斯的PSoC® 3可编程片上系统。KORG Kaossilator 2 和 Min

关键字: psoc 赛普拉斯 korg公司

  触控感测市场领导厂商Cypress Semiconductor宣布音乐硬件大厂KORG公司选用PSoC3可编程系统单芯片打造其新系列KAOSS PAD掌上合成器产品。KORG公司的kaoss

关键字: Cypress psoc 触控感测 触控技术 触控界面 控制界面

  一、项目概述   1.1 引言   普通的闹钟只具有时间显示和语音提醒功能,若设想一种闹钟不仅可以进行时间显示,而且到达设定的闹钟时间时可以在表盘上显示相关的事务提醒,那么闹

关键字: LED psoc 便携设备

  赛普拉斯半导体公司日前宣布,其高集成度单芯片低功耗蓝牙解决方案目前推出具有新封装方式和温度范围的产品。PSoC® 4 BLE可编程片上系统和PRoC™ BLE可编程片上射

关键字: 4 ble psoc 蓝牙 赛普拉斯

位于马里兰州盖瑟斯堡的生物技术公司Hememics计划在今年年底前完成美国食品和药物管理局(FDA)对新冠病毒检测仪的临床试验。这款仪器能够在60秒内测定被检测者是否感染新冠病毒。该产品采用赛普拉斯提供的灵活且功能丰富的...

关键字: psoc 微控制器 新冠病毒检测仪

澳大利亚联邦政府以新加坡使用的类似方案为蓝本,推出用来追踪新冠病毒传播的新款蓝牙手机应用。然而Geoff Edwards博士知道还有更有效的方法来解决这个问题。Edwards是一位化学物理学家,也是Applied Res...

关键字: psoc 物联网 lora无线技术
关闭
关闭