ATmega128+CH375B,有沒有什么辦法讓CH375在主機(jī)和從機(jī)模式間自動切換?

ATmega128+CH375B,有沒有什么辦法讓CH375在主機(jī)和從機(jī)模式間自動切換?比方說,插上U盤,進(jìn)入主機(jī)模式,用USB線連接到PC機(jī),進(jìn)入從機(jī)模式。另外,我看的例子中大多是單片機(jī)通過CH375寫U盤,單片機(jī)通過CH375讀U盤可以參考哪個例程?用的單片機(jī)是ATmega128。

這個操作起來比較麻煩,我們這邊有一個操作的流程,你按照我們的流程來寫程序就可以了: ...... while(1){ set_mode(1){ if(setup)set_mode(2){ while(1){ PC-372 transfer data if(SUSPEND)break; } } else{ set_mode(6){ while(1){ if(INT==0)device_inter else break; //需要加超時,正常為100-200MS退出 } } } } }


外置固件的setup如何判斷呢?


set_mode(1)先要設(shè)置模式1,看看有沒有SETUP下來,如果有,則是設(shè)備模式。否則在啟動主機(jī)模式,看看中斷引腳是否產(chǎn)生了中斷。產(chǎn)生中斷就去設(shè)置初始化設(shè)備 以上過程要不斷的重復(fù),缺點是占用CPU時間。


設(shè)置模式1的時候,好像不連上位機(jī)也能setup成功,這樣就無從判斷有沒有連上位機(jī)啊?有沒有設(shè)置模式,判斷setup的例程?


有沒有設(shè)置模式1,判斷setup的例程?


那怎么可能呢。SETUP本身就是USB HOST發(fā)的。如果不連上位機(jī),那是誰發(fā)出來的呢?你參考CH372EVT.ZIP,里面XFIRM文件夾下面的代碼即可。


上位機(jī)的程序在哪里有啊?


就是說上位機(jī)如何對USB設(shè)備進(jìn)行設(shè)置?


這不需要上位機(jī)程序。USB設(shè)備只要插在PC上,PC就會主動通訊進(jìn)行枚舉設(shè)備的。這還沒涉及到上位機(jī)軟件


PC機(jī)即使找到CH375,是不是CH375也發(fā)現(xiàn)不了上位機(jī),得上位機(jī)向CH375發(fā)數(shù)據(jù)才行,這樣的話,如果是分時操作,一段時間設(shè)置為主機(jī),一段時間設(shè)置為從機(jī),設(shè)置為從機(jī)時,從上位機(jī)發(fā)現(xiàn)CH375到上位機(jī)發(fā)出數(shù)據(jù)這一系列操作必須在規(guī)定時間內(nèi)完成才行,否則CH375就又被設(shè)置成主機(jī)了。


CH375當(dāng)然可以發(fā)現(xiàn)上位機(jī),只所以讓你設(shè)置模式1的目的就可以讓上位機(jī)不發(fā)數(shù)據(jù),下位機(jī)就可以實現(xiàn)和計算機(jī)連接。即使在前一個時間段計算機(jī)沒發(fā)現(xiàn),那么最多也就幾百毫秒,又設(shè)置成設(shè)備模式,計算機(jī)還是可以發(fā)現(xiàn)設(shè)備的。


我看了CH372EVT.ZIP里面的XFIRM,是一個設(shè)置為模式1的例程,在這個例程里,CH375設(shè)置為模式1后,如果連上上位機(jī),是不是USB線一插上,INT腳就會發(fā)生中斷,而不需要上位機(jī)發(fā)數(shù)據(jù)。


如果你還不理解,建議你還是電話溝通吧。


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

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