您的位置 首页 方案

CY8C20xx6A的主机源串行编程

CY8C20xx6A的主机源串行编程-赛普拉斯的PSoC微控制器易于使用、灵活并具有一系列经济高效的可重新编程的模拟和数字资源。通过这些特性可以实现各种创意设计,例如使用板上主机处理器对PSoC进行串行编程。

赛普拉斯的PSoC微操控器易于运用、灵敏并具有一系列经济高效的可从头编程的模仿和数字资源。经过这些特性能够完结各种创意规划,例如运用板上主机处理器对PSoC进行串行编程。此办法用于现场装置或更新固件,乃至对PSoC彻底从头编程,以完结其他功用。

HSSP代码示例由赛普拉斯创立,旨在协助体系规划人员开端创立自己的串行编程软件。规划人员有必要最大极限地削减对该代码的修正,以保证其与特定的主机编程器兼容。该代码示例仅包括CY8C20xx6A系列的PSoC器材,具有高度抽象性。有关串行编程的更多信息,请参阅ISSP编程标准。本文归纳介绍了完结办法。协议详细信息和各个矢量的意义是专有信息,本文成心省掉了这些内容。

概述

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状况。以下列出了这些函数。大部分函数的用处不言自明,但在代码中均有记载。附录中也供给了阐明。

CY8C20xx6A的主机源串行编程

向RAM缓冲区中加载数据

HSSP代码将按次序从128字节缓冲区取出数据,以进行PSoC闪存区块编程。此进程从最低区块地址开端。对第一个区块进行编程后,同一个缓冲区将用于对后续闪存区块进行编程。

规划人员有必要依据数据来历(USB、RS-232、SD卡等)编写代码,以填充该缓冲区。关于所用的特定主机处理器,应编写以下两个函数:LoadProgramData()和fLoadSecurityData()。这些函数能够在ISSP_DRIVER_ROUTINES.C中找到,并标有“Processor Specific”(特定处理器)和“User Attention Required”(用户需求留意)。这些函数在原始状况下,会调用两个辅佐函数,向缓冲区加载伪测试数据,以进行调试。在终究版别中,请删去或注释掉这些调用句子。

修正闪存区块次序或数量

在某些情况下,有必要对闪存中的特定区域进行编程。例如专用于存储特征、校准或固件现场晋级的区域。这些特性一般经过EEPROM用户模块完结。可是,在某些景象下,假如代码空间受限,则能够在PSoC中直接编写这些特性,以节约代码空间。

您能够更改方针区块的开端地址,以及区块的编程次序。上述操作不会发生任何问题,因为每个编程次序均包括区块地址。可是,请记住以下几点:

■假如修正了编程循环,则有必要对验证循环运用相同的改变,不然验证将会失利。

■代码在运转进程中会累加校验和,并依据到其时的整个闪存查看校验和。假如您仅对闪存的某个区域进行编程,则应相应地设置变量iChecksumData。

运用内置测试点进行验证

要成功完结主机源编程,最关键因素之一是获取正确的擦除和写入脉冲宽度。为协助您完结此进程,在程序的重要方位完结了几个测试点(TP)调用。要启用此调试形式,在ISSP_DRIVER_SOUTINES.H中撤销对USE_TP #ifdef的注释。有几个函数与调试形式相关,它们与本文之前提及的引脚操作函数类似。体系规划人员有必要供给主机特定代码,以驱动引脚输出高电平、低电平,或切换引脚。

正确的调试进程需求监控TP和SDATA线,且有必要丈量擦除和编程脉冲。完结此意图的最佳方法是运用双踪示波器,并在TP通道的上升沿进行触发,使其进入单序列形式。

擦除脉冲宽度从数据突发的结尾开端丈量,到TP下降沿完毕,如图1所示。请留意,TP上升沿与数据突发结尾不在一条线上。可是因为TP引脚被驱高的时刻与主机开端宣布数据的时刻之间存在推迟开支,因而,TP上升沿预计会排成一条线。

CY8C20xx6A的主机源串行编程

图1.丈量擦除脉冲宽度

编程脉冲宽度亦是从数据突发的结尾开端丈量,到TP下降完毕。图2显现编程脉冲宽度丈量。与擦除脉冲宽度相同,TP信号的上升沿与数据突发的结尾也不在一条线上。

CY8C20xx6A的主机源串行编程

图2.丈量写入脉冲宽度

表1汇总了各种PSoC器材的抱负擦除和写入脉冲宽度。丈量值有必要在抱负值-3%到+15%的范围内。无法满意该要求将导致过错编程,并发生晦气影响,例如比指定标准更短的闪存数据保存时刻,以及比预期更少的闪存擦除和写入循环。

CY8C20xx6A的主机源串行编程

表1.CY8C20xx6A PSoC的擦除和写入脉冲宽度

约束

main.c最初部分的注释包括有用的重要信息,体系规划人员应细心考量。这些注释对HSSP代码的某些约束进行了阐明;不过,以下是简略摘要。

■串行编程只能在5℃和50℃的温度范围内进行。

■HSSP程序不支持1.8V以下的电压。

■编程进程仅在一个电压范围内完结。假如器材初始电压为5.0V,则整个进程有必要在5.0V范围内完结。

■SCLK的频率存在上限。器材数据手册的“交流电编程标准”部分指定了该频率,以符号FSCLK标出

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/102971.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部