打印
[STM8]

写书计划《无刷直流电机控制应用--基于STM8》现书 特惠见P12

[复制链接]
楼主: uet_cache
手机看帖
扫描二维码
随时随地手机跟帖
101
gxgclg| | 2013-3-29 23:35 | 只看该作者 回帖奖励 |倒序浏览
LZ的书写了多少了?

使用特权

评论回复
102
uet_cache|  楼主 | 2013-3-31 10:52 | 只看该作者
本帖最后由 uet_cache 于 2013-3-31 10:54 编辑

谢谢楼上两位关心。此书估计四月底写完。目前前两部分已写好,基本不会改动。四月份重点写应用章节。

三四五章目录有所改动。该三章的目录为:

3 STM8S硬件基础及实验例程3.1   STM8S产品概述
3.1.1      模块框图及功能外设
3.1.2       中央处理单元
3.1.3      Flash程序存储器和数据EEPROM
3.1.4      单线接口模块和调试模块
3.1.5      中断控制器
3.1.6     选项字节
3.2   STM8S硬件基础
3.2.1      STM8S最小系统
3.2.2       电源稳压电路
3.2.3      GPIO接口电路
3.2.4      AD转换电路
3.2.5      串行接口电路
3.2.6     STM8 EMC设计注意事项
3.3   时钟配置
3.3.1      STM8S时钟树
3.3.2      时钟配置实现
3.4   GPIO应用实验
3.4.1     实验要求
3.4.2     GPIO内部结构
3.4.3     相关寄存器配置
3.4.4     参考程序
3.5   模数转换器应用实验
3.5.1      实验要求
3.5.2     ADC方块图
3.5.3      ADC功能描述
3.5.4      相关寄存器配置
3.5.5      参考程序
3.6   定时器应用实验
3.6.1     实验要求
3.6.2     定时器概述
3.6.2     TIM1时基单元
3.6.3      相关寄存器配置
3.6.4     参考程序
3.7   串行接口应用实验
3.7.1     实验要求
3.6.2     UART框图
3.7.3      相关寄存器配置
3.7.4     参考程序
3.8   数据EEPROM存储器应用实例
3.8.1     实验要求
3.8.2     存储器组织结构
3.8.3       EEPROM编程模式
3.8.4     参考程序
2部分 无刷直流电机理论基础

4 无刷直流电机概述

4.1   常用电机分类及结构特点
4.1.1       异步电动机
4.1.2       直流电动机
4.1.3       步进电机
4.1.4       无刷直流电机
4.2   无刷直流电机的工作原理
4.2.1      三个基本定则
4.2.2      换相原理
4.2.3      工作原理
4.3 无刷直流电机转子位置传感器
       4.3.1       霍尔传感器
       4.3.2       光电编码器
4.4 无位置传感器的转子位置检测技术
       4.4.1      反电动势法
4.4.2      其它检测方法

4.5   无刷直流电机的数学模型
4.6   无刷直流电机的运行特性
       4.6.1       起动特性
       4.6.2       工作特性
4.6.3       机械特性
4.6.4       调速特性

4.6.5       转矩转速特性
4.7   无刷直流电机应用
       4.7.1       选择合适的电机参数
       4.7.2       典型的BLDC电机应用
5 无刷直流电机控制技术5.1无刷直流电机换相控制
5.1.1      六步梯形换相
5.1.2       BLDC换相电路
5.2.2      有感BLDC换相控制逻辑
5.2 无刷直流电机调压策略

5.2.1     晶闸管移相调压
5.2.2     DC/DC变换器调压
5.2.3      PWM换向调压
5.3无感BLDC的转子位置检测
5.3.1     无感BLDC换相
5.3.2     传统反电动势法
5.3.3      全数字反电动势法
5.4无感BLDC的“三段式”起动
5.5 PID控制原理
5.5.1     模拟PID控制原理
5.5.2     位置式PID算法
5.5.3      增量式PID算法
5.5.4      控制器参数整定
5.5.5      参数调整规则探索
5.6无刷直流电机转速单闭环控制
5.6.1      转速信号的采集和处理
5.6.2      电机启动及转速调节策略
5.7无刷直流电机转速电流双闭环控制
5.7.1      调节器参数工程设计方法
5.7.2     BLDCM双闭环系统计算实例及SIMLINK仿真

使用特权

评论回复
103
uet_cache|  楼主 | 2013-4-1 15:44 | 只看该作者
(今天学车理论搞了满分,:P)

(开始更新第三章)

3STM8S硬件基础及实验例程
STM8系列微处理器内部集成多种功能资源,如通用GPIO口资源、模数转换器资源、定时器计数器资源、串行通讯接口资源、内部EEPROM存储资源、IIC资源等等。本章以优易特电子公司开发的STM8S-RCT开发板为硬件平台基础,根据STM8S的常用资源配有多个实验例程,针对各种实验介绍了各种资源的工作原理、使用方法及编程测试步骤。
3.1  STM8S产品概述
不同STM8S产品系列,其存储器、寄存器、选项字节和外设定义有所不同,但差异较小。本小节,将以STM8S20X系列CPU为主,讲解STM8S产品的主要特性。用户如用其它STM8S系列芯片开发产品,具体定义请根据芯片型号查看相应数据手册。
STM8S20X高性能系列8位单片机提供大容量(从32K128K字节)的Flash程序存储器。
STM8S20X高性能系列所有的单片机提供下面这些优秀的性能:
v       更低的系统成本
─内部集成真正的EEPROM数据存储器,可以达到30万次的擦写周期。
─高度集成了内部时钟震荡器、看门狗和掉电复位功能。
v       高性能和高可靠性
─在24MHz CPU时钟频率下,系统的运算性能可达到20MIPS
─强大的I/O功能,拥有分立时钟源的独立看门狗。
─时钟安全系统。
v       缩短开发周期
─可根据具体的应用在通用的产品系列中选择具有合适的封装、存储器大小和外设模块的芯片。
─完善的文档和多种开发工具选择。
v       产品可延续性
─最新的技术打造的高水平的内核和外设。
─系列产品广泛适应2.95伏到5.5伏的工作电压。
              表3-1列出了STM8S20X高性能系列产品特点。
3-1 STM8S20X高性能系列产品特点
3.1.1   模块框图及功能外设
STM8S20X高性能系列芯片模块框图如图3-1
3-1 STM8S20X模块框图
不难看出,STM8S20X系列微处理器内部不仅有时钟控制器和电源管理模块,还有丰富的外设资源,如16位高级定时器TIM1,16位通用定时器,8位基本定时器,模数转换器,各种通讯接口等等。这里简单介绍几中常见的外设功能特性。更详细内容,请查看相关数据手册和编程手册。
1. 时钟控制器
时钟控制器将来自不同振荡器的系统时钟(fMASTER)连接到内核和外设,它也为低功耗模式管理时钟的选通,并确保时钟的可靠性。
特点:
v       时钟分频:为了在速度和电流消耗之间找到一个最佳的平衡点,可以通过一个可编程的预分频器来调整CPU和外设的时钟频率。
v       安全的时钟切换:通过一个配置寄存器,可以在运行的时候安全地切换时钟源。新的时钟源准备好之前时钟信号不会被切换。这个设计能够保证无故障地切换时钟。
v       时钟管理:为了减少功耗,时钟控制器可以关闭内核、每个外设或存储器的时钟。
v       主时钟源:4个不同的时钟源可用来驱动主时钟:1MHz24MHz高速外部晶振(HSEHigh Speed External crystal)、最高至24MHz的高速外部时钟(HSEuser-ext)、16MHz高速内部RC振荡器(HSIHigh Speed Internal RC oscilattor)和128KHz低速内部RCLSILow Speed Internal RC)。
v       启动时钟:复位之后,单片机默认运行在内部2MHz时钟下(HSI/8)。一旦代码开始运行,应用程序就可以更改预分频比例和时钟源。
v       时钟安全系统(CSSClock security system): 这个功能可以用软件打开。一旦HSE时钟失效,CSS可以自动地将主时钟切换到内部RC16MHz/8),并且可以选择产生一个中断。
v       可配置的主时钟输出(CCOConfigurable main clock output):应用程序可以控制输出一个外部时钟。
2. 电源管理
应用程序可以进入四种不同的低功耗模式来实现有效的电源管理。用户可以配置成任意模式,在最低的功耗、最快的启动和可用的唤醒源之间达到最佳的平衡。
等待模式(Wait mode):在此模式下,CPU停止工作,但是外设仍在运行。可以用内部中断、外部中断或复位来唤醒。
参考源开启的活跃停机模式:在此模式下,CPU和外设时钟停止工作。自动唤醒单元(AWUauto wakeup unit)按照设定好的间隔时间产生内部唤醒。主电压参考源保持供电,所以电流的消耗比参考源关闭的主动暂停模式较大,但是唤醒时间更短。可用内部AWU中断,外部中断或者复位来唤醒。
参考源关闭的活跃停机模式:此模式除了主电压参考源断电以外,其它皆与参考源开启的主动暂停模式相同,所以唤醒时间较长。
停机模式:此模式下单片机的功耗最低,CPU和外设的时钟都被关闭,主电压参考源断电。可用外部事件或中断唤醒。
3. 看门狗定时器
看门狗系统基于两个独立的定时器来为应用提供最可靠的安全保障,分别为窗口看门狗WWDG及独立看门狗IWDGWDG(看门狗)定时器可用选项设置字节或软件来激活。一旦激活,除非复位,否则用户程序不能够关闭看门狗。
窗口看门狗用来监测导致应用程序跳出了正常的执行顺序的软件错误,这种错误通常是外部的干扰或者没有考虑到的逻辑条件产生的。窗口功能用来调整看门狗的状态使其与应用程序达到完美的结合。应用软件必须在超时之前的限定时间窗口内刷新计数器。
独立看门狗外设用来解决硬件或软件故障导致的处理器失效。定时器使用128KHz LSI内部RC时钟源,因此,甚至CPU时钟失效它仍然能够保持工作。IWDG的时基范围从60μs1s之间。
4. 自动唤醒计数器
用来从主动暂停模式自动唤醒。时钟源:内部128kHz低频RC振荡器或外部时钟。LSI时钟可以从内部连接至TIM3的输入捕获1通道用于时钟校正。
5. 蜂鸣器
蜂鸣器功能通过BEEP引脚输出信号来产生声音。这个信号可在12或者4kHz中选择。
6. 16位高级定时器
这是一个为广范围控制应用而设计的高端定时器,带有互补输出、死区控制和中心对齐的PWM功能,这个领域的应用包括马达控制、照明和半桥驱动等。
特点如下:
v       带有16位预分频的16位递增、递减和双向(递增/递减) 自动重载计数器。
v       4个独立的捕获/比较通道(CAPCOM),可配置成输入捕获,输出比较,PWM产生(边沿或中心对齐模式)和单脉冲模式输出。
v       用来控制带有外部信号的定时器的同步模式。
v       强制定时器输出进入预定状态的Break输入。
v       可调整死区时间3个互补输出。
v       编码器模式。
v       中断源:3个输入捕获/输出比较中断,1个溢出/更新中断,1break中断。
7. 16位通用定时器
16位通用定时器(TIM2TIM3)具有以下特点:
v       16位向上计数和自动装载计数器。
v       15位的预分频器,分频系数可调整为132768之间的2的幂。
v       带有3个或者2个独立可配置的捕获/比较通道。
v       PWM模式。
v       中断源:2个或3个输入捕获/输出比较中断,1个溢出/更新中断。
8. 8位基本定时器
8位基本定时器具有8位自动装载可调整的预分频器,比例可选为1~128之间任意的2的幂。其时钟源为CPU时钟,且其中断源只有一个:溢出/更新中断。
9. 模数转换器
STM8S20X系列高性能产品包括一个10位连续渐近式模数转换器(ADC2),提供多达16个多功能的输入通道。具有下主要特点:
v       输入电压范围:0~VDDA
v       在8064脚封装芯片上带有专用的参考电压(VREF)引脚。
v       转换时间:14个时钟周期。
v       单次和连续的转换模式。
v       外部触发输入。
v       可用TIM1定时器触发信号(TRGO)触发。
v       转换结束(EOCEnd of conversion)中断。
10. 通信接口
STM8S20X系列芯片带有以下接口:
v       UART1:全功能UART,模拟SPILIN2.1主模式,智能卡模式,IrDA模式,单线模式。
v       UART3:全功能UARTLIN2.1/从模式。
v       SPI :全双工和半双工,10Mbits/s
v       I²C :最高至400Kbits/s
v       CANrev 2.0A,B 3个发送邮箱 可达1Mbits/s
更详细通信接口功能请详见相关数据手册。

