最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

成功把圈圈的程序應(yīng)用到ZLG的PDIUSBD12開發(fā)板上!!!

作者:hugoliang 欄目:技術(shù)交流
成功把圈圈的程序應(yīng)用到ZLG的PDIUSBD12開發(fā)板上!!!
我按照圈圈的BLOG上給的程序,修改后,想把它用到USBD12的開發(fā)板上,可是根本沒有識別.我用bus hound看的結(jié)果如圖所示.
我不理解的是第一行應(yīng)該是GET_STATUS,它的第一個字節(jié)應(yīng)該是0x80,0x81,0x82其中的一個,可是哪個都不是,這是為什么呢?謝謝.
同時感謝圈圈提供的程序和圖,使我對USB的學(xué)習(xí)很快地就入門了。謝謝

* - 本貼最后修改時間:2006-3-25 21:16:05 修改者:hugoliang

2樓: >>參與討論
computer00
估計是程序哪里改錯了,你只要修改相應(yīng)的IO口即可,其它地方不動

你的USBD12外部是不是接了上拉電阻?注意核對一下電路圖。

3樓: >>參與討論
hugoliang
可是連主機發(fā)過來的數(shù)據(jù)都不對啊?
由第一行應(yīng)該是GET_STATUS,它的第一個字節(jié)應(yīng)該是0x80,0x81,0x82其中的一個,可是主機發(fā)過來的是0xa3,主機發(fā)過來的數(shù)據(jù)都是不對的,這又是為什么呢?我真的很自己檢查過程序了,謝謝.

4樓: >>參與討論
computer00
你看到的get_status應(yīng)該是USB主控制器發(fā)給根集線器的。
因為USB插入,并接了上拉電阻之后,USB根集線器就會檢測到設(shè)備插入,并報告USB主控制器。
USB主控制器就會通過發(fā)送獲取集線器狀態(tài)的命令給根集線器。


我的程序肯定是沒問題的。估計還是硬件連接或者管腳分配的問題。

5樓: >>參與討論
hugoliang
我是個菜鳥,肯定是哪里改錯了.
對了,你能把serial.h這個文件放到你的BLOG上嗎?我想試著用串口調(diào)試一下.謝謝圈圈.

6樓: >>參與討論
computer00
串口其實很簡單的,你自己隨便寫一個串口發(fā)送程序即可。
下面這幾個都改好了嗎?另外,確認一下你的D12跟我給的圖有什么區(qū)別沒。

#define USB_DATA                  P0
#define USB_A0                    P3_5
#define USB_WR                    P3_6
#define USB_RD                    P3_7
#define USB_INT                   P3_2


俺理說,按照我的原理圖連接,燒入程序就可以用的,其它地方都不用改動。已經(jīng)有人成功使用過了。

7樓: >>參與討論
hugoliang
你好,我已經(jīng)用串口調(diào)試過了.出現(xiàn)一些問題.
我把串口調(diào)試功能加到里面,按照你的程序,每次串口總是收到一大堆"O",就是連"OK"都沒顯示完整.是不是說明,單片機在不停地復(fù)位?而引起復(fù)位的,我查了一下開發(fā)板的原理圖,只可能是器件掛起,可是又是什么引起器件掛起的呢?謝謝

8樓: >>參與討論
computer00
器件掛起怎么會導(dǎo)致單片機復(fù)位呢?不可能吧。
 
9樓: >>參與討論
hugoliang
恩,開發(fā)板的說明書上是這么寫的.
開發(fā)板的電路連接就是掛起恢復(fù)時,給MCU發(fā)一個復(fù)位信號.
但是我不知道是不是因為這個引起的,我只是看到串口上收到一系列的"o",可不可以這樣理解,MCU在不斷的復(fù)位呢?謝謝你.

10樓: >>參與討論
computer00
有可能。那就是你的硬件連接跟我的不一樣了。
把D12發(fā)給MCU的復(fù)位信號去掉試試。

11樓: >>參與討論
hugoliang
剛才我把發(fā)送OK的命令改到連接USB之前了.
這樣,串口收到OK后,緊接著收到的是0xc0,說明,連接USB以后,中斷寄存器收到是的把掛起改變和總線復(fù)位置位,這是為什么呢?什么可以引起掛起改變和總線復(fù)位呢?

