You are on page 1of 40

如何开始STM8S

系列单片机的开发
2009年ST MCU巡回演讲

北京、深圳、上海、台北、
青岛、重庆、南京、哈尔滨、
武汉、福州、西安
主要内容

™ STM8S系列单片机简介

™ 一步一步开始STM8S系列单片机的开发

™ 基于STM8S的电容触摸式按键方案介绍

STMicroelectronics Sept. 14~25, 2009 2


STM8S框图

STMicroelectronics Sept. 14~25, 2009 3


STM8S产品线介绍

STMicroelectronics Sept. 14~25, 2009 4


一步一步开始STM8S系列单片机的开发

STMicroelectronics Sept. 14~25, 2009 5


集成开发环境STVD(1) Æ 下载
http://mcu.st.com
http://www.st.com/mcu

STM8S系列相关的资料和
软件都可以在这个页面找到

STMicroelectronics Sept. 14~25, 2009 6


集成开发环境STVD(2) Æ 安装

STMicroelectronics Sept. 14~25, 2009 7


COSMIC C编译器(1) Æ 下载
http://www.cosmicsoftware.com/download.php

请仔细填写注册信息

选择提交信息后,会弹出软件下载链接

STMicroelectronics Sept. 14~25, 2009 8


COSMIC C编译器(2) Æ 安装(1)

STMicroelectronics Sept. 14~25, 2009 9


COSMIC C编译器(2) Æ 安装(2)
发送此邮件后,可以收到
COSMIC 公 司 发 出 的license.lic
文件。将收到的License.lic文件
复制到COSMIC安装路径下的
License文件夹下即可。

详细填写注册信息以便获
得免费的16K以下版本的
License.

STMicroelectronics Sept. 14~25, 2009 10


安装在线调试工具

注:由于STVD自带ST-Link的驱
动,所以无须另行安装。
如果要使用Rlink, 则需要手动安
装Rlink的驱动。

STMicroelectronics Sept. 14~25, 2009 11


STM8S项目开发举例

STMicroelectronics Sept. 14~25, 2009 12


STM8S硬件设计 Æ以STM8S105S4-PKT评估板为例
以STM8S105S4-PKT评估板为例

J1 U1 L78M05CDT VDD
1 1 IN OUT 3 VDD
3 C1 C3 C9 CN1
2 GND C4
10u/25V C2

GND4
10uF/16V 10uF/16V 1
PWR2.5 104P 104P 2 SWIM
3 RESET#
4
SWIM Con_2
C14 B1
R12 RESET# 2 1
100
102P 3 4
C13 Key
R11
VDD
C12 4K7
104P U2
STM8S105Sx
R10 1 NRST PE0/CLK_CCO 36 PE0
20pF 2 PA1/OSCIN
X1 1M
3 PA2/OSCOUT PE1/I2C_SCL 35 PE1
8MHz PE2/I2C_SDA 34 PE2
C10
PA4 9
PA5 10 PA4 PE5/SPI_NSS 23 PE5
20pF C17 LOAD 11 PA5
PA6 PE6/AIN9 22 PE6
105P VCAP 6 VCAP
PB0 21 PB0/AIN0
PB1 20 PB1/AIN1
PB2 19 PB2/AIN2
PB3 18 PB3/AIN3
key1 17 PB4/AIN4
key2 16 PB5/AIN5
key3 15 PB6/AIN6
Shield 14 PB7/AIN7
PG0 32 PG0
PC1
24 PC1/TIM1_CC1/LINUART_CK PG1 33 PG1
PC2
25 PC2/TIM1_CC2
PC3
26 PC3/TIM1_CC3
PC5 27 PC5/SPI_SCK
PC6 30 PC6/SPI_MOSI
PC7 31 PC7/SPI_MISO
LED3 37
VDD SWIM 38 PD0/TIM3_CC2
PD1/SWIM
LD2 LED2 39 PD2/TIM3_CC1
2 1 R16 LED1 40 PD3/TIM2_CC2
R7 1K Beeper 41
10K UART_TX42 PD4/TIM2_CC1/BEEP
UART_RX43 PD5/LINUART_TX
R31 PD7 44 PD6/LINUART_RX
PD7/TLI
100 VDD
Key 8 VDDIO_1
B2 29 VDDIO_2
2
3