使用特权

评论回复
104
uet_cache|  楼主 | 2013-4-3 12:28 | 只看该作者
这两天忙于第六章的软硬件调试,目前基本上调好了。
如无其它事,下午更新最新章节内容。

使用特权

评论回复
105
uet_cache|  楼主 | 2013-4-3 15:03 | 只看该作者
3.1.2   中央处理单元
STM8S是基于8位框架结构的微控制器,其CPU内核有6个内部寄存器,通过这些寄存器可高效地进行数据处理。STM8S的指令集支持80条基本语句及20种寻址模式,而且CPU6个内部寄存器都拥有可寻址的地址。如果想了解全部STM8S指令集,请参考STM8 微控制器家族编程手册
结构和寄存器:
v       哈佛结构。
v       3级流水线。
v       32位宽程序存储器总线 对于大多数指令可进行单周期取指。
v       两个16位寻址寄存器: X寄存器和Y寄存器。 允许带有偏移的和不带偏移的变址寻址模式和读—修改—写式的数据操作。
v       8位累加器。
v       24位程序指针 16M字节线性地址空间。
v       16位堆栈指针 可以访问64K字节深度堆栈。
v       8位状态寄存器 可根据上条指令的结果产生7个状态标志位。
寻址:
v       20种寻址模式。
v       用于地址空间内任何位置上的查询数据表的变址寻址方式。
v       用于局部变量和参数传递的堆栈指针相对寻址模式。
指令集:
v       80条指令,指令的平均长度为2字节。
v       标准的数据搬送和逻辑/算术运算功能。
v       8位乘法指令。
v       16位除8位和16位除16位除法指令。
v       位操作指令。
v       可通过对堆栈的直接访问实现堆栈和累加器之间的数据直接传送(push/pop)。
v       可使用XY寄存器传送数据或者在存储器之间直接传送数据。
3.1.3   Flash程序存储器和数据EEPROM
STM8S20X微处理器内部具有Flash程序存储器和数据EEPROM存储器,其特点如下:
v       最多至128K字节的大容量单电压Flash程序存储器。
v       最多至2K字节的真正的数据EEPROM
v       写同时读(RWWRead while write):向EERPOM中写数据同时可以执行程序存储器的程序。
v       用户选项字节区。
写保护(WPWrite protection)
为了避免由于软件故障导致的对Flash程序存储器和数据EERPOM的意外擦写,芯片提供了写保护功能。写保护分为两个等级。第一级写保护叫做MASSMemory Access Security System,存储器操作安全保障系统)。MASS始终有效并保护主要的Flash程序存储器,数据EEPROM和选项设置字节。如果需要执行IAPIn-Application Programming,在线编程),可以向控制寄存器中写入MASS关键字序列去掉写保护,然后应用程序就可以向数据EEPROM写入数据,或者修改主程序存储器或者设备选项设置字节。为了进一步保护一些特殊的UBCuser boot code,用户启动代码)存储器区域,可以打开二级保护。如图3-2所示。
3-2 FLASH存储器结构
ICP模式下,可以通过设置UBC选项字节,按页增减UBC区域的大小。这将程序存储器分成了两部分,主程序存储器:最多至128K字节减去UBC区域的大小;用户指定的启动代码(UBC):可配置最高至128K字节。
在线编程时UBC区域仍然保持写保护。也就是说,MASS关键字不能解锁UBC区域。这保护了用来存储启动程序,特殊的代码库,复位和中断向量,复位、IAP和通信程序的存储器区域。
读出保护(ROPRead-out protection)
读出保护功能阻止在ICP模式(和调试模式)下对Flash程序存储器和数据EEPROM存储器的读写操作。一旦读保护功能使能后,任何尝试改变其状态的操作都会将程序和数据存储器全部擦除。尽管没有保护被认为是完全不可**的,这个功能还是为通用的单片机提供了一个非常高等级的保护措施。
更多有关存储器组织情况请详见3.8.2节或数据手册。
3.1.4   单线接口模块和调试模块
单线接口模块(SWIMSingle wire interface module)和调试模块(DM,Debug module)允许非侵入式、实时的在线调试和快速的存储器编程。通过单线接口模块可以直接访问调试模块和对存储器编程,这个接口在设备运行的所有模式下都有效,最大的数据传输速率为145字节/毫秒。非侵入式调试模块近似于一个全功能的仿真器,通过影子寄存器可以实时地观测到存储器、外设和CPU的运行情况。
单线调试模块具有以下主要特性:
v       基于一个异步,高注入电流(8mA),漏极开路的双向通讯。
v       允许读写存储器空间的任意位置。
v       可读写CPU寄存器。
v       在运行中可对RAM和外设寄存器进行非侵入式读写。
v       器件复位有相应的复位状态指示位,请参考复位状态寄存器 (RST_SR)
v       时钟速度可选,请参考SWIM 时钟控制寄存器 (CLK_SWIMCCR)
SWIM引脚可用作普通I/O口,但如果用户还想使用该引脚做调试,则在使用上有一些限制。最安全的作法是在PCB板上提供一个跳线选择。如图3-3所示。
3-3 SWIM引脚连接图
在上电复位后,SWIM模块复位,然后进入OFF模式。
v       OFF: 在上电复位后的默认状态。SWIM不能用作普通I/O口。
v       I/O: 将全局配置寄存器 (CFG_GCR) 中的SWD位置位后进入该模式。在这种模式下,SWIM引脚可用作普通I/O口。一旦系统复位,SWIM模块重新回到OFF模式。
v       SWIM: 当在SWIM引脚上输入特定的序列时进入该模式。在这种模式下,调试工具通过SWIM引脚使用三种命令(SRST 系统复位,ROTF运行中读,WOTF运行中写)来控制STM8

