EFM32 USART 芯片选择引脚(CS)手动控制?

开始者 <a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Master Employee</font></font> </a> delu 修改时间 ‎01-16-2017 03:07 PM

问题

当芯片选择引脚使能位(CSPEN)被置位时, 为何我不能驱动USART芯片选择引脚(CS)为高或者低电平?

答案

如果USART CS引脚在ROUTE寄存器中被使能, 但是ANTOCS没被使用,那么硬件会禁用CS引脚的端口引脚驱动,从而引脚输出处于浮空。

 

要使用硬件芯片选择(AUTOCS),需要满足一下条件:

  • USARTn_CTRL AUTOCS 位必须为1。
  • USARTn_CTRL CSINV 应为0(低有效)或者为1(高有效)。
  • USARTn_ROUTE LOCATION 应该选择合适的引脚ROUTE位置来选择哪个引脚作为CS。
  • USARTn_ROUTE CSPEN 必须为1从而使能对CS引脚的硬件控制。

然而,如果硬件控制策略的CS引脚时序不能满足应用需要的话,用户应该禁用CSPEN并在固件中手动控制CS引脚的输出锁存值。

 

总的说来在AUTOCS不使用的时候CSPEN不应该被置位,因为这会禁用通过GPIO_Px_POUT寄存器对该引脚手动控制从而CS引脚保持为悬空状态。