外设

SX1278与STM8L的精美结合。

爷,独闯天下 提交于 2019-12-09 04:53:05
转发请注重原创出处,谢谢! 一. 引言 能耗对于电池供电的产品来说是一个重大的问题,一旦电能耗尽设备将“罢工”,在某些场合电能意味着电子产品的生命。物联网时代将会有越来越多电池供电的设备通过无线通信连接,降低能耗再次摆在工程师的桌面上—解决它。不但具备空旷环境传输5km的超长距离优势,还将休眠能耗降低到极致(0.4uA,带RTC为1.4uA)。我们是怎么做到的呢?接下来,一步一步解密。 二. 硬件设计 1. 选用低功耗器件 终端MCU选用STM8L151C8T6,它属于超低功耗,不带RTC休眠为400nA,带RTC下休眠为1.4uA。该MCU拥有较大的RAM(4KB)和自带EEPROM(2KB),不用扩展外部存储设备,进行一步降低功耗和成本。 终端射频芯片选用SX1278,在休眠模式下,该芯片功耗低至忽略不计。 2. 尽可能快地让射频模块休眠 SX1278属于LoRa TM扩频调制技术,它的远距离优势得益于调制增益,不是靠增大发射功率(那将消耗更多电能)。该射频芯片的电流消耗如下:休眠<0.2uA,空闲=1.6mA,接收=12mA,发射(最大功率)=120mA. 终端MCU通过“中断+定时器超时”方式控制SX1278,一旦射频完成发送或接收,立即进入休眠模式。 第一: 虽然MCU是停机了,但是电路板还有其他的芯片在工作,它们仍然在消耗电量,所以我们在停机前应该要把其他芯片给关闭

点亮板载LED

白昼怎懂夜的黑 提交于 2019-12-07 15:02:29
1.开发板说明    开发板型号:MaixPy-bit(mic)        图1-1 MaixPy-bit开发板   主要功能:机器视觉 2.板载LED操作 2.1硬件部分    板载LED原理图: 图2-1 板载LEDIO口分配  图2-2 板载LED原理图    板载LED是一个三色的复合灯(RGB),绿色连接的是IO_12、红色连接的是IO_13、蓝色连接的是IO_14。(源码中引脚对应的可能有误,解决办法是重新编译源码)   低电平点亮,所有被引出的IO口高电平时3.3V,而LCD屏幕IO引脚是1.8V(没有引出,直接是接LCD屏幕)。 2.2软件设计    在写程序前,我们需要知道, MaixPy 所使用的硬件 K210 的片上外设(比如GPIO、I2C等)对应的引脚是可以任意设置的,STM32 片上外设和引脚对应关系已经固定了, 只有部分引脚可以复用, 相比之下 K210 自由度更大。    片内指做成芯片的集成电路内部,简称片内;外设是外部设备的简称,是指集成电路芯片外部的设备。集成电路芯片与外部设备的连接一般需要专门的接口电路和总线的连接(包括控制总线路、地址总线和数据总线等)。   由于大规模集成电路的技术发展得很快,现在许多芯片在制造时已经能够将部分接口电路和总线集成到芯片内部。对于这部分电路与传统的接口电路和总线是有区别的,为了加于区别可以称之为片内外设

07_stm32时钟树

依然范特西╮ 提交于 2019-12-06 14:14:23
一:stm32时钟树介绍   时钟对于单片机来说是非常重要的, 它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行。 时钟系统犹如人的心脏, 一旦有问题整个系统就崩溃。 我们知道 STM32 属于高级单片机, 其内部有很多的外设, 但不是所有外设都使用同一时钟频率工作, 比如内部看门狗和 RTC, 它只需 30 几 KHz 的时钟频率即可工作, 所以内部时钟源就有多种选择。 在前面章节的介绍中, 我们知道 STM32系统复位后首先进入 SystemInit 函数进行时钟的设置, 将 STM32F1 系统时钟设置为 72MHz(我们开发板上使用的 STM32F103ZET6 最大可达到 72M(超频除外) ),然后进入主函数。 那么这个系统时钟大小如何得来, 其他外设的时钟又如何划分,这些问题都可以通过一张时钟树图找到答案, 只要理解好时钟树, STM32 一切时钟的来龙去脉就会非常清楚。 下面就来了解下时钟树, 如图所示, 我们把时钟树拆分逐个介绍。   在 STM32 时钟系统中, 有 5 个重要的时钟源, 分别是 LSI、 LSE、 HSI、 HSE、PLL。 按照时钟频率分可分为高速时钟源和低速时钟源, 在这 5 个中 HSI, HSE 以及 PLL 属于高速时钟, LSI 和 LSE 属于低速时钟。 按照时钟来源可分为外部时钟源和内部时钟源, 外部时钟源就是在

03_使用寄存器点亮第一盏灯

佐手、 提交于 2019-12-06 12:23:00
一:stm32 GPIO介绍 1. GPIO概念   GPIO(general purpose intput output) 是通用输入输出端口的简称, 可以通过软件来控制其输入和输出。 STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、 控制以及数据采集的功能。 不过 GPIO 最简单的应用还属点亮 LED 灯了, 只需通过软件控制 GPIO 输出高低电平即可。 当然 GPIO 还可以作为输入控制, 比如在引脚上接入一个按键, 通过电平的高低判断按键是否按下。   那么是不是所有引脚都是 GPIO 呢? 当然不是, STM32 引脚可以分为这么几大类:   (1) 电源引脚: 引脚图中的 VDD、 VSS、 VREF+、 VREF-、 VSSA、 VDDA 等都属于电源引脚。   (2) 晶振引脚: 引脚图中的 PC14、 PC15 和 OSC_IN、 OSC_OUT 都属于晶振引脚, 不过它们还可以作为普通引脚使用。   (3) 复位引脚: 引脚图中的 NRST 属于复位引脚, 不做其他功能使用。   (4) 下载引脚: 引脚图中的 PA13、 PA14、 PA15、 PB3 和 PB4 属于 JTAG 或SW 下载引脚。 不过它们还可以作为普通引脚或者特殊功能使用, 具体的功能可以查看芯片数据手册, 里面都会有附加功能说明。 当然, STM32

接口技术第六章——输入输出接口及数据传输控制方式总结

老子叫甜甜 提交于 2019-12-06 04:14:53
正在学习接口技术和计算机组成原理,中间有一些重叠的部分就放在一起了,至于DMA,中断之类的会放在后面讲解 6.1 接口综述 硬件接口通常称为I/O接口,把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。I/O接口是CPU同外界进行信息交换的中转站 使用接口的原因 速度不匹配 外设外慢 时序不匹配 各个外部设备都有自己的定时控制电路,以自己的速度进行传输,同CPU的时序不匹配 信息格式不匹配,不同的外设存储和处理信息的格式不同 信息类型不匹配,有些是数字电路,有些是模拟电路 CPU与外设之间所传送的数据类型 数据信息 包括模拟量,数字量,开关量,可以输入也可以输出 状态信息 这是I/O端口送给CPU的有关本端口所对应的外设当前状态的信息,供CPU参考分析 控制信息 这是CPU送给I/O设备的控制命令,使相应的外部设备完成特定的操作 在8086/8088中,这三种信息的输入输出基本一致,可以分发不同的端口地址,在端口地址相同的情况下,可以规定操作的顺序,或者在输入输出的数据中设置特征位 接口的功能(背) 执行CPU命令 CPU将对外设的控制命令发到接口电路的命令寄存器中,以便控制外设按要求进行工作 返回外设状态 通过外设寄存器(状态口)完成,包括正常工作状态和故障状态 数据缓冲的功能 (平滑作用)接口电路中的数据寄存器(数据口)对CPU与外设设备之间的数据进行中转

输入/输出系统简答

此生再无相见时 提交于 2019-12-06 03:19:56
(1)、什么是接口? 接口是CPU与外部设备之间的连接部件,是CPU与外部设备进行信息交换的中转站。 (2)、为什么要在CPU与外部设备之间设置接口? CPU与外设二者的信号不兼容,包括信号线的功能定义、逻辑定义和时序关系。 CPU与外设的速度不匹配,CPU的速度快,外设的速度慢。 CPU与外设之间若没有设置接口,则外设的硬件结构会依赖于CPU,对外设的发展于更新不利 (3)、微型计算机的接口一般具备哪些功能? 数据缓冲功能 与外设联络功能 数据转换功能 寻址功能 中断功能 (4)、什么是端口?端口分几类? 端口是输入/输出接口电路中能与CPU交换信息的寄存器。 端口分为三类:数据端口、状态端口、控制端口。 (5)、I/O端口有哪两种编址方式?PC系列机中采用哪种编址方式?各自的特点是什么? I/O端口和存储单元统一编址和I/O端口独立编址两种方式。 PC系列机中采用I/O独立编址方式。 统一编址的特点: CPU对外设的操作可使用存储器操作指令,不需要专门的输入输出指令 端口地址占用内存空间,使内存容量减少 执行存储器指令往往要比那些专门为独立的I/O操作而专门设计的指令慢 独立编址的特点: 对于I/O端口,CPU须有专门的I/O指令去访问 端口地址不占用内存空间 端口地址译码需要专门的控制电路和译码电路 (6)、微型计算机系统和输入/输出设备交换信息的方式有哪几种

一颗ARM架构芯片硬件和软件构架

柔情痞子 提交于 2019-12-05 20:01:23
(一)硬件 主控CPU: 运算和控制核心。基带芯片基本构架采用微处理器+数字信号处理器(DSP)的结构,微处理器是整颗芯片的控制中心,会运行一个实时嵌入式操作系统(如Nucleus PLUS),DSP子系统负责基带处理。应用处理器则可能包括多颗微处理器,还有GPU。微处理器是ARM的不同系列的产品(也可以是x86架构),可以是64位或者32位。处理器内部通过“内部总线”将CPU所有单元相连,其位宽可以是8-64位。 总线: 计算机的总线按功能可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。CPU内部部件由内部总线互联,外部总线则是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接。外部设备通过相应的接口电路再与外部总线相连接,从而形成了硬件系统。外部总线通过总线接口单元BLU与CPU内部相连。 片上总线标准高级微控制器总线结构AMBA定义了高性能嵌入式微控制器的通信标准。定义了三组总线:AHB(AMBA高性能总线)、ASB(AMBA系统总线)、和APB(AMBA外设总线)。AHB总线用于高性能、高时钟工作频率模块。AHB为高性能处理器、片上内存、片外内存提供接口,同时桥接慢速外设。DMA、DSP、主存等连在AHB上。ASB总线主要用于高性能系统模块。ASB是可用于AHB不需要的高性能特性的芯片设计上可选的系统总线

STM32中STD、HAL、LL库比较

孤街浪徒 提交于 2019-12-05 11:12:53
ST为开发者提供了标准外设库(STD库)、HAL库、LL库 三种。前两者都是常用的库,后面的LL库是ST新添加的,随HAL源码包一起提供,目前支持的芯片也偏少。 标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。这应该是目前使用最多的ST库。几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。 HAL是Hardware Abstraction Layer的缩写,中文名:硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。该库提供了一整套一致的中间件组件,如RTOS,USB,TCP / IP和图形等。HAL库就是用来取代之前的标准外设库的,是ST未来主推的库,ST新出的芯片已经没有STD库了,比如F7系列。 LL库(Low Layer)是ST新增的库,与HAL捆绑发布,文档也是和HAL文档在一起的。LL库更接近硬件层,对需要复杂上层协议栈的外设不适用,直接操作寄存器。 具体参考: https://blog.csdn.net/zcshoucsdn/article/details/54613202 来源: https://www.cnblogs.com/kerwincui/p/11921932.html

stm32 f1和f4开发模型

匆匆过客 提交于 2019-12-05 09:46:19
硬件区别 http://www.stmcu.org/module/forum/thread-582410-1-1.html 软件区别 http://forum.eepw.com.cn/thread/230356/1/ 开发模型 抽象化 如果拿来一个开发板学习,目前一般采用标准库方式来入门。那么我们在用标准库来学习时到底在学什么?本质上我们是在学驱动开发。 一般我们在学习某个外设的时候会建立这样的文件,bsp_xxx.h和bsp_xxx.c,xxx指某个外设,然后在main文件里调用上述头文件,main函数里写些测试代码。这里bsp_xxx基于库开发的针对特定板载硬件的驱动程序,而main函数里面才是最终我们要做的应用开发。 由于mcu的功能众多,不可能为每个功能单独拉出管脚,对于实现一个功能,比如led,你用哪个gpio都可以,如果需要用UART,i2c等,因为存在多个这样的外设,你用哪个都可以,这就不开避免的产生硬件结构的差异化,进而带来驱动的一致问题。一般采取的方式是,在头文件里定义和具体管脚、接口相关的宏,在c文件里尽量避免带来和硬件相关的移植问题。这样,针对某个特定mcu开发的驱动就可以很容易的移植到另一个板子。 还有一种外设相关的驱动,比如用i2c,这种外设是通用外设,你是用它来操作EEPROM还是控制传感器、传输数据都可以,但具体到驱动细节就需要根据操作的对象分别来实现

STM32HAL快速上手

守給你的承諾、 提交于 2019-12-05 04:53:28
STM32HAL快速上手 资料下载 如果在下面的网站中没有账户,建议用edu邮箱创建账户。 STMicroeletronic 意法半导体官网 首页 - STMicroelectronics 意法半导体官网,可以下载到所有的文档、软件,但是网速较慢。 通过直接搜索MCU型号可以转到👇 STM32F401RE - STMicroelectronics 在“资源”里可以找到 数据手册(产品规格)DSxxxx 参考手册 RMxxxx 技术文档等等 意法半导体STM32技术社区 意法半导体STM32/STM8技术社区 - 提供最新的ST资讯和技术交流 意法半导体中文社区,服务器在国内,网速较快。但文档可能不全。上面也有很多技术贴,应用案例。 开源电子网 正点原子开发管理的嵌入式论坛,包括但不限于单片机技术。 cubemx中文网 STM32cube中文网 提供对STM32CUBEMX的中文指导。 文档说明 数据手册 包含对芯片资源的介绍,芯片电气特性的描述,极限参数,适宜参数,参考电路设计,内存映射等内容,初期可以不看。 芯片参考手册 MCU各资源的特征、使用、寄存器。十分重要,编程时经常需要看,尤其是需要关注到寄存器功能的时候。 扩展板用户手册 NUCLEO-F401用户手册.pdf 这个文档是拿到板子后最应该看的,包含 引脚分布图 : 也包含了扩展板上各跳帽、焊桥的功能: CUBE