日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

泰凌微TLSR825X开发五 硬件IIC

發布時間:2023/12/29 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 泰凌微TLSR825X开发五 硬件IIC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

TLSR8258支持硬件I2C串行總線,可作為主模式(master)和從屬模式(slave)
泰凌微I2C模塊支持標準模式100kbps和快速模式400kbps,但必須保證系統時鐘頻率是通信速率的10倍以上

本章主要講解下I2C主模式master下的使用,如有異議,歡迎留言指正

功能管腳
  • 復用引腳必須成對匹配
SDASCL
GPIO_PA3GPIO_PA4
GPIO_PB6GPIO_PD7
GPIO_PC0GPIO_PC1
GPIO_PC2GPIO_PC3

寄存器

  • I2CSP [0x00]:分頻寄存器,僅master模式需要配置,時鐘計算公式為
    • I2C clock = system clock / (4*divclock)
  • I2C_ID [0x01]:從設備地址寄存器,最低位為讀寫位
  • I2CMST [0x02]:狀態寄存器,獲取當前是否忙與ACK接收狀態
  • I2CSCT0 [0x03]:控制寄存器0,配置主從模式與slave讀寫內存地址映射
  • I2CAD [0x04]:master模式下的數據緩存,高8位
  • I2CDW [0x05]:master模式下的數據緩存,低8位
  • I2CDR [0x06]:讀寫數據寄存器
  • I2CSCT1 [0x07]:控制寄存器1,配置I2C發送數據的流程與使能ack讀取
    • 如可以配置流程順序為 start->0x01->0x04->0x05->0x06->stop
  • I2CMAP_HADR [0xe0]:映射模式下I2C從模式數據接收緩存地址讀取
  • HOSR_ADR[0xe1~0xe3]:從模式下映射模式緩存地址,重定向到sram地址
  • I2CMAP_HOST [0xe4]:從模式下的中斷狀態,主機讀寫后觸發,寫1清除
配置流程

DMA模式

  • 僅slave支持DMA模式

代碼實例

驅動代碼可以參考i2c.c文件

接口API
  • i2c_master_init:初始化時鐘與從機地址
  • i2c_write_byte:主機寫一個字節數據到從機
  • i2c_read_byte:主機到從機讀一個字節數據
  • i2c_write_series:主機寫入一包數據到從機
  • i2c_read_series:主機到從機讀取一包數據

例程代碼參考app_i2c_master.c文件

  • 初始化i2c主機模式
void i2c_master_test_init(void) {i2c_gpio_set(I2C_GPIO_GROUP_C0C1); //管腳映射PC0 PC1i2c_master_init(0x5C, (unsigned char)(CLOCK_SYS_CLOCK_HZ/(4*200000)) );//從機地址0x5C(寫) 0x5D(讀),200K總線時鐘 }
  • I2C master讀寫測試程序
unsigned char regAddr_WriteCMD = 0x01; //從機寄存器寫地址 unsigned char regAddr_ReadCMD = 0x11; //從機寄存器讀地址unsigned char i2c_master_tx_buff[2] = {0x11, 0x22};//寫入數據緩存 unsigned char i2c_master_rx_buff[2];//讀取數據緩存void i2c_master_mainloop(void) { i2c_write_series(regAddr_WriteCMD, 1, (unsigned char *)i2c_master_tx_buff, sizeof(i2c_master_tx_buff));//往寄存器0x01寫入兩個字節i2c_read_series(regAddr_ReadCMD, 1, (unsigned char *)i2c_master_rx_buff, sizeof(i2c_master_rx_buff));//從寄存器0x11讀取兩個字節數據 }

問題勘誤

由于設計上SPI模塊和I2C模塊在芯片內部共享了部分硬件資源,所以在軟件上無法做到I2C和SPI從機模式同時使用

總結

以上是生活随笔為你收集整理的泰凌微TLSR825X开发五 硬件IIC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。