版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
30章带外设引脚选择的I/OTOC\o"1-1"\h\z\u简 2I/O端口控制寄存 3 5 7电平变化通知(CN)引 14 15 16 34 35简
本章提供关于dsPIC33F系列器件的带外设引脚选择的I/O端口的信息。所有的器件引脚(VDDVSSMCLR和OSC1/CLKI外),均为外设与通用I/O端口所共用I/OdsPIC33F监视和控制其他器件。I/O引脚与备用功能复用。复用将取作通用I/O引脚。30-1给出了典型I/OI/O引脚读I/O TRIS I/O写读读端口 I/OI/O端I/O端口控制寄存器器件上的每个I/O引脚在TRISPORT和LAT寄存器中都分别有一个相关的位 TRIS寄存器TRISx寄存器控制位决定I/O端口相关的各个引脚是输入引脚还是输出引脚。如果某I/O引脚的TRIS位为1,则该引脚是输入引脚。如果某个I/O引脚的TRIS位为0,则该引脚被配置为输出引脚。这很好记1很像I(Input,输入),0很像O(Output,输出)。复位后,所PORT寄存器-生这种情况的原因是读-修改-写指令了输入引脚上的瞬时值,并将该值装入了端口数据锁此外,如果在I/O引脚被配置PORTx寄存器上使用了读--写指令,根据器件速度和I/O容性负载的情况I/O30-2所示为当用户应用程序试PORTA寄当CPU速度很快并且I/O引脚上的容性负载很大时,示例代码的意外结果是只有I/O的bit1被置1。图30- 意外的I/O行为示 PORTA, PORTA, PORTA,;Setpin0onPortAto;Setpin1onPortAto1BSETPORTA0I/O04压开始上升,而I/O引脚0的电压开始下降。2BSETPORTA,#1指令开始执行并 取PORTA寄存器(bit0读为0) I/O引脚0从0跳变为1始上升为逻辑电平1(见图30-21)。但是,如果在引脚0上的电平达到逻辑1的门限值之前执行第二条BSET指令(30-23),则第二BSET(读--写)指令读bit00,然后它会将该值重新写PORTA寄存器(图30-2中的2)。即,它从PORTA寄存器的值不是0x0001,而是0x0000,之后将它修改为0x0002(而不是期望值0x0003),并将该值重新写入PORTA寄存器。这将导致引脚0上的电压开始下降为逻辑电平0,1上的电压开始上升为逻辑电平1(30-2中的4)。LAT寄存器寄存器将返回保存在端口输出锁存器中的值,而不I/O引脚上的值。对与某I/O端口相关的LAT--LATx寄存器与写PORTx寄存器的效果相同。LATA,;Setpin0onPortAtoLATA,;Setpin1onPortLATA,;Setpin0onPortAtoLATA,;Setpin1onPortAto写PORTx寄存器就是将数据值写入端口锁存器写LATx寄存器就是将数据值写入端口锁存器读PORTx寄存器就是I/O引脚上的数据值读LATx寄存器就是保存在端口锁存器中的数据值漏极开路控制寄存除PORTLAT和TRIS寄存器用于数据控制外,每个端口引脚也可被单独地配置为数字输出或1即可将相应的引脚配置为漏极开路输出。极开路电压与最大VIH规范相同。端口引脚和外设配置都支持漏极开路输出特性。外设复用入数据路径读该I/O引脚,但I/O端口位的输出驱动器通常被。 一些端口与ADC模块引脚共用。要使用I/O端口功能,即使关闭了ADC模块,也必须将AD1PCFG和AD2PCFG寄存器中的相应位(如果有)设为1。与另一个外设共用一个引脚I/O端口总是服从于该外设。外设的输出缓冲数据和控制信号提供给一对多路开关。这对多路开关用于选I/O引脚的输出数据 一些端口与ADC模块引脚共用。要使用I/O端口功能,即使关闭了ADC模块,也必须将AD1PCFG和AD2PCFG寄存器中的相应位(如果有)设为1。图30- 共用端口结构框PIOPIO读 0TRIS0外设B外设A11 0011RBRI/O与多个外设复用dsPIC33F器件,尤其是那I/O引脚数较少的器件,其每I/O引脚可能要复用多个外设功能。图30-3所示为两个外设与同一个I/O引脚复用的示例。I/O引脚的名称定义了与该引脚相关的各个功能的优先级30-3I/O引脚与两个外设(外设A和外设B)复用,并命名为PERA/PERB/PIO。I/O端I/O引脚选择了适当的名称,以便用户应用程序可以方便地确定分配给该引脚的功能的优先级。对于30-3中的示例,外设A对引脚的控制具有最高优先权。如果外A和外BI/O端能,外设能,外设A将控制I/OI/O引脚的一些功能可能是那些不控制引脚输出驱动器的输入功能。这类外设的一个示例就是输入捕捉模块。如果使用相应TRIS控制位将与输入捕捉相关I/O引脚配置为输出控制。当使能外设功能时,图中所示的概念化的外设会断开I/O引脚与端口数据的连接。一般来说,以下外设允许通过PORT寄存器手动控制它们的输入引脚大多数串行通信外设在使能时将完全控I/O引脚,因此不能通过相应的PORT寄存器影响与该注 。控制”(ModuleControl)是指相关端口引脚的输出驱动器被,并且该引脚只能由外设控制和。术语“用户可设置”(UserSettable)是指相关外设端口引脚的输出驱动器可由用户通过相关TRISx特殊功能寄存器(SpecialFunctionRegisterSFR)在软件中配置。必须正确设置TRISx寄存器以使外设正常工作。对于户可设置”的外设引脚,实际的端口引脚状态总是可通过PORTxSFR。输入捕捉外设就是一个很好的用户可设置外设的例子。用户应用程序必须写入相关TRIS寄存器,将输入捕捉引脚配置为输入。当输入捕捉使能时,由I/O引脚电路仍然是激活的,可以使使用相关TRIS然后,软件即可向相应的LAT寄存器中写入值,以对输入捕捉引脚进行控制并强制产另一个例子是,可将一个INTx引脚配置为输出,然后通过写入相关的LATx位即可产生INTx中断(如果允许了中断)。UART就是一个模块控制外设的例子。当UART使能时PORT和TRIS寄存器不起作用,不能用于读或写RX和TX引脚。dsPIC33F上提供的大多数通信外设都是模块控制外设。SPI模块可配置为主模式,而主模式下只需用到SDO引脚。在这种情况下,清零(设置为逻辑0)相关的TRISx位即可将SDI引脚配置为通用输出引脚。关于如何为模块配置引脚的更I/OI/O端外设引脚选择在低引脚数器件上,这一更为严峻。在需要多个外设复用一个引脚的应用中,要在应用程序代码中进行变通比较,换句话说彻底重新设计可能是唯一的选择。外设引脚选择配置提供了这些选择的替代方法,使得用户可以在较宽I/O引脚范围内选择和配外设引脚选择配置功能对固定的一部分数I/O引脚进行操作。用户可以将大多数数字外设的输入和/或输出独立地到这些I/O引脚中的任何一个。外设引脚选择通过软件来执行,通常不可用的引脚外设引脚选择功能可在最16个引脚的范围内使用。可用引脚的数目取决于特定器件及其引脚可用的外设定端口上的特I/O电路,且不能很容易地连接到多个引脚。这些模I2C。类似的要求排除了所有带模拟输入的模块,例如A/D转换器。注 。可重和不可重外设之间的主要差异在于可重外设与默认的I/O引脚无关。必须始终在使用外设前将其分配给特定I/O引脚。相反,不可重外设始终在默认引脚上可用,假设当给I/O引脚上的可重外设有效时,它的优先级高于所有其他数I/O和与该引脚相关的数字通信外设。优先级与被外设的类型无关。可重外设的优先级不会高于与该引脚外设引脚选择功能由两组SFR控制:一组外设输入,另一组外设输出。因为它们是分输入外设引脚选择选项的输入在外设基础上进行。即,与外设相关的控制寄存器指示要被的引脚。RPINRx寄存器用于配置外设输入(30-5至寄存器30-17)。每个寄存器包5位位域组,每组都与可重外设之一相关。用适当的5位值编程给定外设的位域,会将具有对应值的RPn引脚到该外设。对于任何给定的器件,任何位域的值的有效范围与器件所支持的例如,图30-4给出了U1RX输入的可重引脚选择的图示012U1RX的可 输I/OI/O端表30- 可选择的输入源(将输入到功能QEIAQEIBQEI索 表30-1和图30-4提供了通用器件的可选择输入源的示例。 输的控制寄存器指示要被的外设输出。RPORx寄存器用于控制输出。像RPINRx寄存器一样,每个寄存器包5位位域组,每组都与一RPn引脚相关(见寄30-18至寄存器30-25)。位域的值与外设之一相对应,并且该外设的输出被到引脚(见表30-2和图30-5)默U1TXU1RTS034OC2UPDNx30-RPn的可 输出的复表30- 可重引脚(RPn)的输出选功RPnRPnUART1RPnUART1RPn连接到SPI1数据输RPn连接到SPI1时钟输RPnSPI1从选择输RPnRPnRPn连接到QEI方向(UPDN)注 。限外设选择引脚的控制机制不局限于固定外设配置的小范围内。在任何外设SFR之间没有互锁或硬件强制的锁定。也就是说,任何或所有RPn引脚上的外设的任何组合都是可能的。这包控制配置更 置。所有dsPIC33F器件都具有3个功能以防止对外设 寄存器的内容保持不变。要更改这些寄存器,必须用硬件进行。寄存器锁定由IOLOCK(OSCCON<6>)控制。将IOLOCK1可防止对控制寄存器的写操作;将IOLOCK清零则允许执行对IOLOCK清零(1)的单次操IOLOCK会保持一种状态直到被更改。这允许对所有的外设引脚选择这样进行配置:在对所有控制寄存器的更新后紧跟一个序列,然后用第二个锁定序列将IOLOCK置1。注注 MPLAB®C30提供了用OSCCON寄存器的内建C除了防止直接写操作,RPINRx和RPORx寄存器的内容一直由寄存器通过硬件进行监视。如果任何寄存器发生了意外更改(例如ESD或其他外部事件引起的干扰),将会触发配置不匹为了进一步确保安全,可以将器件配置为防止对RPINRx和RPORx寄存器进行多于一次写会话编程可允许用户(通过对序列的正确使用)对外设引脚选择寄存器不受限制的RPINRx寄存器复位为1,所RPORx寄存器复位为0,这意味着所有外设引脚选择输入连接VSS,而所有外设引脚选择输出处于断开状态。这种情况要求用户在执行任何其他应用程序代码前,必须用适当的外设配置初始化器件。由于IOLOCK位在状态下复位,因IOLOCK置1并锁定配置。I/O端I/O端脚功能。带有未用RPn功能的I/O引脚应被配置为空外设输出。外设到特定引脚的分配不会自动执行引脚I/O电路的任何其他配置。理论上,这意味着将引脚同一个可重引脚的其他固定外设的行为,了解何时使能或它们。为安全起见,共用同一根据这些概念,配置特定外设的可重引脚不会自动开启该外设功能。必须将外设特别配置为置为数字I/O。如果器件复位时引脚被配置为模拟输入,则使用外设引脚选择时必须明确将其重输入功能:U1RX和I/OI/O端例30- 配置UART1输入和输出功//Unlockbuiltin_write_OSCCONL(OSCCON&//ConfigureInput//(SeeTable30-//AssignU1RxToPinRPINR18bits.U1RXR=0;//AssignU1CTSToPinRPINR18bits.U1CTSR=1;//ConfigureOutput//(SeeTable30-//AssignU1TxToPinRPOR1bits.RP2R=3;//AssignU1RTSToPinRPOR1bits.RP3R=4;//Lockbuiltin_write_OSCCONL(OSCCON|电平变化通知(CN)引脚电平变化通知(ChangeNotificationCN)引脚使dsPIC33F器件能够向处理器发出中断请求,以响应所选择的输入引脚上的状态变化。可以选择(使能)24个输入引脚产CN中断。可用的CN输入引脚总数取决于所选的dsPIC33F器件。详细信息,请参见器件。 引 CN0CCN中 C 引 CN0CCN中 CCN1未显示细CN23CN控制寄存器4CN模块相关的控制寄存器:CNEN1CNEN2CNPU1CNPU2CNEN1和CNEN2寄存器包含CNxIE控制位,其中“x”表示CN输入引脚的。要让某CN配置和操作通过将TRISx1,确保CN引脚配置为数字输入引脚清零IFSx寄存器中的CNIF中断标志I/OI/O端CN中断发生时,用户应用程序应该读与该CN引脚相关的PORT寄存器。这样做将清除不匹voidconfigure{3IE=IE=IF=}//EnableCN3pinforvoidconfigure{3IE=IE=IF=}//EnableCN3pinforinterrupt//EnableCN//ResetCNvoidattribute((interrupt)){//InsertISRcodeIF=//ClearCN}休眠和空闲模式下的CN操作CN模块在休眠或空闲模式下继续工作。如果使能的CN引脚之一改变了状态,IFSx寄存器中的将从寄存
电平变化通知寄存以下寄存器用于允许和相应的CN中断和上拉电阻CNEN1:输入电平变化通知中断允许寄存器CNEN2:输入电平变化通知中断允许寄存器CNPU1:输入电平变化通知上拉使能寄存器CNPU2:输入电平变化通知上拉使能寄存器外设引脚选择寄存以下寄存器用于配置dsPIC33F器件引脚的输入和输出功能RPINR0:外设引脚选择输入寄存器RPINR1:外设引脚选择输入寄存器RPINR3:外设引脚选择输入寄存器RPINR7:外设引脚选择输入寄存器RPINR10:外设引脚选择输入寄存器RPINR11:外设引脚选择输入寄存器RPINR12:外设引脚选择输入寄存器RPINR13:外设引脚选择输入寄存器RPINR14:外设引脚选择输入寄存器RPINR15:外设引脚选择输入寄存器RPINR18:外设引脚选择输入寄存器RPINR20:外设引脚选择输入寄存器RPINR21:外设引脚选择输入寄存器RPOR0:外设引脚选择输出寄存器RPOR1:外设引脚选择输出寄存器RPOR2:外设引脚选择输出寄存器RPOR3:外设引脚选择输出寄存器RPOR4:外设引脚选择输出寄存器RPOR5:外设引脚选择输出寄存器RPOR6:外设引脚选择输出寄存器 信。I/OI/O端寄存器30- CNEN1:输入电平变化通知中断允许寄存器bitbitbitbitR可读-nPOR时的W10清x未bit15- 0=输入电平变化中寄存器30- CNEN2:输入电平变化通知中断允许寄存器————————bitbitbitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit7- 0=输入电平变化中寄存器30- CNPU1:输入电平变化通知上拉使能寄存器bitbitbitbitR可读-nPOR时的W10清x未bit15- 寄存器30- CNPU2:输入电平变化通知上拉使能寄存器————————bitbitbitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit7- 寄存器30- RPINR0:外设引脚选择输入寄存器———bitbit————————bitbitR可读W-nPOR时的10清x未bit15-未实现:读为bit12-...bit7-未实现:读为寄存器30- RPINR1:外设引脚选择输入寄存器————————bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit4- ...I/O端I/O端寄存器30- RPINR3:外设引脚选择输入寄存器———bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit12- T3CKR<4:0>:将Timer3(T3CK)RPn引脚的...bit7- 未实现:读为bit4- T2CKR<4:0>:将Timer2外部时钟(T2CK)分配给对应RPn引脚...I/OI/O端寄存器30- RPINR7:外设引脚选择输入寄存器———bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit12- IC2R<4:0>:将输入捕捉2(IC2)分配给对应RPn引脚的...bit7- 未实现:读为bit4- ...寄存器30- RPINR10:外设引脚选择输入寄存器———bitbit———bitbitR可读W-nPOR时的10清x未bit15-未实现:读为bit12-...bit7-未实现:读为bit4-...30-10:RPINR11————————bitbit———bitbitR可读-nPOR时的W10=清零x未bit15- 未实现:读为bit4- OCFAR<4:0>:将输A(OCFA)分配给对应RPn引脚的...30-11:RPINR12————————bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit4- ....I/O端I/O端30-12:RPINR13————————bitbit———bitbitR可读-nPOR时的W10=清零x未bit15- 未实现:读为bit4- ...I/OI/O端30-13:RPINR14———bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit12- QEBR<4:0>:将B(QEB)分配给对应RPn引脚的...bit7- 未实现:读为bit4- QEAR<4:0>:将A(QEA)分配给对应RPn引脚的...30-14:RPINR15————————bitbit———bitbitR可读W-nPOR时的10清x未bit15-未实现:读为bit4-...I/OI/O端30-15:RPINR18———bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit12- U1CTSR<4:0>:将UART1允许发送(U1CTS)分配给对应RPn...bit7- 未实现:读为bit4- U1RXR<4:0>:将UART1接收(U1RX)分配给对应RPn...30-16:RPINR20———bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit12- ...bit7- 未实现:读为bit4- ...I/OI/O端30-17:RPINR21————————bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit4- ...30-18:RPOR0———bitbit———bitbitR可读-nPOR时的W10=清零x未bit15- 未实现:读为bit12- bit7- 未实现:读为bit4- 30-19:RPOR1———bitbit———bitbitR可读-nPOR时的W10=清零x未bit15- 未实现:读为bit12- bit7- 未实现:读为bit4- 30-20:RPOR2———bitbit———bitbitR可读-nPOR时的W10清x未bit15- 未实现:读为bit12- bit7- 未实现:读为bit4- 30-21:RPOR3———bi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《骨肿瘤x线表现》课件
- 《城市工程改造伦理》课件
- 合伙开台球厅合同协议书
- 《显像管电路-习题》课件
- 2025年淮安货运资格证考题
- 2025年宁德货运从业资格证模拟考试题
- 2025年成都货运从业资格证考题500道题
- 2025年南京货运从业资格试题答案解析
- 第七单元 语文园地七-人教部编版(含答案)
- 医院建设变更协议
- 2024-2030年国内环保垃圾桶行业市场发展分析及发展前景与投资机会研究报告
- 2023-2024学年云南省昆明市呈贡区九年级(上)期末物理试卷
- 儿科吸痰小讲课
- 全国职业院校技能大赛高职组(社区服务实务赛项)考试题及答案
- 资金支付管理办法实施细则
- 《数学广角-集合》说课稿
- 国家突发公共卫生事件应急预案(2006年02月26日)
- 2024年+H1综艺广告大盘报告-66正式版
- 参观河南省博物院
- QC080000 体系培训资料
- 国家开放大学电大《机械制造基础》机考5套标准试题及答案1
评论
0/150
提交评论