This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DLPNIRNANOEVM:Arduino 的 UART 无响应

Guru**** 651100 points
Other Parts Discussed in Thread: TXS0108E
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/dlp-products-group/dlp/f/dlp-products-forum/1084892/dlpnirnanoevm-no-response-over-uart-with-arduino

部件号:DLPNIRNANOEVM
“线程”中讨论的其它部件:TXS0108E

按照传感器数据表中的说明,我一直在尝试将 DLP NIRscan Nano EVM (“传感器”从现在开始)连接到 J3连接器的引脚3 (UART 4接收)和4 (UART 4传输)上的 Arduino Mega。 由于 Arduino 以5V 运行,传感器以3.3V 运行,我使用了 Zhing TXS0108E 双向逻辑电平转换器以防止损坏。 我选择的逻辑电平转换器支持 UART,我可以通过让 Arduino 通过具有相同精确电路的 Raspberry 3B+(也是3.3V) UART 进行通信来验证这一点,因此我确信这不是问题所在。

下图显示了整个电路:

  • 使用 Arduino 硬件串行端口1,就像在下面的代码中一样(但我也尝试了其他端口,以防万一)。
  • Arduino 接地和传感器接地连接在一起。
  • 逻辑电平转换器已启用,因为 OE 连接到 Arduino 的5V (将下拉电阻器连接到接地);将其连接到传感器的3.3V 不会产生任何影响。
  • 传感器 RX 通过逻辑电平转换器,并在末端连接到 Arduino TX 和 viceversa;以防我尝试换用电缆而不起作用。

这是我上传到 Arduino 的最低限度代码(我已经尝试了多种变体,但都不起作用)。 正如已经说过的那样,如果我连接一个 Raspberry 而不是传感器,它就能正常工作。 代码尝试根据文档中的表格发送“读取扫描时间命令”。 我从未收到传感器的任何响应,甚至没有收到错误数据包:从串行端口读取总是返回-1,好像没有数据可用。

void setup(){
 //在8N1模式下打开串行端口:8个数据位,无奇偶校验,1个停止位
 //还:115200位/秒,无流量控制,超时为1毫秒
 Serial1.begin(115200,serial_8N1);
 Serial1.setTimeout(1);//我也尝试删除此项,但无济于事
 延迟(500);

 UINT8_t 值[]={
   // A  B  C  D
      65,66,67,68,
   //校验和
      62,0,0,0,
   //标志00000011:请求回复和读取模式
      3,
   //序列的第一个和唯一一个数据包
      0,
   //数据包长度:命令字节和组字节为2字节
      2,0,
   //命令字节0x37,组字节0x02 (NNO_CMD_READ_SCAN_TIME)
      55,2,
   // D  C  B  A
      68,67,66,65
 };
 对于(uint8_t v : values){
   SERIAL1.WRITE (v);
 }
}

void loo(){
 接收的 UINT8_t = Serial1.Read();
 //无论我等待多长时间,收到的内容始终等于-1
}

使用 DLP NIRscan Nano GUI 时,传感器工作正常。 使用同一工具,我将传感器的固件和频谱库更新为从 此处下载的最新版本,但我的电路在更新前后都无法正常工作。

我在 这里发现了一条可能类似的线索:如果你认为我的帖子是重复的,我可以随意告诉我,我会在其他线索上发布我的所有信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Fabio,

    欢迎参加 DLP 论坛,感谢您对 DLP 技术的关注。 我怀疑 EVM 未通电。 请参阅 DLP NIR Nano EVM 用户指南第4.1节“外部电源要求”(第40页)。

    https://www.ti.com/lit/ug/dlpu030g/dlpu030g.pdf

    要简单地解决此问题,您可能需要先使用已充电电池为 EVM 供电,然后查看 URT 是否正在通信。

    您还可以参考参考设计中提供的原理图以了解详细信息;

    https://www.ti.com/tool/TIDA-00554

    此致,

    维耶克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉,我忘记提到我正在通过 micro-USB 连接器为 EVM 供电。 照片中看不到这种情况,因为我在断电的情况下拍摄了照片。 我尝试将 USB 电缆的另一端连接到计算机和通用电源,在这两种情况下,绿色 LED 指示灯开始闪烁1秒钟,但我没有获得串行端口上的数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Fabio,

    我认为绿色指示灯闪烁。  如果 EVM 处于休眠状态,请尝试重置或唤醒按钮?

    此致,

    维耶克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,在我的通信测试期间,我确保绿色 LED 指示灯闪烁。 在绿色 LED 停止闪烁后,我已使用重置和唤醒按钮将 EVM 从休眠模式中唤醒(尽管唤醒按钮似乎不起作用,但只有重置按钮使其能够使绿色 LED 再次开始闪烁)。 当我刚打开 EVM 并为其供电时,以及当 EVM 刚刚从休眠状态唤醒时(正如我在两种情况下所说,当我尝试通信时,绿色 LED 都闪烁),UART 通信都无法正常工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Fabio,

    我们可以进一步调查这个问题。 请给我们一些时间。

    此致,

    约翰

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Fabio,

    标志字节中的位顺序为反向。  读取和回复模式的值应为1100 0000 (0xC0),即192。

    有关 UART 命令数据包结构: DLP NIRNANOEVM 用户指南,请参阅 I 部分

    此致,

    Akhil