谢谢分享
接下来我们先大致了解一下EFM8BB52 Busy Bee Explorer Kit Board (BRD2701A Rev A01)这款开发板
BB52 Explorer Kit试用指南.pdf 开发板介绍文档,不过是是英文的,大家可主观图表
BRD2701A-A01原理图.pdf 开发板电路原理图
相信有电路基础和单片机基础知识基础的同学们应该阅读起来不会太困难,有什么不懂的地方可
回复,知无不言言无不尽。
然后再了解一下EFM8BB52F32I-QNF32这款微型单片机
EFM8BB52参考手册.pdf 说明书
想要全面的了解一款单片机,阅读说明手册是最直接的方法了,不过呢EFM8BB52这款2021年面世的单片机还没来得及翻译说明书,所以英文版的产品手册看起来着实让人头大。但是同学们不必太过困恼,解决困难的最好办法就是化整为零,各个击破。我们先每次定一个小目标,通过一个个的小目标来一点点的了解它,最后融会贯通,就能实现这款单片机的多功能多领域运用了。
好了,使用一款单片机能想到的最简单功能就是点灯了,书面语:驱动I/O口。下面我们开始单片机开发第一个目标:驱动所有I/O口!表现形式当然就是点亮LED灯咯。
先看看说明书里面关于I/O的资料吧,贴心的我大概翻译了一下:
Digital and analog resources are externally available on the device’s multi-purpose I/O pins. Port pins P0.0-P2.7 can be defined as general-purpose
I/O (GPIO) or assigned to one of the internal digital resources through the crossbar or dedicated channels. Port pins P0.0-
P3.1 can be assigned to an analog function. Port pins P3.0 to P3.7 can be used as GPIO. Additionally, the C2 Interface Data signal
(C2D) is shared with P2.0 or P3.7, depending on the package option. Not all pins are present in all devices and this is dependent on the
chosen device package(s). The pinout differences are covered in the device datasheet.
The port control block offers the following features:
• Up to 29 multi-function I/O pins, supporting digital and analog functions.
• Flexible priority crossbar decoder for digital peripheral assignment.
• Two drive strength settings for each port.
• State retention feature allows pins to retain configuration through most reset sources.
• Two direct-pin interrupt sources with dedicated interrupt vectors (INT0 and INT1).
• Up to 24 direct-pin interrupt sources with shared interrupt vector (Port Match).
IO端口特性:
数字和模拟资源都可在设备的多用途I/O引脚外部使用。端口引脚P0.0-P2.7可以定义为通用I/O (GPIO),也可以通过交叉条或专用通道分配给内部的数字资源之一。港口别针P0.0 -P3.1可以指定一个模拟函数。接口引脚P3.0 ~ P3.7可作为GPIO。此外,C2接口数据信号(C2D)由P2.0或P3.7共享,具体取决于资源包选项。并非所有的引脚都存在于所有的设备中,这取决于所选择的设备包。在设备数据表中涵盖了引脚的差异。
端口控制块提供以下功能:
*多达29个多功能I/O引脚,支持数字和模拟功能。
*灵活的优先交叉****数字外设分配
*每个端口有两个驱动器强度设置
*状态保持特性允许引脚通过大多数重置源保持配置
*两个直接引脚中断源,具有专用中断向量(INT0和INT1)
*最多24个直接引脚中断源,共享中断矢量(端口匹配)
Port I/O Modes of Operation
Port pins are configured by firmware as digital or analog I/O using the special function registers. Port I/O initialization consists of the
following general steps:
1. Select the input mode (analog or digital) for all port pins, using the Port Input Mode register (PnMDIN).
2. Select the output mode (open-drain or push-pull) for all port pins, using the Port Output Mode register (PnMDOUT).
3. Select any pins to be skipped by the I/O crossbar using the Port Skip registers (PnSKIP).
4. Assign port pins to desired peripherals.
5. Enable the crossbar (XBARE = 1).
端口I/O运行模式
端口引脚被固件配置为数字或模拟I/O使用特殊的功能寄存器。端口I/O初始化包括以下一般步骤:
1.使用端口输入模式寄存器(PnMDIN)为所有端口引脚选择输入模式(模拟或数字)。
2.使用端口输出模式寄存器(PnMDOUT)为所有端口引脚选择输出模式(开路或推挽)
3.使用端口跳过寄存器(PnSKIP)选择I/O交叉栏跳过的任何引脚
4.将端口引脚分配到所需的外围设备
5.使能横杆(XBARE = 1)
注意:这里需要补充一点,因为这款单片机带2个模拟比较器,且可以自行分配到某个I/O口,所以I/0端口初始化的时候需要进行相关的设置,于是有了第6步
6.使用端口比较寄存器(PnMASK)和端口比较寄存器高低电平设置寄存器(PnMAT)为电平输入信号进行比较产生中断信号
看完以上说明是不是觉得头大,怎么这么麻烦呢?以前学汇编51单片机的时候不是直接#include <REG52.H> MOV P1, 0x00; 就可以驱动I/0口输出低电平吗???拜托!都2021年了呀,8位单片机虽然还是用的51内核,但是功能已经强大太多太多,所以我们需要选择性的使用某些功能的时候就得初始化单片机,通俗的说就是得设置I/O相关的PnMDIN、PnMDOUT、PnSKIP、XBARE、PnMASK、PnMAT特殊功能寄存器。
那么该怎么设置呢,不急不急,我们继续查看单片机说明书:
SFR Paging
The CIP-51 features SFR paging, allowing the device to map many SFRs into the 0x80 to 0xFF memory address space. The SFR
memory space has 256 pages. In this way, each memory location from 0x80 to 0xFF can access up to 256 SFRs. The EFM8BB52
devices utilize multiple SFR pages. All of the common 8051 SFRs are available on all pages. Certain SFRs are only available on a
subset of pages. SFR pages are selected using the SFRPAGE register. The procedure for reading and writing an SFR is as follows:
1. Select the appropriate SFR page using the SFRPAGE register.
2. Use direct accessing mode to read or write the special function register (MOV instruction).
The SFRPAGE register only needs to be changed in the case that the SFR to be accessed does not exist on the currently-selected
page. See the SFR memory map for details on the locations of each SFR.
特殊寄存器地址页
CIP-51具有SFR分页功能,允许设备将多个SFR映射到0x80到0xFF内存地址空间。SFR内存空间有256页。这样,从0x80到0xFF的每个内存位置最多可以访问256个sfr。EFM8BB52设备利用多个SFR页面。所有的通用8051 SFRs都可以在所有页面上找到。某些sfr仅在页面的一个子集上可用。使用SFRPAGE寄存器选择SFR页面。读取和写入SFR的过程如下:
1.使用SFRPAGE寄存器选择适当的SFR页面
2.使用直接访问方式读写特殊功能寄存器(MOV指令)
只有在当前选择的页面上不存在要访问的SFR时,才需要更改SFRPAGE寄存器。关于每个SFR位置的详细信息,请参阅SFR内存映射。
特殊寄存器地址页
Table 3.3. Special Function Registers by Name
上面有提到I/O端口运行的必备条件之一是XBARE=1,所以我们就需要对Crossbar使能了,查询单片机说明书,找到了是在特殊寄存器XBR2的第6位设置。
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 | |
【换取逻辑分析仪】rtthread添加RRH62000传感器驱动-基于野火启明6M5被打赏48分 | |
换逻辑分析仪+Verilog多输入门被打赏27分 |