STM8-SWIM通信协议.pdf
- 文档编号:3218514
- 上传时间:2022-11-20
- 格式:PDF
- 页数:19
- 大小:1.01MB
STM8-SWIM通信协议.pdf
《STM8-SWIM通信协议.pdf》由会员分享,可在线阅读,更多相关《STM8-SWIM通信协议.pdf(19页珍藏版)》请在冰豆网上搜索。
SmallmountSTM8应用笔记应用笔记.1STM8SWIM通信协议和调试模通信协议和调试模块块STM8的SWIM通信协议(communicationprotocol)和调试模块介绍本手册为需要建立STM8微控制器系列的编程,测试或调试工具的开发者而写。
它解释了STM8内核的调试结构。
STM8的调试系统包括以下两个模块:
DM:
调试模块;SWIM:
单总线接口模块。
相关文档(Relateddocumentation):
HowtoprogramSTM8SandSTM8AFlashprogrammemoryanddataEEPROM(PM0051)(STM8Aversionisnotpublishedyet)HowtoprogramSTM8LFlashprogrammemoryanddataEEPROM(PM0054)专业术语:
DM:
DebugModeSWIM:
SerialWireInterfaceModuleWFI:
WaitForInterruptWFE:
WaitForEventSmallmountSTM8应用笔记应用笔记.2STM8SWIM通信协议和调试模通信协议和调试模块块目录1.调试系统概述.12.通信层.23.单总线接口模块(SWIM).33.1操作模式.33.2SWIM入口序列.33.3位格式.53.4SWIM通信协议.63.5SWIM命令.73.6SWIM通信复位.83.7CPU寄存器访问.83.8在停止模式下的SWIM通信.93.9物理层.93.10STM8的SWIM寄存器.94.调试模块(DM).124.1介绍.124.2主要特点.124.3调试.124.4断点解码表.144.5软断点模式.144.6时序描述.144.7中止(abort).154.8数据断点.154.9指令断点(Instructionbreakpoint).154.10单步模式.164.11应用笔记.164.12DM寄存器.165.常见问题解答.175.1时序相关.17SmallmountSTM8应用笔记应用笔记.1STM8SWIM通信协议和调试模通信协议和调试模块块1.调试系统概述调试系统概述STM8的调试系统接口允许一个调试或编程工具,通过一根基于开漏接口的单总线双向(bidirectional)通信线连接到MCU。
它提供了非抢占式(non-intrusive)读写方式去访问RAM和外设,在程序执行期间(duringprogramexecution)。
方框图(Theblockdiagram)如所示。
调试模块使用设备中的两个内部时钟源,LSI低速内部时钟(通常范围为20KHz-200KHz,视产品而定)和HSI高速内部时钟(通常范围为10MHz-25MHz,视产品而定)。
必要时,时钟会自动启动。
SmallmountSTM8应用笔记应用笔记.2STM8SWIM通信协议和调试模通信协议和调试模块块2.通信层通信层SWIM是一个基于异步(asynchronous),强灌电流(highsink)(8mA),开漏,双向通信(bidirectionalcommunication)的单总线接口。
当CPU正在运行,出于调试目的,SWIM允许非抢占式(non-intrusive)读写访问,去执行on-the-flay到RAM和外设寄存器。
此外(Inaddition),当CPU停止(stalled),SWIM允许读写访问,去执行MCU存储空间的其它部分(数据EEPROM和程序存储器)。
CPU寄存器(A,X,Y,CC,SP)也可以被访问。
这些寄存器被映射在存储器中,而且可以以相同的方式去访问。
仅仅当SWIM_DM位置一时,寄存器,外设和存储器才被访问。
当系统处于停止(HALT),WFI或者读保护模式,SWIM_CSR寄存器的NO_ACCESS标志将置一。
在这种情况下,禁止(itisforbiddento)执行任何的访问,这时因为部分设备可能没有时钟驱动,读访问返回无用的数据(garbage),或者写访问不成功。
SWIM可以执行MCU软件复位操作SWIM引脚可以作为标准IO口用于MCU的目标应用,如果你也想将他用于调试,IO口功能将会有一些限制(somerestrictions)。
最安全的方式是在PCB设计时提供选择项(astrapoption)。
SmallmountSTM8应用笔记应用笔记.3STM8SWIM通信协议和调试模通信协议和调试模块块3.单总线接口模块单总线接口模块(SWIM)3.1操作模式操作模式上电复位后,SWIM复位,并且进入它的OFF模式。
1.OFF:
在此模式下,SWIM引脚一定不能在应用中用作I/O口。
等待SWIM入口序列(entrysequence)或者应用软件打开I/O模式。
2.I/O:
软件应用程序设置内核配置寄存器(CFG_GCR)的SWIM禁能位(SWD)(SWIMdisable),可以进入此状态。
在此状态下,用户应用程序可以使用SWIM引脚作为标准I/O引脚,仅有的缺陷是无法使用该引脚的内置(bulit-in)调试功能。
一旦复位(Incaseofareset),SWIM重新返回OFF模式。
3.ACTIVE:
当处于OFF状态,SWIM引脚检测到一个特殊的序列,可以进入此模式。
在此状态下,通过SWIM引脚,主设备工具使用3个命令去控制STM8。
(SRSTSystemReset,ROTFReadOnTheFly,WOTFWriteOnTheFly)注意:
请注意,SWIM可以被设置为Active,而且可以在设备处于复位状态(NRST引脚被强制拉低)时进行通信。
3.2SWIM入口序列入口序列POR(上电复位)后,SWIM一直处于OFF模式,SWIM引脚采样用于检测入口序列。
要实现这一机制,内部低速RC时钟在POR后自动运行,并且在SWIM处于OFF模式下一直保持。
如果SWIM引脚检测到入口序列之前,SWDbitisset,SWIM将工作在I/O模式。
一旦SWIM处于ACTIVE模式,写该位是无效的,并且SWIM仍然处于ACTIVE模式。
如果应用程序使用SWIM引脚作为I/O模式,应用程序会在软件代码的初始化部分将SWIM引脚设置为I/O模式(一般地,会在复位后执行)。
尽管在这种状态下,仍然有可能SmallmountSTM8应用笔记应用笔记.4STM8SWIM通信协议和调试模通信协议和调试模块块使得SWIM引脚处于ACTIVE模式,方法是:
强制拉低RESET引脚,保持RESET引脚为0持续(duration)到SWIM入口序列完成。
在复位期间或者应用程序运行期间,只要SWIM处于OFF模式,任何时候,SWIM入口序列都会被检测。
如果SWIM引脚和复位引脚都被复用(aremultiplexed)为I/O口,那么进入SWIM的ACTIVE状态的方法是:
MCU设备掉电,再上电,并且保持MCU复位直到SWIM入口序列发送结束。
SWIM激活时序图如所示,图中每一段的描述如下。
1.为了激活SWIM,SWIM引脚必须强制拉低16s(在HSI下最少64个脉冲)。
2.第一个脉冲后(总线当前为0),在SWIM的ACTIVE状态入口处,SWIM检测一个特殊序列以保证鲁棒性(guaranteerobustness).SWIM入口序列式:
4个1KHz的脉冲,紧接着4个2KHz的脉冲。
序列的频率很容易被内部RC检测到。
入口序列如所示。
注意序列以SWIM引脚拉高作为开始和结束标志。
3.入口序列后,SWIM进入ACTIVE状态,HSI振荡器(oscillator)自动开启。
4.延时过后,SWIM发出一个同步帧给主机。
同步帧描述:
MCU的SWIM总线输出低电平,维持128个HSI时钟脉冲表示发出一个同步帧,用于调试主机对RC的测量。
一个高级调试主机可以重新校准(re-calibrate)它的时钟,来适应(adapt)MCU内部RC的频率。
5.开始SWIM通信之前,SWIM线必须释放为高电平,以保证SWIM准备好通信(至少维持300ns)。
6.写0A0H到SWIM_CSR寄存器:
Bit5置一,允许访问整个存储器和SRST命令Bit7置一,掩盖内部复位源7.释放加载配置字节的序列的复位。
等待1ms以保持稳定。
8.一旦配置字节加载发生,且稳定时间到,CPU分段(inphase8):
STM8S停止,且HSI=16MHz(详见STM8S数据手册)SWIM时钟为HSI/2=8MHzSWIM在激活状态,在低速位格式(如所示)SmallmountSTM8应用笔记应用笔记.5STM8SWIM通信协议和调试模通信协议和调试模块块3.3位格式位格式位格式采用的是一种归零格式(Return-To-Zeroformat),它允许位同步。
两个通信速率可选。
在SWIM激活状态下,选择的是低速通信速率。
通过设置SWIM_CSR寄存器的HS位置一,选择高速通信速率。
当在复位阶段(duringtheRESETphase)进入SWIM模式时,配置项可能已经从非抢占式存储器中加载到相应的寄存器中。
任何内部或外部的复位都会触发加载配置项。
为了确保适当的系统行为,HS位直到配置项加载完成后才能置一。
在配置项加载结束后,SWIM_CSR寄存器的HSIT位被硬件置一。
3.3.1高速位格式高速位格式10个HSI振荡器脉冲生成一位。
位格式为:
2个时钟脉冲的0电平,接着8个时钟周期的1电平。
8个时钟脉冲的0电平,接着2个时钟周期的1电平。
当SWIM收到一包数据时,它将解码:
1:
检测到小于或等于4个连续低电平。
0:
检测到大于或等于5个连续低电平。
3.3.2低速位格式低速位格式22个HSI振荡器脉冲生成一位。
位格式为:
2个时钟脉冲的0电平,接着20个时钟周期的1电平。
20个时钟脉冲的0电平,接着2个时钟周期的1电平。
SmallmountSTM8应用笔记应用笔记.6STM8SWIM通信协议和调试模通信协议和调试模块块当SWIM收到一包数据时,它将解码:
1:
检测到小于或等于8个连续低电平。
0:
检测到大于或等于9个连续低电平。
3.4SWIM通信协议通信协议当处于ACTIVE模式时,通信可以被主机或设备初始化。
每一个字节或命令之前都有一位头,用于仲裁主机和设备发起的通信。
主机的头是“0”,由于是开漏结构,可用于在仲裁时取得优先权。
若无数据传输,主机就可以开始传输。
主机发送的每个命令有以下组成:
1个命令(ROTF,WOTForSWRST)包含:
头:
1Bit“0”b2-b0:
3-bit命令pb:
奇偶位(paritybit):
b(i)异或ack:
应答位(1bit“1”)。
若检测到错误或为准备好,接收者必须发送非应答(NACK:
1bit“0”)若干数据包(WOTF下)包含:
头:
1Bit“0”b2-b0:
8-bit数据pb:
奇偶位(paritybit):
b(i)异或ack:
应答位(1bit“1”)。
SmallmountSTM8应用笔记应用笔记.7STM8SWIM通信协议和调试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM8 SWIM 通信协议