使用特权

评论回复
106
uet_cache|  楼主 | 2013-4-6 10:17 | 只看该作者
3.1.5   中断控制器
中断控制器提供如下功能:
v       硬件中断的管理
–所有I/O引脚都具有外部中断能力,每一个端口都有独立的中断向量以及独立的标志。
–外设中断能力。
v       软件中断的管理(TRAP)
v       具有灵活的优先级和中断等级管理,支持可嵌套的或同级中断管理:
多达4个软件可编程的嵌套等级。
最多有32个中断向量,其入口地址由硬件固定。
2 不可屏蔽的事件:RESET, TRAP
1个不可屏蔽的最高优先级的硬件中断 (TLI)
v       基于如下资源的中断管理:
I1I0位于CPU的条件代码寄存器(CCR)
软件优先级寄存器 (ITC_SPRx)
复位向量地址0x008000位于程序空间的起始部分。对于具有启动ROM的型号,ST公司把复位初始化程序固化在ROM区中。
固定的中断向量地址位于程序空间映像的高位地址段(0x00 8004 to 0x00 807C),其地址顺序即为硬件的优先顺序。
1. 中断处理流程
中断屏蔽是通过CC寄存器的位I1和位I0以及设置每个中断向量(如表3-2)的软件优先级的ITC_SPRx来管理的。处理流程如图3-4所示:
3-2软件优先级
3-4中断处理流程
当一个中断请求必须被响应时:
a.    在当前正在执行指令结束之后,正常的操作被悬起;
b.    PCXYACC寄存器被自动压栈;
c.    根据ITC_SPRx寄存器中的值对应的中断服务向量,CC寄存器中的位I1I0被相应设置;
d.    通过中断向量载入中断服务子程序的入口地址,接着对中断服务子程序的第一条指令取址。 (参考中断映射表3-3)
中断服务子程序必须以IRET指令结束,该指令会把堆栈中的保存的寄存器内容出栈,同时由于运行IRET指令,位I1和位I0被重新恢复,程序也恢复运行。
同一时间可以有几个中断排队等待处理。中断响应根据如下两步来决定:
a. 最高软件优先级的中断被响应;
b. 如果几个排队的中断具有相同的软件优先级,那么最高硬件优先级的中断先响应。
当中断请求没有立即得到响应时,该中断请求被锁存;当其软件优先级及硬件优先级均为最高的时候,该中断被处理。
注意: 1.与软件优先级不同,每个中断的硬件优先级是唯一且互不相同的,这样就可保证一个时刻只有一个中断被唯一确定地处理。2.RESET, TLI TRAP 这个几个中断被认为是拥有最高的软件优先级来处理。3.一个TLI中断可中断除TRAPRESET之外的3级中断。
见图3-5了解更加详细的排队等待处理的中断服务过程。
3-5 优先级处理过程
2. 中断源
STM8中断控制器处理2种类型的中断源:
v       不可屏蔽的中断:RESETTLI TRAP
v       可屏蔽中断:外部中断或者内嵌的外设中断。
不可屏蔽中断源
不可屏蔽中断不会考虑CC寄存器的I1I0的状态(参见图3-4)。仅仅当TRAP中断发生的时候将PC X Y A CC 寄存器的内容压栈。相应的向量载入到PC寄存器中同时置位I1I0位禁止中断(3级优先级)
v       TRAP (不可屏蔽的软件中断)
当执行TRAP指令时就响应软件中断。它响应过程如图3-4所示的流程图。TRAP中断不能使处理器从停机(Halt)模式下退出。
v       RESET 复位
复位中断是STM8的软件和硬件中断的最高优先级,这也就是说,在复位程序的开始,所有的中断被禁止。必须通过RIM指令来使能它们。复位中断可以使处理器从停机(Halt)模式退出。
v       TLI最高等级的硬件中断
当在特定的 I/O边沿检测到在相应的TLI输入时将产生硬件中断。
注意: TLI中断服务子程序中禁止使用TRAP指令。
可屏蔽的中断源
对于可屏蔽中断,如果相应的中断被使能,而且如果在ITC_SPRx寄存器的中断优先级比当前正在执行的中断(根据CC寄存器的I1I0)的优先级高的话那么就可以被响应。如果上面2个条件中的任何一个不满足,那么该中断会被锁存并保持在等待状态。
v       外部中断
外部中断可以用来把MCU从停机(Halt)模式唤醒。外部中断触发方式的选择可以通过软件写控制外部中断控制寄存器(EXTI_CRx)来实现。
当多个连接到同一个中断向量的外部引脚中断被同时选定的时候,那么他们是‘逻辑或’的关系。当外部的电平触发中断被锁存后,如果该给定的电平一直保持到中断子程序结束,那么该电平信号将再次触发中断,除非在中断子程序中禁用该中断。
STM8S为外部中断事件专门分配了五个中断向量:
Port A 口的5个引脚:PA[6:2]
Port B 口的8个引脚:PB[7:0]
Port C 口的8个引脚:PC[7:0]
Port D 口的7个引脚:PD[6:0]
Port E 口的8个引脚:PE[7:0]
PD7 是最高优先级的中断源 (TLI)
为了产生中断,相应的GPIO端口必须被配置为中断使能的输入口。
中断的触发方式由外部中断控制寄存器1(EXTI_CR1)和外部中断控制寄存器2(EXTI_CR2)所配置,详见数据手册。
v       外设中断
大部分的外设中断会导致MCU从停机(Halt)模式下唤醒。见表3-3。当对应外设状态寄存器的中断标志位被置位,同时相应的外设控制寄存器的使能位被置位时将产生一个外设中断。清除一个外设中断的标准顺序是:在对状态寄存器的访问后对相关寄存器进行读或者写操作。当一个清除过程被执行之后相应的悬起中断(一个将被执行的中断)会丢失。
3-3 中断向量表
3. 中断和低功耗模式
所有的中断都可以使处理器从待机模式(Wait)退出。
仅有外部中断和另外一些特定中断才能使处理器从停机(Halt)模式退出(请参考表3-3)
MCU从挂起模式唤醒时候,如果有多个排队中断存在,那么第一个被响应的中断一定具有从挂起模式退出的能力。该选择是通过如图3-5所示的判断过程实现的。如果最高优先级的待相应的中断不能把设备从挂起模式唤醒的话,那么它将在后续被响应。
如果在执行HALT指令时,有一个内部或外部中断(例如时钟中断)发生,HALT指令会继续执行完毕,但这个中断会立刻调用唤醒进程。
这种情况下MCU实际上是从停机(Halt)模式被唤醒到运行模式,模式切换的延时为tWUH,详见数据手册。
4. 活动等级及低功耗模式的控制
MCU的活动等级的配置是通过编程CFG_GCR寄存器的AL位来实现。
该位是用来控制MCU的低功耗模式。在超低功耗的应用中,MCU大部分时间是运行在WFI/Halt模式中,仅在为执行特别任务的时候被唤醒(通过中断)。一些重复的任务可以直接在一个ISR(中断服务子程序)执行完成而不需要返回到主程序。为了处理这样情况,用户可以在进入低功耗模式(通过执行WFI/HALT指令)之前置位AL位,之后中断子程序返回之后就直接回到低功耗模式。由于相关寄存器保存只是在第一次中断会进行所以减少了中断服务程序运行的时间。
在一些非常简单的应用中所有的操作都可以只在ISR中执行。对于一些更复杂的任务,中断子程序要判断是否要启动主程序,可以通过重设AL的简单方式来实现。
例如:一个应用需要通过自动唤醒功能来每隔50ms唤醒一次来检测一些引脚/传感器/按键的状态。如果这些引脚大部分时间是不工作的,那么MCU可以直接回到低功耗模式而不需要运行主程序的。如果其中之一的引脚处于工作状态,那么ISR将要进行相应判断,通过重设AL位来启动主程序。