C8 7 VDD
104P 12 VDDA
C11 C16 C15 5 VSS
104P 104P 1uF 13 VSSA
4
1
4

28 VSSIO_1
VSSIO_2

STMicroelectronics Sept. 14~25, 2009 13


STM8S硬件设计 Æ 注意事项 (1)
™ 电源
STM8S系列单片机的工作电压约为2.95V ~ 5.5V(具体的电压以Datasheet提供
的数据为准)。因此在设计时要注意保证MCU的供电电源在这个范围之内。
对于不同封装的STM8S MCU,最多会有下面这些电源引脚:
VDD/VSS,VDDIO/VSSIO,VDDA/VSSA,VREF+/VREF-:
要保证MCU的正常工作,必须将芯片所有的电源引脚都连接到相应的供电电源
上。
™ Vcap
Vcap引脚是STM8S系列MCU内核供电电源的引出脚。为了保证内核能够正常
运行,必须在Vcap引脚加去耦电容,并且要求距离MCU越近越好。建议这个引
脚上的电容取680nf~1uF比较合适。注意不能使用电解电容,其较差的高频特性
不适合用于此处。
™ 时钟
STM8可使用外时钟或内时钟,当使用外时钟时,如果MCU主频超过
16MHz,要在选项字节中配置等待周期为1。STM8的内时钟为
16MHz,可根据需要进一步分频。其内部有3或4位的频率微调器,经过
校正后其频率误差理论上可不大于0.5%(频率微调器为3位)或0.25%(频
率微调器为4位)。

STMicroelectronics Sept. 14~25, 2009 14


STM8S硬件设计 Æ 注意事项 (2)
™复位电路
复位电路可采用传统的外部RC方式,如上面的原理图所示。另外,由于MCU本
身有内部弱上拉,因此外部的上拉电阻也可以不加。下图是数据手册提供的推
荐电路。

™I/O口的分配
¾ 要注意选项字节的配置,尤其注意I/O重映射功能状态是否与实际项目相符合
¾ STM8的I2C接口为真正的开漏接口,意味着其没有内部上拉电阻和对电源的
保护二极管。
¾ 并非所有的I/O口都是大电流口,当需要I/O有很强驱动能力时要检查其是否
需要外加驱动。
¾ SWIM接口要保证上电时为稳定电平以防止MCU误进入调试模式。

STMicroelectronics Sept. 14~25, 2009 15


STM8S软件设计 Æ 创建工作区

Workspace名称

Workspace存储路径

STMicroelectronics Sept. 14~25, 2009 16


STM8S软件设计 Æ 创建项目
本例对Workspace filename 起名为
STM8_IO_Test。
存储路径为:
C:\STM8_NewProject1

按照下面描述分别填入相关项:
Project filename:IO_Test。
Project location:无需改变,保留(默认
与Workspace同路径)。
Toolchain:默认编译器为Raisonance,使
用下拉菜单,将之选为STM8 Cosmic。
Toolchain root:选择STM8 COSMIC编译
器的安装地址。
配置完成后的窗口如图所示,确认后进入MCU 选择窗口

STMicroelectronics Sept. 14~25, 2009 17
STM8S软件设计 Æ MCU选择

显示支持当前选中的MCU的所
有工具。

选择目标MCU,并双击。

已选择的MCU会出现在此栏中
本例使用STM8 mini kit2做为目标
板 , 因 此 选 中 STM8S105S4 并 双
击之,使之出现在Selected MCU
栏中。

STMicroelectronics Sept. 14~25, 2009 18


STM8S软件设计 Æ 项目保存

展开

将屏幕左侧io_test项目栏
展开,可以看见系统已自 将需要使用的头文件添 所有的源文件和头文
动生成了两个C文件: 加到Include Files 文件 件添加完成后,选择
main.c 夹下 保存。
stm8_interrupt_vector.c
STMicroelectronics Sept. 14~25, 2009 19
STM8S软件设计 Æ 编译
选择BuildÆ Rebuild

编译成功

编译并且保存后,项目文件夹的内容

STMicroelectronics Sept. 14~25, 2009 20


