Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
版主
|
貼圖要壓成 ZIP 檔或使用 JPG 圖檔格式,在瀏覽處找到檔名後就可以送出了。
Attach file: (0.00 KB)
發表於: 2009/1/14 11:54
|
|||
|
Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
高級會員
|
請問這邊能貼圖嘛 ?
其實我已經在用示波器來看了,我想貼上來給大家看一下
發表於: 2009/1/14 11:48
|
|||
|
Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
版主
|
CCS 沒用過,我還是建議一下不要用看程式的的方式除錯,應該找台示波器配合軟體來除錯的,這樣才可以依據 SPI Timming 來找出程式的問題。
發表於: 2009/1/14 11:27
|
|||
|
Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
高級會員
|
目前程式是改成這樣...
APP001實驗板上 DIP 開關是把相關腳位給 ON 而已 用終端機看印出狀態是空空沒有東西 用示波器看CS腳是有明顯 LH動作 但是在 LH這中間 CLK 腳只有突波...沒有明顯的"數據CLK" 還是無法動作....冏 ------------------------------------------------------------------ output_low(pin_a5); //CS給LOW { SPI_write(0x06); //寫入致能 SPI_write(0x02); //發送操作碼 spi_write(0x00); //送high_address spi_write(0x10); //送low_address spi_write(0x65); //送出數據 A output_high(pin_a5); //CS給HIGH } output_low(pin_a5); //CS給LOW { SPI_write(0x03); spi_write(0x00); //送high_address spi_write(0x10); //送low_address SPI_Msg = spi_read(); output_high(pin_a5); //CS給HIGH } printf("%c",SPI_Msg); delay_ms(200);
發表於: 2009/1/13 11:02
|
|||
|
Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
高級會員
|
我看了一下 datasheet 的波形圖
寫的部份 : 0x02 //是寫入操作碼 0x00 //給high_address 0x10 //給low_address data //接著寫入資料 SO ~~ 我這樣寫 : spi_write(0x02); spi_write(0x00); spi_write(0x10); spi_write(0xA5); -------------------------------------------------- 讀取的部份 : spi_write(0x03); spi_write(0x00); spi_write(0x10); Val = spi_read(); -------------------------------------------------- printf("%c",Val); // 沒有東西出來 Orz
發表於: 2009/1/12 17:07
|
|||
|
Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
高級會員
|
嗯 ~ 請教一下 address 要怎麼給呀 ?
spi_write(HIGH_address); //可否解釋一下這個 spi_write(low_address); //可否解釋一下這個 --------------------------------------------------- PIC 寫到 eeprom spi_write(0x02); //這是寫的時候先下 0x02嘛 ? spi_write(data); //接著寫入資料 --------------------------------------------------- PIC 讀取 eeprom spi_write(0x03); //這是寫的時候先下 0x03嘛 ? var = spi_read(); //接著從 eeprom 讀取資料 ? --------------------------------------------------- 是這樣的嘛 ? 不是很懂怎麼用 @_@
發表於: 2009/1/12 16:53
|
|||
|
Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
資深會員
|
參照:
CCS中有範例可看,而且你這是中斷式的吧,先用單一程式去跑看看。 而且 你有給address嗎 沒看到你程式給address耶 請參考http://ww1.microchip.com/downloads/en/DeviceDoc/21807b.pdf 中的第二章節來對應波形動作圖 Read的話要先下 SPI_write(0x03); spi_write(HIGH_address); spi_write(low_address); var = spi_read(); Wirte SPI_write(0x02); spi_write(HIGH_address); spi_write(low_address); spi_write(data); 就用這跑看看吧
發表於: 2009/1/12 15:10
|
|||
|
Re: 請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
高級會員
|
試了一個多禮拜 ~ 我4620的SPI還是無法正常工作 ...
目前狀態是 我以 PIC 做 MASTER,由 PIC 來提供 SCK 的 CLK 給 外部的 EEPROM (25LC160A),如此我不用去管 CS 腳 ! 那麼 ~ spi_write('A'); <--- 對CCS而言這應該就會自動寫一個 A 給 EEPROM 吧 ? 我用示波器看 CLK 連坑都不吭一聲的 0.0 目前片段 code 如下 #int_SSP void SSP_isr(void) { spi_write('a'); //寫一個a過去 delay_ms(1); SPI_Msg = spi_read(); // 讀回來放在Temp delay_ms(1); printf("%c",SPI_Temp); 印出來 } } //---------------------------------------------------- void main() { enable_interrupts (INT_SSP); setup_spi(spi_master |spi_l_to_h | spi_clk_div_4 ); for(;;){ SSP_isr(); } } 希望高手能指導一下...快冏爆了 Orz ...
發表於: 2009/1/12 10:43
|
|||
|
請教 --> 關於 SPI EEPROM 如何存取使用 by CCS
|
||||
---|---|---|---|---|
高級會員
|
開發板 --> APP001 REV2.0
(看板子說明書已將 J9 都用 jump 連接,J10 斷開,如此是使用 25LC160A這顆 EEPROM) 如果沒錯的話腳位應該是(指開發板上) RC3 --> SCK --> colck RC4 --> SDI --> input RC5 --> SDO --> output 1. 我看了CCS裡附帶的 index 範例 2. 參考了C18的函數範例 3. 25LC160A的PDF也看過了 試著想要存取看看外部 EEPROM 只是試不出來 ~"~ 希望板上有能者可以給予指導一下 ~ 我是設定了如下的 code #int_SSP void SSP_isr(void) { spi_write('A'); //寫一個A過去 SPI_Temp = spi_read(0); // 讀回來 { printf("%c",SPI_Temp); 印出來 } } //---------------------------------------------------- void main() { enable_interrupts (INT_SSP); setup_spi(spi_master |spi_l_to_h | spi_clk_div_4 ); setup_spi(FALSE); } 我是用終端機看的,測試的設備不多,還是説開發過程中可以用哪些技巧來檢測也希望大大能指導一下,目前都只能用終端機在看對不對 ~ 有圖有真相嘛 最後請有玩過的大仔能幫個忙...讓它動起來了
發表於: 2008/12/25 15:25
Edited by sindyvirgo on 2008年12月25日 15:41:34
|
|||
|