12樓: >>參與討論
hugoliang
串口收到的數(shù)據(jù)是這樣的。
4F 4B C0 80 C0
是這些字母的重復(fù).4F是O,4B是K,然后接下來的3個字節(jié)分別是3次讀取中斷寄存器的不同的值.第一次,掛起改變位和總線復(fù)位位置1,第二次,只有掛起改變位置1,第三次和第一次一樣。

13樓: >>參與討論
hugoliang
哦,原因查出來了.
是因為開發(fā)板上CS,RST,SUSPD線都和MCU連著,我沒有配置它們,不好意思,讓圈圈浪費了許多時間,謝謝.

14樓: >>參與討論
computer00
暈菜了……下次一定要記得,核對一下原理圖。
 

* - 本貼最后修改時間:2006-3-24 23:51:44 修改者:computer00

15樓: >>參與討論
hugoliang
又不行了……
這次是只收到一次中斷,是復(fù)位標(biāo)志置1,然后就沒有中斷了,這應(yīng)該從哪里下手檢查呢?

16樓: >>參與討論
hugoliang
我感覺是中斷模式設(shè)置的不一樣.
中斷模式:1表示報告所有的錯誤和NAKing并產(chǎn)生一個中斷;0表示只有OK被報告.你設(shè)置是的1,只收到一次中斷.而我設(shè)置的是0.但是具體意思我還是不明白.

17樓: >>參與討論
hugoliang
呵呵,大功告成!!!
利用圈圈的程序,經(jīng)過修改,已經(jīng)成功地把ZLG的D12USB開發(fā)板模擬成U盤.
首先,感謝圈圈一直的幫助,感謝圈圈公布的程序,使我很快地學(xué)到許多東西,圈圈,謝謝你.
其次,我想說一些有關(guān)把圈圈的程序移植到周立功的PDIUSBD12開發(fā)板需要注意的一些情況:
1.引腳方面:由于在圈圈的電路中,SUSPEND,CS,RST等線都沒有用,但周立功的開發(fā)板上都已和MCU連接,所以要特別注意,開始的時候,處理好片選等線的情況.
2.我也不知道為什么,在圈圈的程序中,設(shè)置模式的時候,時鐘運行位是置1的,可是在開發(fā)板上,必須置0,不知道其中的奧妙,還等圈圈來解釋.
最后,謝謝圈圈,下一步我想加上一片FLASH,做個真正的U盤,到時候還請圈圈幫忙啊:)

18樓: >>參與討論
iC921
俺和樓主一樣興奮……
 
19樓: >>參與討論
Bingoes
俺也想玩玩USB,但那個D12只有TSSOP封裝的
連SOP封裝的都沒有。我又不想花錢買專門的開發(fā)板,自己做板又得花上一筆錢做PCB,怎么算都是不劃算。用萬用板自己焊個板子是最好的了,可器件的封裝太小了,要是D12有DIP的就好了,哎哎。。。



20樓: >>參與討論
hugoliang
呵呵,看來我有必要做一些用于轉(zhuǎn)成DIP封裝的小板子了.
只是不知道有多少人需要,如果有需要的話,我就做一批,首先得送給圈圈一些啊:)如果要的人多的話,我就去做一些,到時候成本價發(fā)給大家(不好意思,如果人多我也送不起,畢竟還是個窮學(xué)生).

21樓: >>參與討論
何以解憂
萬用板有上面有TSSOP
 
22樓: >>參與討論
computer00
謝謝先~~~~~~~。這么小的板子,可以順便搭著什么板子做了。
如果專門為這么一個小板去開模,恐怕不劃算吧………………

那樣還不如干脆做成開發(fā)板算了,把51一起掛上去,反正開板費我們這里就是300。

23樓: >>參與討論
hugoliang
那我周一打聽一下.
在我的印象中,光照費好象是5毛錢左右每平方厘米,再加上3毛錢左右的制版費,應(yīng)該沒有那么貴吧.不過好象總面積必須足夠大,估計象這種轉(zhuǎn)接板,得做百八十塊,人家才管做.我估計平均下來應(yīng)該每塊1,2元錢吧,我先問問看,再看需要人的多少.如果多,我就做一些,郵寄給大家.

