Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz

如何用PWM的GPIO模擬I2C?

查看數: 6644 | 評論數: 7 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發佈時間: 2013-9-12 22:28

正文摘要:

各位大大好,小弟目前使用RB-100並且使用九軸感測器G146,是用C++開發。由於實驗需要,所以我必須要讀取兩個G146的加速規數值,可是Roboard只有一個I2C介面, 所以我想要用PWM那邊的GPIO,不知道有沒有大大會這樣的 ...

回復

tree1198 發表於 2013-9-15 15:53:03
謝謝大大!!!我已經將問題解決了!!!
1.大大的方法是可以的,我已成功開啟另一個i2c位址,並且可以使用(原廠的程式碼似乎有個保護機制,需要修改掉才可以讀到I2C1_SCL與SDA),但是無法兩邊都初始化,會強碰到,由於已經找到解決方法,所以就沒去解決這個問題。
2.我發現之前一直不能讀取的原因是因為i2c_Initialize()這個函式(原廠範例程式的初始化...),如果初始化是使用這個函式的話,使用一顆G146沒有問題,但是如果連接兩顆並使用硬體更改的話就會出現問題。(這邊我沒再去深入探討)
3.如果要使用多顆I2C裝置並使用同一個I2C腳位的話,可以試試i2c_InitSW()這個函式。
roboardgod 發表於 2013-9-13 17:55:14
對   Pin8,10是第二組的腳位
然後關於資訊的部分   我是問內部的工程師的
然後在I2C Software-Simulated Functions那裏就有function可以用了
基本上可以參照sample code
然後function要換成軟體模擬的function
裡面會有devs變數   代表的是第X組
在.h有define
#define I2C_USEMODULE0         (1<<0)
#define I2C_USEMODULE1         (1<<1)
代表兩組這樣
tree1198 發表於 2013-9-13 16:56:22
多謝大大回應!!
不過我這邊的說明書那張圖的8是Reserved,10是SPISS耶?
這個資訊在哪裡有阿?
然後知道了腳位之後,我該如何定義呢?
預設SCL跟SDA的腳位是4跟6,如果用I2C Software-Simulated Functions的函式去做的話,
我應該怎麼去寫那個程式呢?麻煩大大了!!!
roboardgod 發表於 2013-9-13 16:39:14
腳位應該是這樣喔
tree1198 發表於 2013-9-13 15:11:46
本帖最後由 tree1198 於 2013-9-13 15:24 編輯

謝謝大大的回覆阿!!!
第一種的話我有看到該程式碼,大大說的是GPIO34-37吧?那個腳位是在哪裡呢?
第二種的話就是我詢問原廠工程師的方式,硬體修改之後去讀取還是不行阿...(個別讀取都沒問題,但是只要兩個串接程式就會出現問題)
roboardgod 發表於 2013-9-13 14:26:51
你要控制兩顆146的話給你一些意見
第一種是用軟體模擬
你可以去下載source code看看
在i2c.cpp裡面有提到I2C Software-Simulated Functions
那邊的function就是供軟體模擬使用了
而且有兩組可以使用

第二種是用硬體修改
你可以看看官方的硬體圖
可以把兩組的Address錯開

這樣應該就可以用了

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-6 11:14 , Processed in 0.272444 second(s), 11 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表