[問題] i2c抓錯位址

看板LinuxDev作者 (吃吃不吃魚)時間9年前 (2015/05/05 01:35), 9年前編輯推噓8(807)
留言15則, 5人參與, 最新討論串1/1
環境是用raspberry pi 要用pi透過i2c去控制TEA5756 FM收音機模組 目前使用i2cdetect時 全部的位址都是-- 都沒有抓到 有使用過邏輯分析儀去看 結果發現pi端在呼叫0x30這個位址 但TEA5756的正確位址是在0x60 執行i2cdetect時 掃過所有的腳位 在0x60上 是有回應ACK的 但0x60卻也是-- 想請問為什麼會這樣 明明就有抓到卻沒顯示@@? 另外也想問能不能修改i2c kernel直接指定位址? 其他i2c裝置接上後都會自己抓到正確位址的啊 不知道能不能在這發文 不行請告知會自刪 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.36.65 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1430760911.A.99B.html

05/06 07:02, , 1F
位址本來就是driver註冊就要的。
05/06 07:02, 1F
不太懂你的意思@@ 位址是固定的 可是Pi一直去呼叫錯誤的位址

05/07 15:56, , 2F
請打command詳細,資訊不足我也只能說試試下面:
05/07 15:56, 2F

05/07 15:56, , 3F
i2cdump -f -y 1 0xC0
05/07 15:56, 3F
哪方面資訊不足啊@_@? 這是我打指令後的結果 No i2c-bus specified! Pi一直在呼叫對錯誤的位址 所以指令沒辦法丟到TEA5756上 現在要先想辦法讓TEA5756回應ACK才對吧@_@ 我想要修改的不是暫存器的數值 我是想要找方法指定Pi去找正確的位址建立連線0.0 所以才問能不能只讓Pi去叫正確的的位址0x60 不知道這樣解釋大家有沒有看懂=口= ※ 編輯: tk930732 (120.126.145.65), 05/07/2015 21:07:05 ※ 編輯: tk930732 (120.126.145.65), 05/07/2015 21:13:28

05/08 14:14, , 4F
請問你的i2cdetect詳細?
05/08 14:14, 4F
pi@raspberrypi:~$ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- ※ 編輯: tk930732 (120.126.145.65), 05/08/2015 16:54:10

05/08 18:04, , 5F
請問是RPi一代還是二代? 一代 sudo i2cdetect -y 0
05/08 18:04, 5F

05/08 19:01, , 6F
就是你的driver沒有去註冊對的位址呀!
05/08 19:01, 6F
是二代的 那要怎樣才能註冊對的位址@_@? ※ 編輯: tk930732 (140.122.53.60), 05/09/2015 20:00:35

05/18 23:58, , 8F
7bit address他是在STT後送(r/w&0x80)|(0x60 > 1)
05/18 23:58, 8F

05/18 23:59, , 9F
如果找著做的話還是不行, 檢查一下另一邊電阻是不是調整
05/18 23:59, 9F

05/22 13:04, , 10F
我當初就是照著那個網址做的~
05/22 13:04, 10F

05/22 13:04, , 11F
第二句看不太懂@_@
05/22 13:04, 11F

05/22 13:05, , 12F
電阻的話 我用的晶片是整個都焊好的完整模組 應該不會
05/22 13:05, 12F

05/22 13:05, , 13F
是有問題 有用BeagleboneBlack接過也是能撥
05/22 13:05, 13F

06/02 16:43, , 14F
0x30不就正好是0x60 shift 1嗎?7bit位址剛好
06/02 16:43, 14F

06/02 16:45, , 15F
在probe加printk看有沒有印就知有無註冊成功
06/02 16:45, 15F
文章代碼(AID): #1LHwtFcR (LinuxDev)