24樓: >>參與討論
xxdcq
我也做成功了!
有幾處改動



//第1處改動
#include<Atmel/AT89x52.H>
#include<UDISK.H>
#include<PDIUSBD12.H>
#include<MASS_STORAGE.H>
//#include<serial.h>


#define USB_COMMAND_ADD           0xff01
#define USB_DATA_ADD              0xff00

#define D12CS              P1_6
#define D12SUSPD          P3_3
#define USB_INT                   P3_2

#define ENDPOINT_NUMBER           2
#define MAX_CONTROL_DATA_SIZE     16
#define MAX_LUN                    0
#define MAX_BULK_DATA_SIZE        64

CONTROL_DATA_BUFF Control_Data;

unsigned CHAR idata buffer[64];

CBW cbw;
CSW csw;


//第2處改動
void write_usb_command(unsigned CHAR usb_command)       //寫USB命令
{
  unsigned CHAR xdata *exAddress;
  exAddress=USB_COMMAND_ADD;
  *exAddress=usb_command;
}

void write_a_usb_data(unsigned CHAR usb_data)        //寫一字節(jié)USB數(shù)據(jù)
{
  unsigned CHAR xdata *exAddress;
  exAddress=USB_DATA_ADD;
  *exAddress=usb_data;
}

unsigned CHAR read_a_usb_data(void)                  //讀一字節(jié)USB數(shù)據(jù)
{
unsigned CHAR TEMP;
unsigned CHAR xdata *exAddress;
exAddress=USB_DATA_ADD;
TEMP=*exAddress;
return TEMP;
}


//第3處改動
unsigned CHAR read_endpoint_buff(unsigned CHAR endp,unsigned CHAR len,unsigned CHAR * buff)   //讀終端點緩沖
{
unsigned CHAR i,j;
unsigned CHAR xdata *exAddress;
read_last_status(endp);
if(!(select_endpoint(endp))&0x01){error(0); return 0;}
read_endpoint_status(endp);
write_usb_command(Read_Buffer);
read_a_usb_data();
j=read_a_usb_data();
if(j>len)
  j=len;
exAddress=USB_DATA_ADD;
for(i=0;i<j;i++)
*(buff+i)=*exAddress;
clear_buffer();
return j;
}

unsigned CHAR write_endpoint_buff(unsigned CHAR endp,unsigned CHAR len,unsigned CHAR * buff)    //寫終端點緩沖
{
unsigned CHAR i;
unsigned CHAR xdata *exAddress;
read_last_status(endp);
select_endpoint(endp);
write_usb_command(Write_Buffer);
write_a_usb_data(0);
write_a_usb_data(len);
exAddress=USB_DATA_ADD;
for(i=0;i<len;i++)
*exAddress=*(buff+i);
validate_buffer();
return len;
}

//第4處改動
void connect_usb(void)                            //連接USB
{
D12SUSPD=0;                      //USB非掛起狀態(tài)
write_usb_command(0xf3);                         //初始化USBD12
write_a_usb_data(0x1e);                          //連接USB
write_a_usb_data(0x47);                          //設(shè)置頻率
}

//第5處改動
void main(void)
{
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
D12CS=0;            //選中USB
D12SUSPD=0;            //USB非掛起狀態(tài)
disconnect_usb();
// delay(1000);
// init_comport(57600);
init_usb();
D12CS=1;            //非選中USB
D12CS=0;            //選中USB
connect_usb();
// send_to_comport('O');
// send_to_comport('K');
  
while(1)
  {
   if(!USB_INT)
    {
       read_interrupt_register();
//      delay(10);
//      printc(Interrupt_Register.Register[0]);
     if(Interrupt_Register.Interrupt.bus_reset){usb_bus_reset();continue;}
     if(Interrupt_Register.Interrupt.suspend_change){usb_bus_suspend();continue;}
         if(Interrupt_Register.Interrupt.control_out_port){endp0_out();continue;}
     if(Interrupt_Register.Interrupt.control_in_port&&usb_flags.flags.usb_endp0_in){endp0_in();continue;}
//     if(Interrupt_Register.Interrupt.port_out_1)endp1_out();
//     if(Interrupt_Register.Interrupt.port_in_1)endp1_in();
     if(Interrupt_Register.Interrupt.main_out_port){endp2_out();continue;}
     if(Interrupt_Register.Interrupt.main_in_port&&usb_flags.flags.usb_endp2_in){endp2_in();continue;}
    }
  }
}

25樓: >>參與討論
hugoliang
呵呵,LS的有沒有興趣繼續(xù)做下去?
我想買一片FLASH,準(zhǔn)備把它作成一個真正的U盤:)如果有興趣,可以一起討論一起做啊:)

26樓: >>參與討論
computer00
原來開發(fā)板上用的是總線模式?我比較喜歡IO模式,哈哈。
 
27樓: >>參與討論
computer00
如果你打算用51+FLASH來做U盤的話,你會發(fā)現(xiàn)內(nèi)存太少了
非常郁悶。要借用FLASH中的一些塊來做緩沖。

因為寫是按扇區(qū)來寫的,但FLASH的擦除必須按塊擦除,所以在擦除之前,必須備份同一塊中其它扇區(qū)的數(shù)據(jù)。

特別是FAT表,如果弄不好,很容易就損壞了。

28樓: >>參與討論
hugoliang
恩,這方面的問題我看過一些資料.
我現(xiàn)在用的是P89V51RD2,有1K的字節(jié),肯定不夠,最起碼要有32K吧,先把U盤嘗試著做出來,如果可以的話,考慮用ARM.呵呵,到時候還是少不了圈圈的幫忙哈:)

29樓: >>參與討論
computer00
先慢慢啃資料吧。
 
30樓: >>參與討論
ztg33333
圈圈的BLOG 在那里,我看下
 
31樓: >>參與討論
computer00
請點擊我這個簽名的圖片,就可以打開我的blog了~~~~~~~~~~
 
32樓: >>參與討論
hugoliang
另外,圈圈,我突然想到這樣一個問題.
你在程序中模擬了一個TXT文件,如果我想模擬一個WORD文件,應(yīng)該怎么做呢?哪里有這方面的資料?

33樓: >>參與討論
computer00
這就需要去找word文檔的存儲格式了。
但這個可不容易搞啊,word文檔中包含了很多信息,要一一搞清楚可不容易。
就算你新建一個空的word文檔,大概也需要19KB的數(shù)據(jù)。

另一種辦法就是強行將test.txt的擴展名,改成.doc,這樣電腦也能用word去打開它,也可以正常顯示,但是看起來就是很單調(diào)了。

34樓: >>參與討論
hugoliang
那WORD文檔的存儲格式哪里可以找到呢?
官方有沒有公布?

35樓: >>參與討論
ljxh401
00的資料在那里下載
想玩 有材料 

36樓: >>參與討論
flyzsl
新手入門求助!
看了一個多月的ALTERA的CPLD資料,想動手操作下。
各位高手可以推薦一個 MCU+CPLD 功能的開發(fā)板嗎?具體的型號和價格,也請告知。最好是價格不太貴的哦,呵呵,是自己玩。
謝謝各位大蝦~~~

37樓: >>參與討論
zhangjcad
看看程序
 還是程序的問題~~
  我寫D12程序,調(diào)試了四五天才行了

38樓: >>參與討論
mxinfa
圈圈你太牛了
往死里佩服

39樓: >>參與討論
woodpaul
可以在設(shè)備上加一個628512,作為數(shù)據(jù)緩沖啊。
如果你打算用51+FLASH來做U盤的話,你會發(fā)現(xiàn)內(nèi)存太少了

非常郁悶。要借用FLASH中的一些塊來做緩沖。

因為寫是按扇區(qū)來寫的,但FLASH的擦除必須按塊擦除,所以在擦除之前,必須備份同一塊中其它扇區(qū)的數(shù)據(jù)。

特別是FAT表,如果弄不好,很容易就損壞了。


直接加一塊628512做緩沖不就好了么。



