【经验】PCB布线技巧:8位单片机端口Crossbar功能的使用及配置
在PCB画板布线时工程师经常会遇到PCB板走线不通需要跳线或者绕开布线,如果单片机自带Crossbar功能,只要软件配置调整一下各端口功能,PCB布线就会畅通。SILICON LABS公司的8位MCU如C8051Fxxx、EFM8系列都具有Crossbar功能。本文以这两款8位MCU为基础介绍Crossbar的配置及使用。
图1:端口I/O功能框图
如图1所示,交叉开关是一个多路选择器,它用于为器件内部的硬件外设分配I/O端口。例如,它可以决定UART的RXD和TXD连到哪一个端口引脚。交叉开关负责SMBus、SPI、UART、定时器捕捉模块、外部PCA输入、比较器输出、定时器外部输入、/SYSCLK以及A/D转换启动输入的引脚分配。
交叉开关必须在访问这些外设的I/O之前被配置和允许。
未指定的端口引脚作为通用I/O。
交叉开关提供了两个关键的系统特性:
1)在端口0、端口1和端口2上的所有未分配的通用I/O引脚都被连续组合在一起。
2)对于引脚数量少的器件,它提供了外设选择的灵活性。外设选择只受限于可用的端口引脚数,而不受限于哪一个引脚是可用的。这就允许系统设计者在使用引脚数少的器件时能选择将哪些数字外设分配到器件上的数字I/O引脚。
例如,假设一个应用需要:SPI,UART,两个捕捉模块,/INT0,T2。参考图2-图4中的I/O端口交叉开关寄存器说明,交叉开关寄存器配置如下:
XBR0=00010110b;
允许UART、两个捕捉模块和SPI XBR1=00100100b;
允许T2和/INT0 XBR2=01000000b;
允许交叉开关从表2的顶部开始。
我们发现SPI引脚将占用P0.[0..3](因为不使用SMBus),UART占用引脚 P0.[4..5],CEX0占用P0.6,CEX1占用P0.7,/INT0占用P1.0,T2占用P1.1。其它端口引脚P1.[2..7]和P2.[0..7]作为通用端口引脚。引脚分配情况列于表1。
表1:引脚分配
表2:优先权交叉开关译码表
端口Crossbar功能使用和配置关键点
1)为了使用端口0、端口1或端口2的任何一个引脚作为输出,交叉开关必须被允许。
2)交叉开关译码器必须在任何一个数字外设被允许前配置。
3)交叉开关通常在复位时被配置一次,在复位处理过程的最开始处,以后不再进行配置。
4)交叉开关的设置改变器件的引脚分配。
5)每一种交叉开关设置导致唯一的器件引脚分配,如果你在交叉开关中允许或禁止外设,引脚分配将发生变化。
6)对于输出端口引脚,其输出方式(漏极开路或推挽)必须被显式设置,即使那些由交叉开关分配的端口引脚也是如此。例外情况是SMBus上的SDA和SCL及UAR 的RXD引脚,这些引脚被自动配置为漏极开路。
7)交叉开关分配的输入引脚(例如NSS或/INT0)是开路或推挽并不重要。这些引脚被配置为输入,而与相应端口配置寄存器的设置无关。为了将一个通用I/O引脚配置为输入,与这一引脚相关的端口配置寄存器位必须被清0,这样选择该引脚为漏极开路输出方式。此外,与该引脚相关的端口位必须被置1,这样使该引脚处于高阻态,或在XBR2中的WEAKPUD被清0时若上拉为高电平,这是端口引脚的复位配置。
8)在任意时刻可以通过读取相应端口SFR得到端口引脚的电平值,而不管交叉开关寄存器的设置如何或引脚被配置为输入还是输出。
9)交叉开关寄存器中的允许位是独立的。与数字外设本身的允许位是分开的。O外设部件在使用时不需要在交叉开关中被允许(例如,一个PCA模块即使在输出没有被接到引脚的情况下也能产生中断)。O那些在交叉开关中被允许但在它们自己的SFR中被禁止的外设,仍然控制端口引脚。这就是说,端口引脚可以在任何时候被读取,但是输出被占用它的外设所控制,不能作为通用输出口来访问。
10)端口1上的四个外部中断(P1.[4..7])是由引脚上的下降沿触发的,与下降沿触发源、交叉开关设置或端口引脚的输出方式无关。
11)与标准8051不同的是,C8051提供了真正的推挽输出。如果需要8051的上拉功能,可以通过将相应的端口输出配置为“推挽”方式,然后再配置为“漏极开路”来进行软件仿真。确定器件引脚分配 本节介绍如何使用优先权交叉开关译码表(即表2)来决定器件的引脚分配,这种分配基于交叉开关寄存器中的外设选择,这些选择在图2-图4中列出。
为了确定引脚分配,首先根据所需要的外设来配置交叉开关寄存器。然后从优先权交叉开关译码表的顶部开始向下扫描,直到遇到第一个被允许的外设部件。该设备将使用P0.0,如果需要多个引脚,就可以按顺序从P0.1向后分配。例如,如果SPI是第一个被允许的外设,则SCK、MISO、MOSI和NSS将分别被分配到P0.0、P0.1、P0.2、P0.3。下一个被允许的外设将被分配到引脚P0.4。所有未分配的引脚作为通用I/O。
相关技术文档:
Silicon Labs EFM8 8位MCU选型指南 详情>>>
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 1
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
【经验】Silicon Labs 8位单片机EFM8UB2 SPI写入数据时间计算方法
Silicon Labs推出的EFM8UB2系列是带有USB功能的8位单片机,广泛应用于医疗设备、物联网、消费电子、工业自动化、智能家居等领域。该MCU集成了最高48MHz片内时钟,此外还支持包括SMBUS、SPI及UART在内的多种通信,从而实现USB和其它数据的传输,可满足多样设计需要。 本文重点介绍SPI写入数据时间计算方法,使读者对EFM8UB2单片机的SPI写入数据时间有一个更深的理解。
【经验】Silicon Labs 8位单片机EFM8SB2从如何进入Sleep模式到唤醒方法
EFM8SB2系列是Silicon Labs最节能的8位MCU之一,非常适用于对功耗要求高的系统中,广泛应用于手持设备,工业控制,电子标签等电池供电的产品,其运行功耗为120uA/MHz,在Sleep模式下电流为0.05uA(VDD=1.8V),这对采用电池供电的系统来说,可以极大的延长电池的使用寿命,节能环保。 本文将对EFM8SB2系列MCU如何进入Sleep模式,及如何唤醒进行详细介绍。
【经验】Silicon Labs 8位单片机EFM8SB2定时器初值计算方法
Silicon Labs推出的EFM8SB2系列8位单片机,广泛应用于手持设备,工业控制, 传感器接口,电池供电的消费类电子产品,该MCU除了具有低功耗特性外,其片内也集成了四个16 位计数器/定时器(定时器0、定时器1、定时器2 和定时器3),本文重点介绍定时器初值计算方法,使读者对EFM8SB2系列8位MCU定时器的初值配置有一个更深的理解。
SILICON LABS 8-bit Microcontroller选型表
SILICON LABS 8位MCU选型,MCU Core 8051,频率20MHz~100MHz,Flash存储2kB~120kB,RAM存储0.25kB~8kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
DAC
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
EMIF
|
CAN
|
LIN
|
VREF
|
Debug Interface
|
C8051F392-A-GM
|
8位MCU
|
C8051F39x Small Form Factor
|
50
|
16
|
1
|
1.8
|
3.6
|
QFN20
|
4x4
|
±2
|
17
|
10-bit, 16-ch., 500 ksps
|
Temp Sensor
|
6
|
3
|
10-bit, 2-ch.
|
1
|
1
|
1
|
2
|
0
|
0
|
0
|
0
|
VREF
|
C2
|
选型表 - SILICON LABS 立即选型
8位单片机EFM8的烧录器有哪些?
8位单片机EFM8系列采用C2调试接口,常见的烧录器有:1,官方的EFM8 STK、USB Debug Adapter、ToolStick。2,第三方的U-EC2/6、WizPro200EFM(支持EFM8和EFM32)等。
SILICON LABS C8051F99x Ultra Low Power Touch Sense MCUs选型表
SILICON LABS 8位MCU选型,基于25MHz Frequency,8kB Flash,0.5kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
I2S
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
C8051F990-GM
|
MCU
|
8051
|
25
|
8
|
0.5
|
16
|
12-bit, 9-ch., 75 ksps
|
Temp Sensor
|
4
|
3
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
1.8
|
3.6
|
QFN20
|
3x3
|
±2
|
VREF
|
C2
|
选型表 - SILICON LABS 立即选型
【产品】小蜜蜂8位MCU助您轻松迎接物联网时代
Silicon labs推出了一款集小封装和高性价比于一身的多用途8位MCU EFM8BB1,可轻松替代普通8051家族的MCU产品。
8位单片机EFM8系列中芯片上的UID是什么?
UID是芯片中新加的全球唯一ID,即每个芯片的ID都是不一样的,EFM8系列的MCU上都包含此ID。有两类获取UID的方式,一种通过读取RAM的特定地址获得,一种通过读取Flash的特定地址获得。在早期引入此ID的MCU上(比如EFM8BB1/SB1/SB2)这个ID为32位,在芯片复位时(PC指针被复位至0之前)被复制至RAM中特定位置,用户程序可以读取其值。此位置的RAM仍然可以由用户使用。需要注意的是如果此位置被编译器分配了变量,那么当函数执行至main()时此位置的内容会被初始化代码覆盖。EFM8UB2的UID也是此类,但其位数为128位。在新的EFM8系列MCU上(比如EFM8BB3/LB1/UB1),UID位数为128位,存储在Flash上。
8位单片机EFM8LB11,既有I2C,也有SMBus,那么,I2C与SMBus的主要差别是什么?
SMBus和I2C的主要差别是与各种时序要求相关。下面列举最重要的方面:SMBus定义一个最小总线时钟频率FSMB,10KHz。I2C没有明确任何最小总线时钟频率。除了维持有效的总线吞吐量,该SMBus协议参数还可作为一个简单的检测总线空闲条件(除了或代替检测每个STOP条件)和实现比特位超时的方法。SMBus定义一个数据保持时间,即从SMBCLK下降沿之后,SMBDAT仍然必须维持至少300ns有效。这在I2C协议中定义的保持时间为0。SMBus时钟最大频率定义为100KHz。I2C提供多种不同速率模式操作,Standard模式最高频率达到100KHz,Fast模式为400KHz,Fast Plus为1MHz,而High-speed高达到3.4MHz。SMBus定义一个时钟低电平超时 TTIMEOUT,最大为35ms。I2C并没有明确指定任何超时限制。SMBus明确TLOW:SEXT,即SMBus从设备的累积时钟低扩展时间。I2C没有类似的规定。SMBus明确 TLOW:MEXT,即SMBus主设备的累积时钟低扩展时间。I2C没有类似的规定。
【应用】高性能8位单片机EFM8LB在100G QFSP28光模块中的应用
Silicon Labs EFM8LB系列8位MCU,以其高速度、高集成度、开发工具先进等诸多优点,使其非常适合用在100G QSFP298光模块
为什么在8位MCU C8051F392上运行正常的程序增加了一个全局变量后就无法执行到主程序中?
8位MCU C8051F392芯片内部集成有看门狗功能,这个功能默认是开启的,当全局变量过多时,在C语言的程序初始化没有结束时看门狗已经复位了,所以无法执行到主程序中,解决 办法是将STARTUP.A51添加到项目中,并在STARTUP.A51文件中将看门狗关闭。
推荐一款带ADC的小封装8位MCU,适用于对模拟性能、MCU性能以及电路板尺寸有比较高要求的场合。
推荐EFM8LB11系列8位MCU,该系列MCU内部集成了高精度ADC(14位)、4个12位DAC、内置温度传感器、模拟比较器以及丰富的数字外设和通信接口,FLASH大小为16/32KB,RAM为1.25/2.25KB,封装包括QFN24、QFN32、QFP32以及QSOP24,最小封装3x3mm,具有高性能、低功耗、小封装等特性,非常适用于高性能、低功耗、小封装,对模拟外设有更高要求的应用设计。
对于8位单片机EFM8LB10,在使用ADC功能时,如何计算ADC详细的转换时间以及速率?
根据EFM8LB1 Datasheet,ADC转换总所需时间为:Total ConverSion Time=RPT×(ADTK+NUMBITS+1)×T(SARCLK)+(T(ADCCLK)×4);where RPT is the number of converSions represented by the ADRPT field and ADCCLK is the clock selected for the ADC;在高速模式下,以最快的SARCLK为18MHz 计算,跟踪时间至少需230ns( =T(SARCLK)x4),若RPT为累计一个样本,ADCCLK为系统时钟72MHz,那么ADC的转换速率约为:14 Bit Mode:1/[230ns+(14+1)/18MHz+4/72MHz]=0.9Mbps;12 Bit Mode:1/[230ns+(12+1)/18MHz+4/72MHz]=1Mbps;10 Bit Mode:1/[230ns+(10+1)/18MHz+4/72MHz]=1.1Mbps。
8位单片机EFM8BB21F16可以使用哪些仿真器,与C8051F系列有什么不同?
8位单片机EFM8系列MCU仍然使用了C2接口,所以C8051F使用的仿真器都可以与其通信。目前有如下类型: 1、EFM8 STK 上的J-Link,这种仿真器由Segger开发。 2、Silabs的UDA、第三方的仿真器。 3、Silabs的TOOL STICK。
8位MCU c8051f040内部时钟振荡器是否可以用于产生波特率的时基?
8位MCU c8051f040器件的内部时钟振荡器精度为±2%,可用于产生波特率。
电子商城
现货市场
服务
朗能泛亚提供是德(Keysight),罗德(R&S)等品牌的测试测量仪器维修服务,包括网络分析仪、无线通讯综测仪、信号发生器、频谱分析仪、信号分析仪、电源等仪器维修,支持一台仪器即可维修。
提交需求>
可定制射频隔离器/环行器(10M-40GHz),双工器/三工器(30MHz/850MHz-20GHz),滤波器(DC-20GHz),功分器,同轴负载,同轴衰减器等射频器件;可定制频率覆盖DC~110GHz,功率最高20KW。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论