問題:USB 重新插拔後,就無法接收到命令問題,
操作流程如下:
IC使用的是TMS320F28335,首先第一次自行撰寫的軟體正常打開通訊埠,從PC下達命令,PCB均正常收發命令,
而這時如果將USB (JTAG)重新拔插(PCB沒有斷電),軟體程式重新打開通訊埠,重新下達命令,此時PCB均無正常收到新的資料,
需重新將板子重新開關電才可以正常接收到命令,這會是甚麼問題?
補充說明:TX、RX均用 ISR 傳送、接收
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.
問題:USB 重新插拔後,就無法接收到命令問題,
操作流程如下:
IC使用的是TMS320F28335,首先第一次自行撰寫的軟體正常打開通訊埠,從PC下達命令,PCB均正常收發命令,
而這時如果將USB (JTAG)重新拔插(PCB沒有斷電),軟體程式重新打開通訊埠,重新下達命令,此時PCB均無正常收到新的資料,
需重新將板子重新開關電才可以正常接收到命令,這會是甚麼問題?
補充說明:TX、RX均用 ISR 傳送、接收
好的,可以确定这个问题是并不会影响正常使用的。
XDS100调试器上有提供UART来与PC做串行通信。XDS100需要一定的时序才能与目标芯片建立连接,这个时序就包括拉低TRSTn引脚,也就是test reset引脚。所以就会出现你描述的这种情况:
而這時如果將USB (JTAG)重新拔插(PCB沒有斷電),軟體程式重新打開通訊埠,重新下達命令,此時PCB均無正常收到新的資料,
因为XDS100与F28335之间实际上并没有建立连接,是处于实际上的断开状态的;
需重新將板子重新開關電才可以正常接收到命令,
而执行了这样的操作以后,连接就恢复了。
所以这个问题是跟随XDS100v2的,或者说实际上并不存在问题。
正如我之前所说,拉高TRSTn也只是建立调试连接的时序之一。
而事实上虽然这个信号被称作test reset,但是却并不会引起复位。
在boot的特定阶段,会判断这个引脚信号的状态,选择进入emu模式还是standalone模式:

F28335的手册中对这一块没有详细的描述,上面这个图来源于F2837xD的TRM第610页:
https://www.ti.com.cn/cn/lit/ug/spruhm8i/spruhm8i.pdf
所以再次抱歉,我这里回复得还是不是很妥当:
只要TRSTn被拉高(之前回复错了,是拉高)了,就会引起芯片reset级别的复位。
***
所以是說沒辦法重新修改電路(如:加個Reset 按鈕,)或者其他種方式排除這問題?(在不重新開關板子電源情況)
解决这个问题的目的是什么?因为如果使用的是一般的UART转换器与上位机沟通,是不会存在这个问题的。这个问题并不跟随F28335。
****
进入emu模式或者是standalone模式兩者有甚麼差別?應該如何解決我想問的問題
所以是說沒辦法重新修改電路(如:加個Reset 按鈕,)或者其他種方式排除這問題?(在不重新開關板子電源情況)
解决这个问题的目的是什么?因为如果使用的是一般的UART转换器与上位机沟通,是不会存在这个问题的。这个问题并不跟随F28335。
***
目的是假使,我就只想透過XDS100 上的UART 通訊,此時如果是開發階段或者未來產品客戶使用過程,都均會有可能發生先前所說的,產品在不斷電情況,重新插拔UART,此時就會造成無法重新通訊,最終就必須把產品斷電重啟才能正常,這樣操作並不符合一個符合邏輯的操作,因此想看看是否有此解決的方式。
您說的情況是否就與以下連結說明的意思一樣
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1020534/tms320f28335-what-is-the-function-of-trst-pin-in-dsp-tms320f28335
透過XDS100 UART通訊會將TRSTn由(Low to High pin state: 0->3.3V) 因此IC腳位被拉High,這個Low to High 過程就是XDS100 UART必定與IC通訊的過程,而如果使用者過程中重新拔插XDS100 ,因為TRSTn沒有拉回Low,通訊沒有重新low to high過程,因此就會造成無法透過 XDS100 UART通訊,必須硬體reset ,才可使IC TRSTn腳位重新復歸成Low,以上這樣解釋對嗎?
大概是正确的,但不是很准确。我之前已经回复过器件与XDS100建立连接的过程:
在boot的特定阶段,会判断这个引脚信号的状态,选择进入emu模式还是standalone模式:
您說的情況是否就與以下連結說明的意思一樣
是一样的