3-7.JPG (24.02 KB )

3-7.JPG

3-6.JPG (23.8 KB )

3-6.JPG

使用特权

评论回复
107
uet_cache|  楼主 | 2013-4-6 10:17 | 只看该作者
5. 同时和嵌套的中断管理  
STM8S提供2种中断管理模式:同时发生模式和嵌套模式。
v       同时发生中断管理模式
在该模式下,所有的中断的中断优先级都是3级,因此它们都是不可以被中断的(除了被TLIRESETTRAP中断之外)
硬件的中断优先级按如下顺序排列,从低到高的优先级是:MAIN, IT4, IT3, IT2, IT1, IT0, TRAP/TLI(同等优先级)以及RESET
3-6 所示是一个同时发生中断管理模式的例子。
3-6同时发生的中断管理
v       嵌套中断管理模式
在该模式下,允许在中断子程序中响应中断。一旦一个中断的优先级被设置低于3级时该模式就立即有效。
硬件优先级从低到高按如下顺序给定,即MAIN, IT4,IT3,IT2,IT1,IT0 TRAP
通过设定ITC_SPRx寄存器的相应的I1_xI0_x位来配置每一个中断向量的软件优先级。I1_x I0_x位具有和CC寄存器的I1 I0位相同的意思(见表3-4)
3-4向量地址映象对应软件的优先级位
向量地址
ITC_SPRx 寄存器位
8008h
I1_0 and I0_0 bits(1)
800Ch
I1_1 and I0_1 bits
80C7h
I1_29 and I0_29 bits
不可以将中断优先级设为级别0(I1_x=1, I0_x=0),在这种情况下,该中断的优先级将保持为先前的值。例如:如果先前的值是CFh,然后编程的值是64h,那么结果是44h
RESET TRAP 向量是没有软件优先级的。当两者的任何一个被响应时,CC寄存器的位I1I0两位都被置位。
注意: 在中断被响应时,如果位 I1 I0 被修改,那么设备将作如下处理: 如果一个中断 X仍然处在悬起状态(新的中断或者中断标志没有被清除)同时该新的优先级又比先前的优先级高的话,那么该中断 X会被重新响应。否则该中断的软件优先级在下一个中断请求( X中断的IRET之后)来之前保持不变。在中断子程序的执行过程中,执行 HALT, POP CC, RIM , SIM WFI指令会改变当前的软件优先级直到下一条IRET指令被执行或者先前提到的指令之一被执行。
3-7 嵌套中断管理
关于中断指令的介绍请详见数据手册。

