看板 LinuxDev 關於我們 聯絡資訊
環境是用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
openeyes222: 位址本來就是driver註冊就要的。05/06 07:02
不太懂你的意思@@ 位址是固定的 可是Pi一直去呼叫錯誤的位址
drag: 請打command詳細,資訊不足我也只能說試試下面:05/07 15:56
drag: i2cdump -f -y 1 0xC005/07 15:56
哪方面資訊不足啊@_@? 這是我打指令後的結果 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
drag: 請問你的i2cdetect詳細?05/08 14:14
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
drag: 請問是RPi一代還是二代? 一代 sudo i2cdetect -y 005/08 18:04
openeyes222: 就是你的driver沒有去註冊對的位址呀!05/08 19:01
是二代的 那要怎樣才能註冊對的位址@_@? ※ 編輯: tk930732 (140.122.53.60), 05/09/2015 20:00:35
LoSaNgeR: 7bit address他是在STT後送(r/w&0x80)|(0x60 > 1) 05/18 23:58
LoSaNgeR: 如果找著做的話還是不行, 檢查一下另一邊電阻是不是調整 05/18 23:59
tk930732: 我當初就是照著那個網址做的~ 05/22 13:04
tk930732: 第二句看不太懂@_@ 05/22 13:04
tk930732: 電阻的話 我用的晶片是整個都焊好的完整模組 應該不會 05/22 13:05
tk930732: 是有問題 有用BeagleboneBlack接過也是能撥 05/22 13:05
surfingbboy: 0x30不就正好是0x60 shift 1嗎?7bit位址剛好 06/02 16:43
surfingbboy: 在probe加printk看有沒有印就知有無註冊成功 06/02 16:45