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

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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

有誰(shuí)做過AVR控制硬盤的,請(qǐng)看過來(lái)!

作者:酸葡萄 欄目:單片機(jī)
有誰(shuí)做過AVR控制硬盤的,請(qǐng)看過來(lái)!
有誰(shuí)做過AVR控制硬盤的,請(qǐng)看過來(lái)!
電路圖是ZIPAMP的電路圖,我想為它寫個(gè)程序來(lái)練練自已.請(qǐng)幫忙!
主要部分圖如下,也可以下載PDF文件!

現(xiàn)在看看我寫的程序:這是我根據(jù)一個(gè)網(wǎng)上下載的源代碼再配合ZIPAMP電路圖改的, 用winavr寫的!請(qǐng)幫忙! 謝了!

//-------------------------------------------------------------------
// SELECT address and CS signals
//
// addressing bits
// DA0    A0    0x01    Address LINE 0
// DA1    A1    0x02    Address LINE 1
// DA2    A2    0x04    Address LINE 2
//
// chip SELECTs
// CS0    A3     0x08    Command Block SELECT
// CS1    A4    0x10    CONTROL Block SELECT
//
// 鎖存  PD4      0 鎖存
//-------------------------------------------------------------------
void SetAddress(u08 cs, u08 adr)
{     
    outp(0xff,DDRC);   //設(shè)PORTC為輸出
    sbi(DDRD,4);         //設(shè)PD4為輸出
    sbi(PORTD,4);      //輸出1
    if (cs==CTRL)  
    {
      PORTC = adr+0x08;  // SELECT A4 low -> CS1 -> CTRL
    }
    else
    {    
      PORTC = adr+0x10;   // SELECT A3 low -> CS0 -> CMD  
    
    }
    asm volatile ("nop");   //延時(shí)少少
    sbi(DDRD,4);           //輸出
    cbi(PORTD,4);           //PD4為0 鎖存
}

//--------------------------------------------------------------------
// Read data BYTE from Drive
//--------------------------------------------------------------------
u08 ReadBYTE(u08 cs, u08 adr)
{
      u08 tmp;
      SetAddress(cs,adr);
    outp(0x00, DDRA);      // PORT A as input
    outp(0x00, DDRC);      // PORT C as input
    sbi(DDRB,1);
    cbi(PORTB, 1);        // set DIOR lo
    asm volatile ("nop");    // allow pin change
    tmp = inp(PINA);             // read byte
    sbi(PORTB, 1);        // set DIOR hi
    sbi(MCUCR, SRE);             // enable RAM
      return tmp;
}


//-------------------------------------------------------------------
// Write data BYTE to Drive
//-------------------------------------------------------------------
void WriteBYTE(u08 cs, u08 adr, u08 dat)
{
      SetAddress(cs,adr);
    outp(0xff, DDRA);         // PORT A as OUTPUT
    outp(0xff, DDRC);         // PORT C as OUTPUT
    asm volatile ("nop");  // allow pin change
    sbi(DDRB,0);           // set OUTPUT
    cbi(PORTB, 0);         // set DIOW lo
    asm volatile ("nop");  // allow pin change
    outp(dat, PORTA);         // write byte
         sbi(PORTB, 0);         // set DIOW hi
}


于是我在MAIN函數(shù)里試著讀寫
main()
{
  IO_init();
  LED(2);                  //我自個(gè)加個(gè)LED,作為指示,亮一下
  WriteBYTE(CMD, 6, 0xA0); // chs mode, drive 0
  while((ReadBYTE(CMD,7)&0xc0)!=0x40); //等待busy清0,ready置1
  LED(5);                 //亮五下
}

我發(fā)現(xiàn)燈亮了2下之后就開始不亮了.
說(shuō)明程序死在while((ReadBYTE(CMD,7)&0xc0)!=0x40);

大家看看我的程序那里錯(cuò)了.

另:我的硬件是好的,為我的ZIPAMP硬盤MP3可以放歌.

謝謝!!! 謝謝!!!

http://www.21icsearch.com/buzi/upimage/upfile/200497944510.pdf

2樓: >>參與討論
Asnake
硬盤要RST的說(shuō)
我沒作過,估計(jì)的

3樓: >>參與討論
酸葡萄
我也有試RST的,但沒有作用.
我有試用PD3連接硬盤1腳,

cbi(PORTD,3);  //0
sbi(DDRD,3)   //輸出
delay(400);
sbi(PORTD,3);  //0
sbi(DDRD,3)   //輸出
delay(1000);

但結(jié)果還是一樣!


4樓: >>參與討論
酸葡萄
沒人知道嗎?
 
5樓: >>參與討論
酸葡萄
幫忙!
 
6樓: >>參與討論
酸葡萄
5555555555555555555555555
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
M48能JTAG ICE仿真嗎?
avr的mega如何擴(kuò)充ram,在icc中如何訪問
誰(shuí)能給個(gè)用TINY26的PWM轉(zhuǎn)換為DAC輸出的電路?
廣州哪里還有mega8買? 雙龍的漲價(jià)了.
用 Ponyprog 燒 mega8515 片子
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào)