Microchip
直播中

袁富存

7年用户 180经验值
私信 关注
[问答]

mcc v3 eusart引脚方向错误该怎么办?

对于MCC v3,如果选择PIC16F1824,然后添加EUSART组件,当您勾选框为“Enable Transmit”时,它将添加TX管脚,但是将RX和TX管脚都设置为输入。那不是很有帮助。如果您然后尝试并使用“Pin Module”来消除这个明显的bug以选择TX作为输出,那么它给出以下荒谬的警告:警告:On pin“RC4”TRIS位是“output”,但函数“TX”要求它是“input”。

回帖(7)

丁亚念

2019-10-14 10:03:47
这不是一个错误。美国RT外设的数据表在16F部分中一直建议您将RX和TX的TRIS位都设置为输入。当您设置TXEN位时,它覆盖TRIS设置以使Tx pin成为输出。这样做可以简化半双工链接的实现。在较老的PIC16F数据表中更清晰。像往常一样,更新的数据表省去了实际有用的信息。
举报

周倩

2019-10-14 10:15:30
假定PIC不能TX和RX在同一个PIN上,没有充分的理由将TX作为默认行为。这仍然是一个错误,在我看来,因为没有人会希望TX作为默认输入,或者期望被警告,他们在正常和唯一的方式SUPO使用它。通过在PIC内部的物理UART(即全双工,具有单独的RX和TX引脚)通过设置TX的TX高电平和仅启用TXEN的输出驱动,这使得TX引脚在字符之间浮动。这将输入到线路驱动器芯片在字符之间的不确定水平,除非在TX引脚上使用上拉电阻器。我不明白为什么我要支付每一个板上额外的电阻器,只是为了补偿这种奇怪的软件行为。
举报

丁亚念

2019-10-14 10:30:07
如果在SPEN的同时设置TXEN,那么默认情况下它将是一个输出,而不管TRIS。这不是USART支持的唯一方式。你可以把RX和TX绑定在芯片外部,创建一个半双工接口。
举报

周倩

2019-10-14 10:43:25
有趣。你的信息来源是什么?我找不到任何确定的东西。你说“当你设置TXEN位时,它覆盖TRIS设置以使Tx引脚成为输出”。然而,我能找到的每个文档源都显示TXEN是AND门的输入以及波特率生成器的输出。也就是说,当串行时钟进入传输移位寄存器时,它就对串行时钟进行门控。我找不到任何影响TRIS或TX管脚三态的TXEN参考文献。在原理图中,TXEN信号似乎没有接近TX管脚的任何地方。后来,您建议使用“TXEN”。SPEN”用来控制TX引脚三态。现在我发现这种技术更有道理,因为SPEN信号至少显示为输入到TX引脚的“引脚缓冲和控制”块中。(详细的内部内容似乎没有文档)如果Microchip发布关于这个的更清晰的文档,那么客户就不用猜测了。只有在MCC V3,它突出了问题和原因(不必要的?)用户关心的问题。编辑更新:从搜寻网络传闻来看,在决定TX管脚是否为输出时,似乎存在一个优先等级,其中ANSEL优先于SPEN,SPEN优先于TRIS。这就是为什么MCC中TRIS的默认值被设置为输入,所以t数字方向控制由SPEN(而不是TRIS)决定,因此需要芯片到芯片的单双工通信(即没有线路驱动器)的应用可以三态TX引脚,所以RX引脚可以连接到每个芯片上的TX引脚。单双工是相当罕见的。大多数人使用全双工,并且只是使用TRIS将TX管脚设置为输出,并且它工作得很好,即使SPEN很低,也不能进行三态。然而,MCC V3警告您这不是默认设置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分