40樓: >>參與討論
mxinfa
樓主,向您請教問題
樓主跟你一樣我的CS,RST,SUSPD等線也都和MCU連著,按照圈圈的圖我想辦法把CS接地了,DMACK接高了,CLKOUT跟DMREQ本來就是輸出,不配置估計也沒關(guān)系,現(xiàn)在就是suspend不知道該怎么配置,它既能做輸入又能作輸出啊,你是怎么配置的?
謝謝了

41樓: >>參與討論
alexchang
尋求圈圈的BLOG!
最近也想搞搞USB,但是感覺不容易上手,能讓俺也看看圈圈的BLOG么?謝謝


42樓: >>參與討論
mxinfa
圈圈幫小弟看看
用你的這個程序,按照我自己的硬件修改了一些必要的設(shè)置后
現(xiàn)象如下:led先是快閃三下,然后慢閃三下后熄滅,系統(tǒng)彈出提示無法識別,小弟我搞了好幾天了,沒眉目,麻煩幫我看看

43樓: >>參與討論
mxinfa
慚愧,開發(fā)板自己做的沒有測試碼
我開發(fā)板用的單片機是ZE5系列的(很少有人用過可能),“51核+FPGA”的結(jié)構(gòu),40M晶振,4時鐘的,I/O方式還是總線方式是可以配置的,我按照圈圈的圖配置成了I/O方式,D+上我沒加1.5K的電阻,除了修改了幾個跟管腳有關(guān)的#define,別的地方都沒有動,降低時鐘就只有換晶振了(不想這么干。
USB_CS, USB_DMACK本來是接到I/O上的,按照圈圈的圖我分別把他們配置成了0和1,13腳跟17腳也是接到I/O的,看圈圈的懸空了,我看它們本來就是輸出腳就沒理會它們。只有suspend了,圈圈懸空了,我把它配置成0跟1都試了,效果是一樣的。
我對USB協(xié)議不太熟,想先把這個調(diào)通了,對照著程序再去看協(xié)議(直接看協(xié)議,頭大),幫幫我啊

44樓: >>參與討論
mxinfa
附圖
另外,WR、RD信號、A0信號,DATA0-DATA7信號分別進行了測試,都能正確送出來,協(xié)議本身不熟,所以Bushound也不會使用,對其收到的數(shù)據(jù)也看不懂
圖片傳不上去啊,濕了很多次了,什么時候能傳的時候再傳吧

45樓: >>參與討論
computer00
看來是比較暈。先回去看看書吧,急是急不來的。
從我第一次看USB協(xié)議,到開始做第一個USB程序,總共大概過了1年半的時間,可想USB的復(fù)雜程度。
當(dāng)然,我不是專門去看它,而是平時抽空出來看看。但不比RS232、SPI、I2C等那么簡單,
如果是這些,恐怕只要花幾個小時看點內(nèi)容,就可以開始寫程序了。



46樓: >>參與討論
BAILLSO
To Bingoes
可以自己慢帶有貼片封裝的那種萬用板啊,我現(xiàn)在就在用,TSS0P的DS12和2MB的FLASH AT45DB161B都可以焊上

下一步我也打算試試usb了,硬件環(huán)境是有了,可是我軟件不太好,希望大家多多幫忙啊

47樓: >>參與討論
bugshadow
圈圈就是強
 
48樓: >>參與討論
asdhja

不會吧!

我下了,就沒有運行起過.

? 系統(tǒng)啟動................................
斷開USB連接........................
USBD12芯片初始化
   設(shè)置地址.....................
       地址為:  0
連接USB...............
USB總線復(fù)位................................
USB總線掛起................................
USB總線復(fù)位................................
USB總線復(fù)位................................
USB總線復(fù)位................................

顯示無法識別的USB設(shè)備.

現(xiàn)在正在肯USB2.0的協(xié)議.

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
!!! UltraEdit12.00+1 和+3都有的重大 Bug !!!
無線網(wǎng)橋開發(fā)求救
protel軟件 最新版本 AD 6.0 功能介紹
請教一個關(guān)于人體檢測的問題!
菜鳥初學(xué)KEILC的問題
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號