全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情

由于我们选用的LoRa终端模组ASR6505集成的MCU是STM8L, 因此有必要对其有一些基本的认识,以便于接下的编程和代码的理解。

目录:

1. 什么是STM8 MCU

2. STM8与STM32的主要区别

3. STM的主要功能特性

4. STM8内部的功能模块

5. STM8的内存地址映射

6. STM8的中断向量表


1. 什么是STM8 MCU

STM8系列是意法半导体公司(ST)生产的8位的单片机。该型号单片机分为STM8A、STM8S、STM8L三个系列。

STM8A:汽车级应用、STM8S:标准系列、STM8L:超低功耗MCU。

内核ST自研的高级STM8内核,具有3级流水线的哈佛结构

指令集: CISC复杂指令集(相对于精简指令集RISC, 如ARM)

存储器

程序存储器:8K字节Flash;10K 次擦写后在55°C环境下数据可保存20年

数据存储器:640 字节真正的数据

EEPROM;可达30万次擦写

RAM:1K字节

 

2. STM8与STM32的主要区别

虽然STM8和STM32都是意法半导体公司(ST)生产的同系列的微处理器,但其实其CPU架构和指令集是完全不同的。也正因为如下,STM8需要特定的集成开发工具和特定的C语言编译器,也正因为如此,集成开发工具是IAR for STM8,而不是IAR for ARM.

STM8 CPU 是一种专有架构,它保持了以前的 STM7 内核的传统,同时在 8 位 CPU 效率和代码密度方面实现了突破。

STM32 围绕行业标准 ARM® Cortex-M 32 位内核构建,并受益于与 ARM 处理器有关的开发工具和软件解决方案的完整生态产业环境。

尽管它们被认为是两种完全不同架构的处理器,但考虑到同一家公司的产品,在用户使用习惯的一致性,它们在设计方面实际有许多相似之处,下面对比STM8S 和 STM32F1 (Cortex-M3)这两种内核异同:

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第1张图片

从上述可以看出,STM8和STM32除了指令集有大的差别,在设计上,保持了极大的继承性和一致性,主要的差别主要在其性能上的差别。

两种内核均基于哈佛架构,它们采用 3 级流水线执行,可将执行时间降至最低,

对于 STM8S,时钟速度高达 24 MHz,对于 STM32F1系列,时钟速度高达 72 MHz。

在代码密度方面,它们均有优异的表现,这归功于 STM8S 系列的 8 位 CISC 指令集以及 STM32F1系列的 Cortex 内核引入的 16 位 Thumb-2 模式。


3. STM的主要功能特性

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第2张图片

Flash:用于存储程序=> 64K. 因此STM8很难实现大的程序代码或协议栈代码。

Data EEPROM: 用于存储用户的永久性配置数据=>2K-1K.

RAM: 用于存放程序执行过程中的动态数据=>2K

LCD: LCD接口

Timers:定时器,由于STM很难支持OS, 因此定时的功能通常需要通过硬件定时器完成, STM8L提供了1个8bit的基本定时器,3个16bit的通用定时器,一个16bit的高级控制的定时器。

定时器在单片机编程中其着非常重要的功能。

连接外设的接口:2个SPI master, 1个I2C master, 2-3个 uart串口控制器。

GPIO: 通用的输出输入接口。

 

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第3张图片

ADC和DAC: 数子到模拟信号转换和模拟信号到数字信号的转换

Comparators:比较器,用来比较两个数据的大

watchdog:软件看门狗,防止程序死机,需要程序定期的喂狗,确保看门狗不复位系统。

CPU的频率:16MHz

操作电压:低功耗电压1.8-3.6V

操作温度:-40- +85/105/125.


4. STM内部的功能框图:

STM8 core通过标准的内部的地址、数据、控制总线连接所有外设的控制器,并通过统一编址的地址来访问的。

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第4张图片

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第5张图片


5. STM8的内存地址映射

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第6张图片

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第7张图片

在上图中,可以看出,程序是存放在0x00 8000-0x01 7FFF 8K的Flash地址空间内。

特别需要注意的是,位于0x00 8000-0x00 807F处的128字节的复位和中断向量表也存放于此。

包括程序的复位后的第一条指令存放于:0x00 8000。

因此,STM8的终端服务程序在Flash(而不是RAM)中的位置,是在编译的时候就确定下来的,而不是动态加载的。


6. STM8的中断向量表

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第8张图片

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第9张图片

全面拆解和构建5G物联网-9:LoRa终端的MCU STM8编程需要知道的那些事情_第10张图片


参考:

(1)STM8单片机入门:https://wenku.baidu.com/view/16dae952ac51f01dc281e53a580216fc710a5316.html

(2)STM8L官网:https://www.st.com/zh/microcontrollers-microprocessors/stm8l152m8.html

(3)STML官网手册:https://www.st.com/resource/en/datasheet/stm8l152m8.pdf

(4)CSDN下载:https://download.csdn.net/download/HiWangWenBing/12666208

 

 

 

 

 

 

 

 

你可能感兴趣的:(手把手全面拆解和构建5G物联网)