欢迎来到天天文库
浏览记录
ID:9234816
大小:1.50 MB
页数:11页
时间:2018-04-24
《c8051fxx交叉开关配置》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、应用笔记AN001配置端口I/O交叉开关译码器高优先级SMBus2XBR0,XBR1,PRT0CF,PRT1CF,XBR2寄存器PRT2CF寄存器4SPI外部引脚2UART优先级6译码器PCAP0P0.0高优先级8I/O比较器2数字单元P0.7内部数字信号输出交叉开关T0,T1,3T2P1P1.08I/O/SYSCLK单元低优先级P1.7CNVSTR8P2P2.08I/OP0(P0.0-P0.7)低优先级单元P2.78P1(P1.0-P1.7)PRT3CF端口8寄存器锁存器P2(P2.0-P2.7)P3P3.08I/OP3单元P3.7(P3.0-P3.7)图1.交叉开
2、关译码器原理框图引言本应用笔记的目的是说明如何配置和使用端口I/O交叉开关译码器本文提供软件示例如图1所示交叉开关是一个多路选择器它用于为器件内部的硬件外设分配I/O端口例如它可以决定UART的RXD和TXD连到哪一个端口引脚交叉开关负责SMBusSPIUART定时器捕捉模块外部PCA输入比较器输出定时器外部输入/SYSCLK以及A/D转换启动输入的引脚分配必须在访问这些外设的I/O之前配置和允许交叉开关未指定的端口引脚作为通用I/OAN001配置端口I/O交叉开关译码器交叉开关提供了两个关键的系统特性y在端口0端口1和端口2上的所有未分配的通用I/O口引脚都被连续组
3、合在一起y对于引脚数量少的器件它提供了外设选择的灵活性外设选择只受限于可用的端口引脚数而不受限于哪一个引脚是可用的这就允许系统设计者在使用引脚数少的器件时能选择将哪些数字外设分配到器件上的数字I/O引脚关键点y为了使用端口0端口1或端口2的任何一个引脚作为输出交叉开关必须被允许y交叉开关译码器必须在任何一个数字外设被允许前配置y交叉开关通常在复位时被配置一次在复位处理过程的最开始处以后不再进行配置y交叉开关的设置改变器件的引脚分配y每一种交叉开关设置导致唯一的器件引脚分配如果你在交叉开关中允许或禁止外设引脚分配将发生变化y对于输出端口引脚其输出方式漏极开路或推挽必须被
4、显式设置即使那些由交叉开关分配的端口引脚也是如此例外情况是SMBus上的SDA和SCL及UART的RXD引脚这些引脚被自动配置为漏极开路y交叉开关分配的输入引脚例如NSS或/INT0是漏极开路或推挽并不重要这些引脚被配置为输入而与相应端口配置寄存器的设置无关为了将一个通用I/O引脚配置为输入与这一引脚相关的端口配置寄存器位必须被清0这样即可选择该引脚为漏极开路输出方式另外与该引脚相关的端口位必须被置1这样使该引脚处于高阻态或在XBR2中的WEAKPUD被清0时弱上拉为高电平这是端口引脚的复位配置y在任意时刻可以通过读取相应端口SFR得到端口引脚的电平值而不管交叉开关寄
5、存器的设置如何或引脚被配置为输入还是输出y交叉开关寄存器中的允许位是独立的与数字外设本身的允许位是分开的○外设部件在使用时不需要在交叉开关中被允许例如一个PCA模块即使在输出没有被接到引脚的情况下也能产生中断○那些在交叉开关中被允许但在它们自己的SFR中被禁止的外设仍然控制端口引脚这就是说端口引脚可以在任何时候被读取但是输出被占用它的外设所控制不能作为通用输出口来访问y端口1上的四个外部中断P1.[4..7]是由引脚上的下降沿触发的与下降沿触发源交叉开关设置或端口引脚的输出方式无关y与标准8051不同的是C8051提供了真正的推挽输出如果需要8051的上拉功能可以通过
6、将相应的端口输出配置为推挽方式然后再配置为漏极开路来进行软件仿真确定器件引脚分配本节介绍如何使用优先权交叉开关译码表即表4来决定器件的引脚分配这种分配基于交叉开关寄存器中的外设选择这些选择在图2图4中列出为了确定引脚分配首先根据所需要的外设来配置交叉开关寄存器然后从优先权交叉开关译码表的顶部开始向下扫描直到遇到第一个被允许的外设部件该设备将使用P0.0如果需要多个引脚就可以按顺序从P0.1向后分配例如如果SPI是第一个被允许的外设则SCK2AN01-1.1AN001配置端口I/O交叉开关译码器MISOMOSI和NSS将分别被分配到P0.0P0.1P0.2P0.3下一个
7、被允许的外设将被分配到引脚P0.4所有未分配的引脚作为通用I/O例1假设一个应用需要ySPIyUARTy两个捕捉模块y/INT0yT2参考图2图4中的I/O端口交叉开关寄存器说明交叉开关寄存器配置如下XBR0=00010110b允许UART两个捕捉模块和SPIXBR1=00100100b允许T2和/INT0XBR2=01000000b允许交叉开关从表4的顶部开始我们发现SPI引脚将占用P0.[0..3]因为不使用SMBusUART占用引脚P0.[4..5]CEX0占用P0.6CEX1占用P0.7/INT0占用P1.0T2占用P1.1其它端口引脚P1.
此文档下载收益归作者所有