使用特权

评论回复
108
cjhk| | 2013-4-6 19:22 | 只看该作者
写的怎么样了   呵呵  楼主   希望早点出来   呵呵

使用特权

评论回复
109
cjhk| | 2013-4-6 19:22 | 只看该作者
期待你的书籍   有机会  希望能送我一本   呵呵

使用特权

评论回复
110
uet_cache|  楼主 | 2013-4-6 21:03 | 只看该作者
呵呵,谢谢支持。绝不辜负大家的期望!

使用特权

评论回复
111
uet_cache|  楼主 | 2013-4-7 09:56 | 只看该作者
3.1.6   选项字节
选项字节包括芯片硬件特性的配置和存储器的保护状态,这些字节保存在存储器中一个专用的块内。除了ROPread-out protection,读出保护)字节,每个选项字节必须被保存两次,一个是通常的格式(OPTx)和一个用来备份的互补格式。
可以在ICP模式(通过SWIM)下访问表3-5EEPROM的地址来修改选项字节。选项字节也可以通过应用程序在IAP模式下运行的时候修改,但是ROPUBC选项只能在ICP模式(通过SWIM)下被修改。
3-5 选项字节表
不同芯片的选项字节描述不同。用户在使用选项字节时请根据芯片型号,参考其数据手册,并根据定义的选项字节描述进行配置。

使用特权

评论回复
112
uet_cache|  楼主 | 2013-4-10 10:08 | 只看该作者
( 这两天在跟出版社联系,出版社非要回购才出版。。。好伤人心啊。。。)

3.2  STM8S硬件基础
STM8S-RCT开发板选择STM8S207RBT6作为处理器,板上具有按键指示灯电路、稳压电路、串行接口电路、SWIM调试接口等功能。选择此板可完成基于STM8S的常用功能资源实验。图3-8STM8S-RCT开发板实物图。
3-8 STM8S-RCT开发板实物图
3.2.1 STM8S最小系统
64脚封装的STM8S207RBT6微处理器,最大工作频率可达24MHZ,内部具有64KBFLASH空间和4KBRAM空间。同时,还具有1536BEEPROM存储空间,擦写频率可达30万次,方便用户掉电存储各种所需参数。
STM8S微处理器外设资源丰富。STM8S207RBT6具有1610AD转换通道、有2个普通16位定时器、18位定时器和116位高级定时器、2UART通讯接口。1SPI接口最高到10Mbit/s1I2C接口最高到400Kbit/s。该处理器 I/O口多达52个,包括16个高吸收电流输出,非常强健的I/O设计,对倒灌电流有非常强的承受能力。
STM8S处理器具有单线接口模块(SWIM),可以方便地进行在线编程和非侵入式调试。芯片工作电压范围为2.955.5V
STM8S207RBT6引脚定义图如图3-9所示。
3-9 STM8S207RBT6引脚图
STM9S207RBT6最大支持外部24MHZ晶振,同时内部有16MHZ RC振荡器,具体时钟配置将在3.3节讲解。
STM8S最小系统电路图如图3-10所示。图中包括上电复位电路、按键复位电路、外部晶振电路和SWIM调试接口电路。其中LD11为电源指示灯。
3-10 STM8S最小系统电路图
3.2.2 电源稳压电路
STM8S工作电压可稳定在3.3V,采用AMS1117-3.3V稳压器件。电源稳压电路图如图3-11所示。
3-11 电源稳压电路图
使用稳压芯片,当3引脚VIN输入为5V时,2VOUT输出稳定3.3V电压,为CPU提供工作电压。

使用特权

评论回复
113
uet_cache|  楼主 | 2013-4-10 10:09 | 只看该作者
3.2.3 GPIO接口电路
STM8S-RCT开发板具有1个用户键、1个LED发光二极管和一个蜂鸣器。其接口电路图如图3-12所示。
3-12 GPIO接口电路图
   
