|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
44B0開發(fā)板,USB應(yīng)用疑問,急~ |
| 作者:jackilin 欄目:ARM技術(shù) |
USB DEMO 程序: 這個(gè)獲取ID的程序是什么意思呢? 在D12的資料,指令集中,我查不到有0xfd這個(gè)指令 U32 D12RdChipId() { U32 tmp; D12Cmd = 0xfd; tmp = D12Dat;//將地址為0x2000000的數(shù)據(jù)讀出 tmp = tmp<<8|D12Dat; return tmp; } UsbRdChipId=D12RdChipId 獲取的CHIPID=0x1210是怎么來的呢? if(UsbRdChipId()==0x1210) { puts("Find PDIUSBD12, chip id = 0x1210"); ...... 謝謝!!急!請高手路過能指點(diǎn)一二 |
| 2樓: | >>參與討論 |
| 作者: good02xaut 于 2006/7/25 22:44:00 發(fā)布:
判斷芯片是否正確 手冊沒有不代表不存在啊,呵呵 很多手機(jī)的說明書沒有介紹的東西,在修理手機(jī)時(shí)都會用到。 |
|
| 3樓: | >>參與討論 |
| 作者: jackilin 于 2006/7/26 9:48:00 發(fā)布:
CHIPID=0x1210 CHIPID=0x1210是怎么得來的呢?是不是D12的ID都是一樣的?還是有所不同? |
|
| 4樓: | >>參與討論 |
| 作者: jackilin 于 2006/7/26 19:39:00 發(fā)布:
自己頂。!怎么沒人回我? |
|
| 5樓: | >>參與討論 |
| 作者: computer00 于 2006/7/26 20:10:00 發(fā)布:
都是一樣的。發(fā)0xFD就是讀ID號.如果正確,則說明電路基本上沒問題 |
|
| 6樓: | >>參與討論 |
| 作者: jackilin 于 2006/7/27 15:33:00 發(fā)布:
想用USB和PC機(jī)進(jìn)行通訊 USB DEMO程序中是通過設(shè)置EP4中斷,PC發(fā)送信號進(jìn)行LED亮燈 中斷程序: void D12Ep4IntProc() { U8 size; U8 Ep2OutBuf[Ep2PacketSize]; D12RdLastTrStat(4); size = D12RdEp(4, Ep2OutBuf, Ep2PacketSize); if((size==6)&&(*(U32 *)Ep2OutBuf==0x12345678)) ShowLed(Ep2OutBuf[4]+(Ep2OutBuf[5]<<8));//CTRL_SET.H } 但是我現(xiàn)在想向PC機(jī)發(fā)送信息,是不是利用: void D12WrEp(U8 Ep, U8 buf[], U8 cnt) { while(1) { D12SelEp(Ep); if(!(D12Cmd&1)) break; } D12Cmd = 0xf0; D12Dat = 0; D12Dat = cnt; while(cnt) { D12Dat = *buf++; cnt--; } D12Cmd = 0xfa; } 程序就能直接發(fā)送了? 我知道USB好像是被動(dòng)發(fā)送數(shù)據(jù),必須通過主機(jī)發(fā)送信號才能發(fā)送數(shù)據(jù)的吧? 我44B0的程序如何進(jìn)行發(fā)送部分的程序呢?謝謝,各位大俠給點(diǎn)提示! |
|
| 7樓: | >>參與討論 |
| 作者: computer00 于 2006/7/27 15:52:00 發(fā)布:
USB不能主動(dòng)給PC發(fā)送數(shù)據(jù),必須等待PC申請數(shù)據(jù)。 你可以由PC端的程序申請USB設(shè)備返回?cái)?shù)據(jù),這樣44B0收到后,返回?cái)?shù)據(jù)就行了。 或者將作成中斷傳輸模式的設(shè)備,這樣USB主機(jī)會定時(shí)查詢設(shè)備是否需要返回?cái)?shù)據(jù)。 |
|
| 8樓: | >>參與討論 |
| 作者: jackilin 于 2006/7/27 17:14:00 發(fā)布:
謝謝! USB定義了4種傳送類型: •控制傳送:可靠的、非周期性的、由主機(jī)軟件發(fā)起的請求或者回應(yīng)的傳送,通常用于命令事務(wù)和狀態(tài)事務(wù)。 •同步傳送:在主機(jī)與設(shè)備之間的周期性的、連續(xù)的通信,一般用于傳送與時(shí)間相關(guān)的信息。這種類型保留了將時(shí)間概念包含于數(shù)據(jù)中的能力。但這并不意味著,傳送這樣數(shù)據(jù)的時(shí)間總是很重要的,即傳送并不一定很緊急。 •中斷傳送:小規(guī)模數(shù)據(jù)的、低速的、固定延遲的傳送。 •批傳送:非周期性的,大包的可靠的傳送。典型地用于傳送那些可以利用任何帶寬的數(shù)據(jù),而且這些數(shù)據(jù)當(dāng)沒有可用帶寬時(shí),可以容忍等待。 因?yàn)槲倚枰笕萘康臄?shù)據(jù)流通,當(dāng)然并不需要速度快,是不是PC機(jī)要對USB進(jìn)行傳送類型設(shè)置?還是44B0本身可以進(jìn)行設(shè)置! 我負(fù)責(zé)的時(shí)44B0板子,USB發(fā)送數(shù)據(jù)軟件編程,PC機(jī)編程不是由我負(fù)責(zé)!我想問下,是不是直接用 void D12WrEp(U8 Ep, U8 buf[], U8 cnt) { while(1) { D12SelEp(Ep); if(!(D12Cmd&1)) break; } D12Cmd = 0xf0; D12Dat = 0; D12Dat = cnt; while(cnt) { D12Dat = *buf++; cnt--; } D12Cmd = 0xfa; } 函數(shù)就可以實(shí)現(xiàn)發(fā)送? 對了,如何檢驗(yàn)我是否發(fā)送成功呢? |
|
| 9樓: | >>參與討論 |
| 作者: eleven11 于 2006/7/28 7:06:00 發(fā)布:
大容量的數(shù)據(jù)流通為什么不用isp系列的? 設(shè)置雙緩沖,每個(gè)緩沖512 |
|
| 10樓: | >>參與討論 |
| 作者: jackilin 于 2006/7/29 13:26:00 發(fā)布:
因?yàn)槭呛凸P記本通訊 44B0是與筆記本進(jìn)行數(shù)據(jù)通訊,筆記本上只有配置USB,沒有任何串口。老板要求就用USB進(jìn)行數(shù)據(jù)通訊,我也是不得已而為之,哪位高手能幫忙呢?謝謝了! 還有個(gè)問題想問一下 ,串口調(diào)試有串口調(diào)試助手,USB通訊,有沒什么調(diào)試助手之類得軟件呢?謝謝,USB1.1 |
|
| 11樓: | >>參與討論 |
| 作者: computer00 于 2006/7/29 13:37:00 發(fā)布:
你可以使用bus hound這個(gè)軟件。 |
|
| 12樓: | >>參與討論 |
| 作者: jackilin 于 2006/7/29 13:59:00 發(fā)布:
謝謝大俠幫忙 請問大俠,您是否能回答我的問題呢?44B0中USB往筆記本發(fā)送數(shù)據(jù),程序難么?我現(xiàn)在無從下手,老板要求10號搞定,我都著急死拉,能否幫幫我呢?謝謝 |
|
| 13樓: | >>參與討論 |
| 作者: computer00 于 2006/7/29 14:15:00 發(fā)布:
USB不能主動(dòng)給USB發(fā)送數(shù)據(jù),只能被動(dòng)的等待PC請求數(shù)據(jù),并返回之 要搞USB的話,還是從協(xié)議入手吧,難度是有點(diǎn)的。 |
|
| 14樓: | >>參與討論 |
| 作者: coolbaboy 于 2006/7/29 15:12:00 發(fā)布:
網(wǎng)上有很多關(guān)于D12的資料的 網(wǎng)上有很多關(guān)于D12的資料的,我有一個(gè)用VB些的簡單測試程序 |
|
| 15樓: | >>參與討論 |
| 作者: Jackilin 于 2006/7/30 10:33:00 發(fā)布:
TO coolbaboy 大俠,能給我發(fā)一份么,謝謝! linweiping19@163.com |
|
| 16樓: | >>參與討論 |
| 作者: ringsound 于 2006/8/3 17:33:00 發(fā)布:
看看usb的傳輸協(xié)議 d12是usb DEVICE,usb傳輸只能由usb host發(fā)起,即是說要傳輸據(jù)到pc機(jī),要pc機(jī)先發(fā)送命令給d12,d12接受產(chǎn)生相應(yīng)請求中斷才能發(fā)送,而發(fā)送命令要由pc機(jī)的應(yīng)用程序來完成。這些應(yīng)該是由pc編成的人完成的吧。 而首先要先讓usb枚舉成功,建立正確的連接并能在pc上裝上驅(qū)動(dòng),這個(gè)很關(guān)鍵,44b0頻率不能太高不然d12不能正常工作,枚舉失敗,建議20M左右,如不行再降到11M,當(dāng)初被這個(gè)問題搞了很長時(shí)間,這個(gè)還跟接口配置參數(shù)有些關(guān)系,就是bank0-7有個(gè)設(shè)置似乎是io延時(shí)的東東(還沒搞明白具體是什么),說明書上也沒說清楚是什么東西,得設(shè)成最長的,3clk。設(shè)置低了cpu頻率就得降得很低。 |
|
| 17樓: | >>參與討論 |
| 作者: jackilin 于 2006/8/7 20:17:00 發(fā)布:
To ringsound 要pc機(jī)先發(fā)送命令給d12,d12接受產(chǎn)生相應(yīng)請求中斷才能發(fā)送 我的意思是,當(dāng)D12產(chǎn)生相應(yīng)請求中斷的時(shí)候,我之前是不是需要將傳送的數(shù)據(jù)先發(fā)送給D12某個(gè)類似數(shù)據(jù)發(fā)送區(qū)的地方?是不是就是D12WrEp()這個(gè)函數(shù)? 如果因?yàn)槲椰F(xiàn)在負(fù)責(zé)的是44B0板子上的工作,PC機(jī)上的工作不由我負(fù)責(zé),我想問下我現(xiàn)在最開始應(yīng)該做的是什么呢?謝謝大俠們,非常感謝 |
|
| 18樓: | >>參與討論 |
| 作者: jackilin 于 2006/8/7 20:27:00 發(fā)布:
To 各位同仁 現(xiàn)在準(zhǔn)備采用同步傳輸?shù)膫鬏敺绞竭M(jìn)行USB數(shù)據(jù)通訊,搞了N久,好像沒什么效果,請問那位好心的人,可否有相關(guān)DEMO能供我參考呢?謝謝 |
|
| 19樓: | >>參與討論 |
| 作者: jackilin 于 2006/8/8 9:21:00 發(fā)布:
D12中斷程序不解 void D12Ep4IntProc() { U8 size; U8 Ep2OutBuf[Ep2PacketSize]; D12RdLastTrStat(4); size = D12RdEp(4, Ep2OutBuf, Ep2PacketSize); if((size==6)&&(*(U32 *)Ep2OutBuf==0x12345678)) ShowLed(Ep2OutBuf[4]+(Ep2OutBuf[5]<<8)); } if((size==6)&&(*(U32 *)Ep2OutBuf==0x12345678))這個(gè)語句是何意思呢? 看不明白,特別是這個(gè)(*(U32 *)Ep2OutBuf==0x12345678))何解?謝謝大俠 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |