首先要閱讀芯片手冊,大概了解該芯片如何使用
芯片功能:
就是一個i2c的多路多路開關,可以把最多8個地址相同的i2c設備分別接在TCA9548APWR芯片上,
通過i2c命令對TCA9548APWR芯片進行設置,即選擇接通一個chanel,這樣也就是選擇了8個i2c設備中的一個設備。
下圖來自芯片手冊
TCA9548A芯片地址:
既然TCA9548APWR芯片是一個i2c設備,那么一定有i2c設備地址,如下圖所示,7位地址的低3位取決於外接電平狀態
操作TCA9548A芯片:
這個芯片比較簡單,只有一個8位寄存器,將某一位置一,說明將哪個chanel開通。
但是有個問題,標准的i2c協議,是先寫i2c設備地址dev_addr,然后在寫寄存器地址offset,然后在寫數據。而TCA9548APWR芯片只有一個寄存器,那么起寄存器地址是多少呢?
經過測試可知,在標准的i2c接口函數中,將寄存器地址offset設置為0即可。即:
dev_addr=0x70;//根據自己的板卡情況,地址可能不同
offset = 0;
count= 1;
data[0]=0x80;//選擇chanel7
i2c_write(dev_addr, offset, nbytes, &data);)
操作TCA9548APWR芯片連接的i2c設備:
既然設置好了TCA9548APWR芯片,那么如何操作其連接的i2c設備呢?
這就很簡單了,直接按照正常的i2c設備進行讀寫即可。此時TCA9548APWR這個芯片就相當於是透明的。
原文鏈接:https://blog.csdn.net/zhangjianjun521/article/details/105014355?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161442497816780265472871%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161442497816780265472871&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-1-105014355.pc_search_result_cache&utm_term=tca+%E8%8A%AF%E7%89%87