PE7为低电压平时LD12指示灯亮,当PE7为高电压时,LD12指示灯灭。通过对STM8S芯片编程,改变PE7输出口的电平状态,可控制LD12指示灯的亮灭。
PG2作为按键输入口,当B2键未按下时,STM8SPG2的电平状态为高电平;当B2键按下时,PG2电平状态为低电平。因此,可通过对STM8S芯片编程,读取PG2电平状态,以判断B2键按下与否。
蜂鸣器通过三极管8550驱动。当PF0输出低电平时,三极管导通,蜂鸣器响。当PF0输出高电平时,三极管未导通,蜂鸣器不响。因此,通过对STM8S芯片编程,改变PF0输出口的电平状态,可控制蜂鸣器鸣叫。
3.2.4 AD转换电路
STM8S-RCT开发板具有1路电位器接口,方便用户做AD转换实验。其接口电路图如图3-13所示。
3-13AD转换电路图
旋转电位器,PF7端口电压会在0V和3.3V间变化。因此,通过对STM8S芯片编程,使用内部集成AD转换器功能,读取当前PF7端口电压值。
3.2.5 串行接口电路
STM8S-RCT开发板具有1MAX232接口,方便用户做串行通讯实验。其接口电路图如图3-14所示。
3-14串行接口电路图
    其中,USART1_TX连入STM8S微处理器的PA5引脚,USART1_RX连入STM8S微处理器的PA4引脚。STM8S的PA5和PA4引脚输入输出是TTL电平,通过MAX232电路,转换成符合RS232规范的电平标准。通过串口线,连接开发板上的CN1 串口DB9母头与电脑RS232端口,可以实现开发板与上位机的通讯。J5在开发板上留为排针,方便用户测试。

使用特权

评论回复
114
智达| | 2013-4-10 16:20 | 只看该作者
有针对性。建议,每章之后就把 参考资料列举一下。

使用特权

评论回复
115
cjhk| | 2013-4-10 18:33 | 只看该作者
书籍现在写的怎么样了   楼主   应该没什么问题了吧  呵呵   **就是胜利   呵呵

使用特权

评论回复
116
snakeemail| | 2013-4-10 22:24 | 只看该作者
去掉
目录第1部分 STM8系列微处理器应用基础
第1章 STM8微处理器概述
1.1   STM8S系列   
1.1.1      STM8S主要特点
1.1.2      STM8S主要应用
1.2   STM8L系列
1.2.1      STM8L主要特点
1.2.2      STM8L主要应用
1.3   STM8A系列
1.3.1      STM8A主要特点
1.3.2       STM8A主要应用
1.4   STM8芯片选型
1.4.1      芯片选型表
1.4.2     STM8微控制器网站   
第2章STM8微处理器开发环境
2.1   STM8集成开发环境简介   
2.1.1       ST TOOLSET
2.1.2       COSMIC
2.1.3       IAR
2.2   STM8开发工具   
2.2.1      ST-LINK
2.2.2      STX-RLINK
2.3   STM8程序设计   
2.3.1      STVD汇编语言程序设计   
2.3.2      COSMIC C语言程序设计   
2.3.3       COSMIC C语言相关说明
2.3.4      IAR C语言程序设计         
2.4   STM8烧录
2.4.1       使用STVD烧录
2.4.2       使用STVP烧录   
2.5   STM8S 固件库
2.5.1      固件库简介
2.5.2      压缩包描述
2.5.3      文档和库规范
2.5.4      使用举例      
第3章 STM8S硬件基础及实验例程
3.1   STM8S硬件基础
3.1.1      STM8S最小系统
3.1.2      电源稳压电路
3.1.3      GPIO接口电路
3.1.4      AD转换电路
3.1.5      串行接口电路
3.1.6      STM8 EMC设计注意事项
3.2   时钟配置
3.2.1      STM8S时钟树
3.2.2      时钟配置实现
3.3   GPIO应用实验
3.3.1     实验要求
3.3.2     GPIO内部结构
3.3.3     相关寄存器配置
3.3.4     参考程序
3.4   模数转换器应用实验
3.4.1      实验要求
3.4.2      ADC方块图
3.4.3      ADC功能描述
3.4.4      相关寄存器配置
3.4.5      参考程序
3.5   定时器应用实验
3.5.1     实验要求
3.5.2     定时器概述
3.5.2     TIM1时基单元
3.5.3     相关寄存器配置
3.5.4     参考程序
3.6   串行接口应用实验
3.6.1     实验要求
3.6.2     UART框图
3.6.3     相关寄存器配置
3.6.4     参考程序
3.7   数据EEPROM存储器应用实例
3.7.1     实验要求
3.7.2     存储器组织结构
3.7.3     EEPROM编程模式
3.7.4     参考程序

使用特权

评论回复
117
w527824232| | 2013-4-11 16:34 | 只看该作者
支持下

使用特权

评论回复
118
ABCDELF| | 2013-4-11 18:55 | 只看该作者
加油,其实书就应该工程师来写, 而不是泛泛而谈的所谓的教授来写


楼上正解啊

使用特权

评论回复
119
ABCDELF| | 2013-4-11 18:56 | 只看该作者
教授就会扯淡

使用特权

评论回复
120
uet_cache|  楼主 | 2013-4-12 11:21 | 只看该作者
回116楼:
书箱是基于STM8S的,那部分是必需的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则