• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   6 Anonymous Users






Re: I2C問題 想請Richard Yang大大回答
#9
版主
版主


查看用戶資訊
參照:

PSIR 寫道:
我都是一直調整程式到可以從示波器上看到那一根奇形怪狀的 ACK 回應信號後就可以了正常存取了,所以我都沒有在檢查 ACK 信號。


沒檢查 ACK,這樣不太好吧! 萬一換了別顆的 Slave 那就很危險了,只能說 PSIR 運氣不錯,去簽個樂透吧!

發表於: 2009/3/30 15:14
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題 想請Richard Yang大大回答
#8
資深會員
資深會員


查看用戶資訊
我都是一直調整程式到可以從示波器上看到那一根奇形怪狀的 ACK 回應信號後就可以了正常存取了,所以我都沒有在檢查 ACK 信號。

發表於: 2009/3/27 13:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題 想請Richard Yang大大回答
#7
中級會員
中級會員


查看用戶資訊
參照:

Ryang 寫道:
抱歉這兩天一直在忙新竹辦公是搬家事宜,所以無法回答。
好奇的是 : 為什麼要組合語言寫呢? 可以用 C18 嗎?

I2C 在 debug 時,友時動作未確實作完就中斷跳出會讓 I2C Module 的 Step Machine 錯亂而導致無法按程式來執行。這時就需要將 PIC18F452 重新 Reset 後再試。


嗯 因為組語的部分比較熟悉 以後會慢慢學C18
25日去台北上課的時候還有看到你說

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


Re: I2C問題 想請Richard Yang大大回答
#6
版主
版主


查看用戶資訊
抱歉這兩天一直在忙新竹辦公是搬家事宜,所以無法回答。
好奇的是 : 為什麼要組合語言寫呢? 可以用 C18 嗎?

I2C 在 debug 時,友時動作未確實作完就中斷跳出會讓 I2C Module 的 Step Machine 錯亂而導致無法按程式來執行。這時就需要將 PIC18F452 重新 Reset 後再試。

發表於: 2009/3/25 14:35
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題 想請Richard Yang大大回答
#5
中級會員
中級會員


查看用戶資訊
參照:

Eigen 寫道:
初學者在開發初期,一定會有寫錯,用 icd2 之類的工具debug 時,一定不會將 demoboard 斷電、復電,導致 i2c slave ic (ex 24lc08) 一直在錯誤的模式或錯誤的指令。

正常的操作。對 i2c 下指令,之後,會收到 ack ,沒收到 ack 表示 ic 的狀態不對,必需對 ic 下 stop command ,這個command 會讓 ic reset 回到初始的狀態。之後下下去的 command 才會被正常接收處理。

當你不明就理一直改,指令一直下,slave 端卻不會理會。

對初學者最簡單就是整個斷電,但是這樣會很難開發,所以這種問題在初學者身上就層出不窮



恩恩 我找到問題點了
感謝Eigen大分享經驗也感謝Richard Yang大分享的範例

發表於: 2009/3/24 15:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題 想請Richard Yang大大回答
#4
資深會員
資深會員


查看用戶資訊
初學者在開發初期,一定會有寫錯,用 icd2 之類的工具debug 時,一定不會將 demoboard 斷電、復電,導致 i2c slave ic (ex 24lc08) 一直在錯誤的模式或錯誤的指令。

正常的操作。對 i2c 下指令,之後,會收到 ack ,沒收到 ack 表示 ic 的狀態不對,必需對 ic 下 stop command ,這個command 會讓 ic reset 回到初始的狀態。之後下下去的 command 才會被正常接收處理。

當你不明就理一直改,指令一直下,slave 端卻不會理會。

對初學者最簡單就是整個斷電,但是這樣會很難開發,所以這種問題在初學者身上就層出不窮

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


Re: I2C問題 想請Richard Yang大大回答
#3
中級會員
中級會員


查看用戶資訊
參照:

Eigen 寫道:
又來了

沒有 斷電reset ,一直在 i2c 當掉的情況下 操作。

怎麼做都是不會好的。

stop 的操作是很重要的(初學要先會stop ,i2c 才有機會正常)




請問什麼是斷電reset 是要從程式改還是哪裡設定
stop 的操作是指產生stop條件嗎
謝謝

發表於: 2009/3/24 9:29
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: I2C問題 想請Richard Yang大大回答
#2
資深會員
資深會員


查看用戶資訊
又來了

沒有 斷電reset ,一直在 i2c 當掉的情況下 操作。

怎麼做都是不會好的。

stop 的操作是很重要的(初學要先會stop ,i2c 才有機會正常)

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


I2C問題 想請Richard Yang大大回答
#1
中級會員
中級會員


查看用戶資訊
I2C 問題 從Richard Yang對EEPROM的範例修改
用APP001 VER 3測試 一值卡在EE_Ack_ChecK沒有ACK回應
jumper也有改過 有提升電阻 不知為何不能寫入
I2C好難寫阿 是我太弱嗎...
想請問一下 如果沒ACK大概要從哪改起

========================
#include <p18f452.inc>
CONFIG OSC=HS,BOR=OFF,BORV=42,WDT=OFF,STVR=OFF,LVP=OFF

CBLOCK 0x40
CLKOE ; TABLE 1 address
DIV1SRCN
OSCDRIVE
LOADCAP
POQ
CSMC1
CSMC2
CSMC3
DIV2SRCN
ADDR
;----------------------------
CLKOEX ; TABLE 1 data
DIV1SRCNX
OSCDRIVEX
LOADCAPX
POQX
CSMC1X
CSMC2X
CSMC3X
DIV2SRCNX
ENDC
org 0x00
goto main
org 0x08
retfie
org 0x18
retfie
org 0x030
main
call i2cinitial
call numinit
call i2cout
forever goto forever

i2cinitial
bcf TRISC,3
bcf TRISC,4

movlw b'00101000' ; I2C Master Mode, Clock Rate: FOSC/(4*SSPADD+1)
movwf SSPCON1 ;
;

movlw .38 ; This gives 100KHz I2C clock @ 4MHz
movwf SSPADD ; (16MHz/4) / (38+1)= 100KHz
bsf SSPSTAT,SMP,0
bcf SSPSTAT,CKE,0
return

numinit
movlw 0xA0
movwf ADDR
movlw 0x0C
movwf CLKOE
movlw 0x00
movwf CLKOEX
return

i2cout
call numinit
call StartI2C
bcf ADDR,0
movff ADDR,W ; Send Slave Address to I2C Bus
call i2cshift
; call StartI2C
; bcf ADDR,0
; movff ADDR,WREG ; Send Slave Address to I2C Bus
; call i2cshift
movff CLKOE,W
call i2cshift
movff CLKOEX,W
call i2cshift
call StopI2C
return

i2cshift
call Send_Byte
call EE_Ack_Check
return
;****** Send START condition to bus *******
;
StartI2C ; Initiate the I2C START condition.
bsf SSPCON2,SEN
goto I2C_Done
;
;****** Send STOP condition to bus *******
;
StopI2C
bsf SSPCON2,PEN
goto I2C_Done
;
;****** Send data to I2C bus from Wreg. *******
;
Send_Byte
movwf SSPBUF
goto I2C_Done
I2C_Done
btfss PIR1,SSPIF ; Poll for SSPIF
goto I2C_Done
bcf PIR1,SSPIF
return
EE_Ack_Check
btfsc SSPCON2,ACKSTAT
goto EE_Ack_Check
return
end

發表於: 2009/3/23 23:17
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... ]

教育訓練中心

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