CH374:關(guān)于中斷標(biāo)志寄存器和測(cè)試程序

(1)CH374EVT的device例子中為什么要連續(xù)讀兩次中斷標(biāo)志寄存器 int main( void ) // USB device { mDelaymS( 50 ); // 等待CH374復(fù)位完成 CH374_PORT_INIT( ); // CH374接口初始化 Init374Device( ); // 初始化USB設(shè)備 while ( 1 ) { // 等待USB設(shè)備中斷,然后處理USB設(shè)備中斷 if( Query374Interrupt() ) // -------------讀出的中斷標(biāo)志與0x0F與 { USB_DeviceInterrupt( ); // -------------處理具體中斷 } } }

查詢的時(shí)候讀了一次,處理之前又讀了一次,如果取消前一次查詢的讀動(dòng)作,發(fā)現(xiàn)PC都不能加載驅(qū)動(dòng)了,仿真發(fā)現(xiàn)兩次讀取的中斷標(biāo)志居然是不同的,可是期間根本沒(méi)有USB通信哦。 這是怎么回事呢?

(2)使用DEBUG372.EXE來(lái)調(diào)試CH374.如果按照正常的操作先“下傳”再“上傳”,通信沒(méi)什么問(wèn)題,可是如果多點(diǎn)幾下“上傳”,通信就死掉了。 ----重啟DEBUG372.EXE沒(méi)用; ----下位機(jī)程序中把上傳和下傳處理加入互鎖也沒(méi)用; ----仿真發(fā)現(xiàn)這時(shí)候無(wú)論點(diǎn)什么,下位機(jī)程序根本產(chǎn)生不了中斷,難道CH374芯片死了?

請(qǐng)wch工程師或其他同學(xué)解惑,謝謝!


熱門(mén)產(chǎn)品 : CH641: PD及無(wú)線充電專用MCU

另追加一個(gè)問(wèn)題:

已經(jīng)設(shè)置了UED為低電平使能,而且外部都加了下拉電阻了,寫(xiě)入BIT_CTRL_OE_POLAR后,讀回來(lái)也是對(duì)的,實(shí)測(cè)也是低電平,但是讀中斷標(biāo)志寄存器里面的BIT_IF_USB_OE為什么是“1”呢(1-UE引腳為高電平)。


第一次讀中斷狀態(tài)是為了查詢中斷,有中斷則執(zhí)行中斷處理程序,如果如果連接了CH374的中斷引腳則直接查詢中斷引腳。DEBUG372.EXE軟件的要求的正確操作是:點(diǎn)一次下傳僅對(duì)應(yīng)的一次上傳。BIT_CTRL_OE_POLAR的值可以忽略,不用管它


補(bǔ)充: 第二次讀中斷是為了查明是什么樣的中斷,以便對(duì)不同的中斷進(jìn)行處理


(1)問(wèn)題是我兩次讀的中斷值是不一樣的,這就比較奇怪了。即經(jīng)常還是能進(jìn)到最后一個(gè)else里面去。這是SPI的通信問(wèn)題呢還是芯片本身就是這個(gè)樣子的啊?關(guān)于SPI這里也說(shuō)兩句,datasheet上說(shuō)支持(0,0)模式,可是我使用TI28系列DSP發(fā)現(xiàn)這個(gè)模式不能通信,實(shí)際量過(guò)波形是正確的,現(xiàn)在使用的是(0,1)還是(1,0)模式記不清楚了,就可以通信。不過(guò)速度高于2MHz時(shí)就有問(wèn)題了,我現(xiàn)在用的是1MHz SPI時(shí)鐘。這個(gè)問(wèn)題我再看看。

(2)為什么限制“點(diǎn)一次下傳僅對(duì)應(yīng)的一次上傳”,如果接著再點(diǎn)一次上傳,仿真發(fā)現(xiàn)這時(shí)候產(chǎn)生的中斷標(biāo)志是0xFF。但是從此后通信就死掉了。您能告訴我死掉的原因嗎?驅(qū)動(dòng)問(wèn)題還是程序(上位機(jī)?下位機(jī)?)。如果拔掉USB線再重新插上,通信可以恢復(fù)。


1,你確認(rèn)下在你的DSP模式0的時(shí)候SPI的信號(hào)是什么樣的?還有確認(rèn)你的DSP在模式0的時(shí)候SPI發(fā)生數(shù)據(jù)是8位數(shù)據(jù)還是16位數(shù)據(jù)? 2,至于上傳一次和下傳一次取決于你的MCU程序以及計(jì)算機(jī)的程序。我們提供的例子程序就是下傳一次和上傳一次。這個(gè)后面需要MCU和計(jì)算機(jī)之間做通信協(xié)議。


1. 8位數(shù)據(jù),波形應(yīng)該沒(méi)有問(wèn)題。不過(guò)數(shù)據(jù)看起來(lái)是在時(shí)鐘上升沿開(kāi)始變化的,這個(gè)是DSP決定的,軟件控制不了。如果CH374對(duì)MOSI采樣時(shí)間有差異,可能會(huì)造成通訊異常。 可以上傳附件嗎?可以看看波形。

2.我是想了解具體一點(diǎn)死掉的原因。如果設(shè)備在運(yùn)行過(guò)程中上位機(jī)軟件發(fā)出一個(gè)數(shù)據(jù)包給MCU并等待回傳,但是這個(gè)包在MCU那里時(shí)發(fā)生了錯(cuò)誤,這時(shí)PC發(fā)出“上傳”指令時(shí),系統(tǒng)不就死機(jī)了?


點(diǎn)上傳后PC上位機(jī)有個(gè)函數(shù)會(huì)一直等這個(gè)數(shù)據(jù)


to 7樓,

沒(méi)有仔細(xì)看PC端的程序,如果是這樣,那把PC程序關(guān)掉后重啟應(yīng)該可以恢復(fù)通訊對(duì)吧?但是實(shí)際上發(fā)現(xiàn)不行。 必須拔掉USB線再插上才能通信(PC軟件不用關(guān)掉)。


上位機(jī)軟件對(duì)應(yīng)的下位機(jī)TEST程序流程是這樣的:下傳一次數(shù)據(jù),點(diǎn)擊上傳是可以得到數(shù)據(jù)的取反,你再點(diǎn)一次上傳此時(shí)上位機(jī)程序會(huì)一直等數(shù)據(jù)上床,所以會(huì)出現(xiàn)“假死”的現(xiàn)象,但是此時(shí)你再下傳數(shù)據(jù)時(shí),上位機(jī)程序就能等到數(shù)據(jù),而退出假死的現(xiàn)象,你也可以通過(guò)重啟軟件的方法退出假死現(xiàn)象。你說(shuō)的這種現(xiàn)象是不會(huì)的,除非此時(shí)你設(shè)備斷掉了,可能你的硬件不穩(wěn)定,你在死機(jī)后在拔出設(shè)備前看下設(shè)備管理器下設(shè)備是否還存在


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频