EDN China > 设计实例 > 嵌入式系统 > MCU(单片机应用) > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

CY8C20xx6A的主机源串行编程

Chris Hammer?? Cypress应用工程师?? 2013年05月16日 ?? 收藏0
赛普拉斯的PSoC微控制器易于使用、灵活并具有一系列经济高效的可重新编程的模拟和数字资源。通过这些特性可以实现各种创意设计,例如使用板上主机处理器对PSoC进行串行编程。此方法用于现场安装或更新固件,甚至对PSoC完全重新编程,以实现其他功能。

HSSP代码示例由赛普拉斯创建,旨在帮助系统设计人员开始创建自己的串行编程软件。设计人员必须最大限度地减少对该代码的修改,以保证其与特定的主机编程器兼容。该代码示例仅涵盖CY8C20xx6A系列的PSoC器件,具有高度抽象性。有关串行编程的更多信息,请参阅ISSP编程规范。本文概括介绍了实现方法。协议详细信息和各个矢量的含义是专有信息,本文故意省略了这些内容。

概述

HSSP代码示例具分为四个主要部分:主函数、各编程步骤的子函数、低层I/O函数和定义文件。系统设计人员需要对代码进行的直接操作是通过#define设置某些属性,以提供用编程数据填满128字节缓冲区的代码,以及主机I/O低层驱动程序。

PSoC器件可通过两种不同的模式进行编程:复位模式和重启模式。复位模式是首选编程模式,仅在系统采用外部供电时使用。在这种情况下,目标PSoC上的XRES引脚将于流程结束时切换,使其跳出编程模式,并恢复正常操作。在重启模式下,主机微处理器将切换PSoC电源的开关。

在两种编程模式下,主机均需要三个I/O引脚。在复位模式下分别为串行数据(SDATA)、串行时钟(SCLK)和外部复位(XRES)引脚,在电源循环模式下则为SDATA、SCLK和PSoC电源(PWR)引脚。这些引脚通过软件控制。

主机处理器上的SDATA引脚必须为双向引脚。主机必须能够更改该引脚的属性,以便用其向PSoC发出信号、将其释放到High Z状态,以及从该引脚读取信号。

属性选择

设计人员必须设置以下两个属性:标签和说明。要进行此设置,可以对ISSP_DIRECTIVES.H文件中的某些#define进行注释或取消注释。这些#define标有“User Attention Required”(用户需要注意)标签,非常明显,很容易找到。您还可以进行页面搜索,查找单个标签。每个属性的说明及其标签将列于属性下方:

属性:编程模式

标签:PROGRAMMING MODE(编程模式)

说明:如果采用的是重启模式,则应对该#define进行注释。如果采用的是复位模式,则应取消注释该#define语句。

属性:目标PSoC器件

标签:TARGET PSOC(目标PSOC)

说明:在此部分中选择目标CY8C20xx6A PSoC。在任何给定情况下,均只能启用一个器件,所有其他的器件均应注释掉。低层驱动程序修改。

设计人员根据主机特定代码,以操作在对目标PSoC进行编程时所涉及的引脚。这些API可以在ISSP_DRIVER_ROUTINES.C找到,并标有“Processor Specific”(特定处理器)和“User Attention Required”(用户需要注意)。

端口位掩码:对于使用的特定主机处理器,必须调整四个端口位掩码。请注意,虽然要设置四个位,但根据所用的编程方法,只需在编程过程中用到以下三个位——复位模式下为SDATA、SCLK和XRES;电源循环模式下为SDATA、SCLK和PWR。

Delay(n)函数:调整此函数,使while循环的每次迭代均保持至少1μs。循环时间通常没有上限。但是,循环时间越长,对目标的编程时间就越长。例如,如果主机微处理器也是PSoC,每次迭代约为1μs,开销为3μs。因此,该函数将产生n+3μs的延迟,其中n是传递给该函数的参数。要调整主机处理器的延迟时间,请修改ISSP_DELAYS.H中的#define。

端口位操作函数:这些函数将控制主机引脚,以产生PSoC编程所需的信号。它们可以驱动引脚输出高低电平,也可以将引脚释放至High Z状态。以下列出了这些函数。大部分函数的用途不言自明,但在代码中均有记录。附录中也提供了说明。

《电子设计技术》网站版权所有,谢绝转载


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

CY8C20xx6A? 主机源串行编程?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