• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






MCU使用eeprom@SLAVE問題
#1
中級會員
中級會員


查看用戶資訊
各位高手小弟在使用EEPROM時遇到一個問題
MCU 擔任SLAVE時,MASTER傳送格式如下
COMMAND + ADDRESS + COMMAND + DATA
Write , 0x13 , Read , Slave Data(0x5A)

若SLAVE以實體EEPROM 24LC04B測驗則都是OK的
這表示MASTER端的程式應該沒問題,但若是把
SLAVE實體EEPROM改以MCU模擬,則以上面的通訊
就會卡在SLAVE收到ADDRESS後便無反應,也就是
說MASTER端把ADDRESS送出後CLK一直會卡在LOW
的狀態,好像是在等SLAVE端的ACK,但問題是
SLAVE端已將SSP1CON1bits.CKP 設為 1,硬體應
該會自動回應才對,但結果都無動作...
或者是說Master端都一直等不到SSPCON2bits.ACKSTAT
的信號.....

小弟也有使用站上的範例程式以及post在其它網
路上的demo code,但一樣是遇到相同的問題...
(當然那些範例程式都不是使用18f8722)
這包括以POLLING或是INTERRUPT的方式都一樣,
是否18F8722不能拿來做IIC的slave ?


以下為小弟的測試平台:
硬體:
MCU: 18F8722(master),18F8722(slave)
EEPROM:24LC04B
工具:
MPLAB IDE : Ver 7.41
Complier : Ver 2.4

發表於: 2008/6/3 7:37
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: MCU使用eeprom@SLAVE問題
#2
中級會員
中級會員


查看用戶資訊
補充一下:
slave端只收到
" COMMAND + ADDRESS"
0xA0 , 0x13

的部份, 後續的
"COMMAND + DATA"
Read , Slave Data(0x5A)
就沒收到

看起來matser像是在等slave的ack
因master的clk一直處在low的準位

發表於: 2008/6/3 7:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: MCU使用eeprom@SLAVE問題
#3
版主
版主


查看用戶資訊
參照:
MASTER傳送格式如下
COMMAND + ADDRESS + COMMAND + DATA
Write , 0x13 , Read , Slave Data(0x5A)

我很懷疑 24LC04 可以接受這樣的格式,以一般 write 基本格式為 : Start + command(Write) + address + data + stop

Read的基本格式為 : start + command(write) + address + R-start + command(read) + read slave data + nak + stop

一般而言,24LCxx 的格式做的比較寬鬆且提共多種格式。但實際用具有硬體 I2C 的 MCU 去做 Slave 時會有一些限制,尤其是讀取 Slave 的資料時就必須遵照 Random Read 的格式。

發表於: 2008/6/3 8:24
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: MCU使用eeprom@SLAVE問題
#4
中級會員
中級會員


查看用戶資訊
感謝高手的回應
小弟的表達有點缺陷,主要是start及stop信號由硬體做
故省略了,master在送command及data時在示波器上
頭、尾確實都有這信號,只是小弟以程式撰寫者的角度認為
MASTER傳送格式
COMMAND + ADDRESS + COMMAND + DATA
Write , 0x13 , Read , Slave Data(0x5A)
是指程式撰寫者要把write/Read及Address/Data
填值,故主觀意思認為....

BTW:
小弟搞了半天,認為8722的iic擔任slave應該有問題
因為如果我把Slave接收在matser送Read的格式為 : start + command(write) + address + "Q" R-start + command(read) + read slave data + nak + stop
在"Q"點的時序強制使用IO去回應給MATSER,這樣卻可以
讓MATSRT把後面的COMMAND:R-start + command(read) + read slave data + nak + stop完整的送出
但後面的COMMAND "command(read)"在SLAVE上接到的卻
是"command(write)"


ps:而且SLAVE 的 (SSP1BUF = 0xA5;) 無法送到matser


發表於: 2008/6/3 9:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: MCU使用eeprom@SLAVE問題
#5
版主
版主


查看用戶資訊
看一下這裡的 Slave 範例:
I2C Master/Slave 範例程式 - 使用 PIC18F4520

http://www.microchip.com.tw/modules/wfdownloads/viewcat.php?cid=12

I2C 有自己的 Protocal 不可以自行創造,建議你去找一下 I2C 的規格,讀完後你就會知道 I2C 的格式是有規定的,command 不能亂送。

PIC18F8722 是沒有問題的。

發表於: 2008/6/3 11:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: MCU使用eeprom@SLAVE問題
#6
中級會員
中級會員


查看用戶資訊
感謝版主Ryang 提供資訊!!


小弟想了解這方面的話,可能要多下功夫了!!


發表於: 2008/6/3 11:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: MCU使用eeprom@SLAVE問題
#7
版主
版主


查看用戶資訊
http://www.nxp.com/acrobat_download/usermanuals/UM10204_3.pdf

I2C規範在這裡,請到 NXP (Philips) 下載。

發表於: 2008/6/3 16:51
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------