软件编写注意事项
™ 时钟分配
¾ 主时钟是否正常起振并稳定,各个外设时钟是否开启
™ 选项字节配置(option bytes)
¾ I/O重映射功能状态是否与实际项目相符合
¾ 如果看门狗使用硬件方法使能,则看门狗在复位后立即有效,主程
序必须喂狗。
¾ 如果MCU主频高于16MHz,则需要配置选项字节的MCU等待周期
为1
™ 有一些状态寄存器的位的清零是通过读该寄存器来实现
的,所以对这样的寄存器操作要清楚其后果。
™ 建议将常用的变量分配在Zero page中,这样可以提高这些
变量的访问速度。对于不常用的变量可以用@near定义在
0xFF以外区域(相对来说,访问速度略慢)。用户可以根
据实际情况决定。

STMicroelectronics Sept. 14~25, 2009 21


在线调试 Æ选择在线调试工具

根据需要选择合适的调试工具
本例使用ST-Link

STMicroelectronics Sept. 14~25, 2009 22


在线调试 Æ进入在线调试模式

STMicroelectronics Sept. 14~25, 2009 23


在线调试 Æ 各个调试窗口介绍

源程序 反汇编 存储器

指令断点

内核寄存器 堆栈
外设寄存器

观察窗口 输出窗口
局部变量

STMicroelectronics Sept. 14~25, 2009 24


在线调试 Æ 断点设置
™ STM8软件断点无数量限制,但是不能将中断设在中断向量表内。

STMicroelectronics Sept. 14~25, 2009 25


在线调试 Æ RD/WR on fly

™ STM8S在调试时支持RD/WR on fly功能,用户可以在程序

运行时,直接观察变量的变化。也可以在不中断程序运行

的条件下直接修改寄存器或者变量的值。

™ 支持hot plug功能。当程序在运行时,可以通过SWIM接口

在不影响程序连续运行的条件下,通过STVD窗口观测存储

器内各个值的变化。(前提是不设读保护)。

STMicroelectronics Sept. 14~25, 2009 26


在线调试 Æ 使能On fly功能

在 Watch 窗 口 或 者 Memory 窗 口
右击,选择“Read/Write on fly

Watch 窗 口 或 者 Memory 窗 口 的
背景色变成黄色,表示已经处于
on fly状态

STMicroelectronics Sept. 14~25, 2009 27


在线调试 Æ Hot Plug功能

1. 关闭所有的Workspace.

2. 通过Debug instrumentÆ
Target Settings 打开调试工
具配置界面

3. 使能Hot Plug功能

4.重新进入在线调试界面
,即可看到存储器内的
值随着程序的变量发生
变化。

STMicroelectronics Sept. 14~25, 2009 28


基于STM8S的电容触摸式按键方案介绍

STMicroelectronics Sept. 14~25, 2009 29


思想

电容式触摸感应软件库的可提供如下功能:
™ 软件库模块可以方便的应用于绝大部分微控制器中,直接
内嵌在主控制器中。
™ 软件库适用于大部分的用户接口需求:最多24个按键,以
及2个滑动条/滚轮。
™ 经济的解决方案:少量的硬件和软件开销
™ 采用各种必须的软件滤波处理以获得高可靠性
™ 优化的固件源代码
™ 完全免费的源代码(但仅限于应用在ST的微控制器上)

STMicroelectronics Sept. 14~25, 2009 30


如何工作?
STM8 or STM32 Microcontroller

MCU
Flash Memory
Hardware
Resources
Customer application
按键 电 Load Software layer

GP I/Os
Touch Sensing Software Layer

API
电极电容 (Cx)
Time base Post processing layer

Timer Acquisition layer

…容性的人体接触可以通过对RC
Hardware Software
网络的充放电时间的检测来测得
。RC网络由一个电阻和电极的
电容(Cx)组成。
STMicroelectronics Sept. 14~25, 2009 31
性能

™ 每个触摸通道需要2个电阻和一个MCU 通用IO口。

™ 可将MCU的任意通用IO口配置为触摸通道

™ 触摸按键可分布在最多3个不同的GPIO 端口上(目前如此,

以后可能会扩展)

™ 软件库使用2个定时器:一个作为时基,一个用于采集

STMicroelectronics Sept. 14~25, 2009 32


STM8 资源需求
ƒMCU 硬件
9 1*16位定时器 (采集: 测量RC充放电时间)
9 1*8位定时器 (后处理: 时基)
9 每个通道1个通用IO
9 1 I/O 作为LOAD输出 (common to all channels)
ƒ MCU 存储器使用
(库 + 常量)
9 只有按键 : ~ 1900 bytes
9 按键 + 1滚轮/滑动条 : ~ 3800 bytes
9 按键 + 2 滚轮/滑动条 : ~ 3900 bytes
ƒ RAM
9只有按键 : ~ 57 + (13*(Nb_keys -1))
9按键 + 1滚轮/滑动条 : ~ 112 + (13*(Nb_keys -1))
9按键 + 2 滚轮/滑动条 : ~ 154 + (13*(Nb_keys -1))

- 例1 :10 个按键占用174 bytes的RAM空间


- 例2 : 5 按键 + 1 滚轮占用174 bytes的RAM空间

STMicroelectronics Sept. 14~25, 2009 33


例:采用LQFP32封装的 STM8S103K3
例:采用LQFP32封装的 STM8S103K3
(10 按键 –
(10 按键 – I2C
I2C –
– LEDs
LEDs –
– 蜂鸣器)
蜂鸣器)
3.3v
3.3v 0v
100nF

Vdd Vss
10 Resistors 3.3M
Load GPI/o I2C_SCL
GPI/o
I2C_SDA
GPI/o 主机
IRQ
GPI/o
1 GPI/o 3.3v

2 GPI/o
Buzzer

3 GPI/o

GPI/o
4 GPI/o
STM8S103K3 GPI/o
10

(QFP32)
个通道

5 GPI/o
GPI/o LEDs Control

6 GPI/o GPI/o

GPI/o
7 GPI/o

GPI/o GPI/o
8 3.3v

9 GPI/o

10 GPI/o GPI/o RESET


10 Resistors 10K
100nF

STMicroelectronics Sept. 14~25, 2009 34


硬件配置
™软件库可配置为支持如下范围内的操作:
¾ 所有按键分布在3个独立IO端口
¾ 另外2个IO端口用来配置滚轮/滑动条
Î 因此最多可支持24个按键和2个滚轮/滑动条
™可使用任意的IO端口,除了:
¾ 避免使用晶振所在的IO引脚,因为这些引脚的电容过大
™屏蔽信号(Driven shield)需要占用每个端口的一个
IO引脚
Î因此最多只可支持21个按键和2个滚轮/滑动条
™硬件配置通过软件库中的配置文件(Configuration)
完成。
STMicroelectronics Sept. 14~25, 2009 35
The license agreement
ƒ The touch sensing library provides a complete
NRE/Royalty-free Capacitive Touch Sensing software
solution for ST Microcontrollers.
ƒ Anyone who install the touch sensing library will be required
to acknowledge and agree to be bond under the license
agreement
ƒ the license agreement requires the software library to be
used only with ST microcontrollers

ƒ The library must be distributed


to customer with the package
to make sure they agree with
the license

STMicroelectronics Sept. 14~25, 2009 36


软件库概述

Hardware: keys, IOs, Timers


ƒ 采集层 Acquisition layer :
9 I/O端口配置
9 RC 采集 Acquisition layer

ƒ 后处理层 Post processing layer : Post processing


9 数据处理 layer

9 状态机
API
ƒ 应用程序接口 API : Library
9 与用户应用程序接口
9 函数
Application firmware
9 变量

STMicroelectronics Sept. 14~25, 2009 37


软件库架构
用户软件

Application
用户软件需要调
layer
用或访问的函数
和变量 API layer

Keys State Services


软件库核心: Machine
校准
滤波 Main State
ECS(环境处理系统)
Machine

采集 I/O driver Timer


driver

硬件外设 H/W layer


(GPIO和定时器)

STMicroelectronics Sept. 14~25, 2009 38


基于STVD的软件开发界面

STMicroelectronics Sept. 14~25, 2009 39


谢谢 !

STMicroelectronics Sept. 14~25, 2009 40