Thread 中讨论的其他器件: TXB0106、 TXS0102
您好!
我使用 Arduino Nano、其中蓝牙模块(RN42)通过 TX 和 RX 引脚连接在硬件 UART 上。
我使用德州仪器的 TXB0102双向电平转换器将5V 逻辑电平传递到3.3V 逻辑电平。 我使用的是专用 PCB。
虽然 TX 引脚没有问题、但我注意到 RX 上存在一种奇怪的行为。
基本上、只要 BT 模块尝试拉低 RX 处的电压、就会发生振荡。
这是我在发送 ASCII 字符"n"时得到的结果:
https://imgur.com/NkxLwFD
下面显示了我将更详细地了解的振荡:
https://imgur.com/P4j6hzR
我不使用硬件 UART、而是尝试在通用数字引脚上使用软件串行库实现串行端口、我没有遇到特殊问题:
https://imgur.com/Oe6NiTs
(在这里、我禁用了内部上拉、但即使在启用上拉的情况下也能正常工作、尽管逻辑低电平高于0V、但 TXB0102数据表对此进行了说明)。
所以问题在于使用了输入的 RX 引脚。 我在此处阅读了 Arduino 原理图:
www.Arduino.cc/.../Arduino_Nano-Rev3.2-SCH.pdf
与普通数字输入相比、RX 和 TX 引脚上的硬件差异主要在于它们还在内部连接到 FT232 USB UART 芯片、并且有一个1K 串联电阻器。
您能不能帮助我了解这是否是纯粹的硬件问题、我应该使用其他类型的电平转换器、或者 Arduino 串行库初始化 RX 引脚的方式是否是软件问题? 在这种情况下、我可能会尝试在 Arduino 消息板的软件方面获得一些帮助。
在初始化串行端口后、我尝试在代码中添加 pinMode (0、input)行(这也应该禁用内部上拉电阻器)、但它没有解决问题。
感谢您的帮助!