iMX6ULL應用筆記接口篇之 I2C 接口
本文主要適用于飛凌 OKMX6ULL-S 平臺 Linux4.1.15 操作系統。本文以讀取 rtc 芯片 RX8010 的 seconds 寄存器為例進行說明。本文使用的思路和方法僅供參考使用,其它arm開發板雖然芯片不同,但思路和方法有很多的共性,希望對您在板卡的使用中能夠有所幫助,更多ARM開發板相關資訊,關注飛凌嵌入式。 如對本文講解有不明之處,您也可以聯系飛凌的技術支持團隊咨詢了解。
先了解一下這款
FETMX6ULL-S核心板采用NXP的高性能、超高效、低成本處理器MCIMX6Y2開發設計,采用先進的ARM Cortex-A7內核,運行速度高達800MHz。先進的電源管理架構可以提供更低的功耗。 標配8路原生UART 、2路網口、2路CAN-bus總線、2路USB OTG等常用接口;核心板支持工業級和商業及兩種配置:256MB DDR3L/512MB DDR3L,256MB NandFlash/4GB eMMC/8GB eMMC,方便用戶不同的選擇。為了方便用戶二次開發的同時簡化用戶設計,為您的項目評估提供良好的評估及設計依據,飛凌為核心板提供了開發套件OKMX6ULL-S開發板,配備豐富的功能接口,滿足用戶多樣化需求。
i2C 測試例程
OKMX6ULL 默認配置了兩路 i2c,i2c1 和 i2c2
可以在系統中/dev 目錄下查看:
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <linux/i2c.h>#include <linux/i2c-dev.h>#include <sys/ioctl.h>int fd;int i2c_read_data(__u16 slave_addr, __u8 reg_addr){__u8 data[7];__u8 RX8010_REG_SEC;int ret;struct i2c_rdwr_ioctl_data i2c_read_rtc; //定義 I2C 數據包結構體struct i2c_msg msg[2] = {//構建 i2c_msg 結構體[0] = {.addr = slave_addr,.flags = 0,.buf = ?_addr,.len = sizeof(reg_addr)},[1] = {.addr = slave_addr,.flags = 1,.buf = data,.len = sizeof(data)}}i2c_read_rtc.msgs = msg;//我們要發送的數據包的指針i2c_read_rtc.nmsgs = 2;//我們要發送的數據包的個數ret = ioctl(fd, I2C_RDWR, &i2c_read_rtc); //使用 ioctl 的 I2C_RDWR 進行數據傳輸if(ret < 0){perror("ioctl error is:");return ret;}RX8010_REG_SEC = data[0];//從 i2c 讀出來的數據中取出 RTC 的秒時間return RX8010_REG_SEC;}int main(int argc, char* argv[]){__u8 TD_STATUS;fd = open("/dev/i2c-0", O_RDWR); //打開 i2c-0 的節點if(fd < 0){perror("open error\n");return fd;}while(1){TD_STATUS = i2c_read_data(0x32, 0x10); //0x32 為 i2c 地址,0x10 為寄存器地址printf("TD_STATUS value is %x\n", TD_STATUS);sleep(1);}return 0;}
把編譯得到的 i2c 可執行文件放到板子上,給可執行權限并運行,實現效果為每秒打印一次 RX8010的 seconds 寄存器中的值。
轉載請注明來源 飛凌嵌入式 :www.tkbv.cn
相關產品 >
-
OKMX6ULL-S開發板
iMX6ULL是飛凌新近推出的一款開發板,iMX6ULL與iMX6UL開發板相比,功能無區別完全兼容,配置升級,性能高,價格低。根據介紹可看出i.MX6ULL參數豐富 ,采用NXP i.MX6ULL處理器芯片,郵票孔封裝,支持Linux系統,i.MX6ULL開發板資料豐富,方便二次開發設計。
了解詳情 -
FETMX6ULL-S核心板
飛凌新出的一款采用NXP高性能、高效、低成本處理器的核心板—FETMX6ULL-S核心板,i.MX6ULL核心板采用郵票孔連接方式,ARM Cortex-A7內核,原生兩路網口,兩路Can和八路串口,可以和多種設備同時通訊。i.MX6ULL核心板支持工業級和擴展商業級兩種配置,并且經過了高低溫測試的檢驗,iMX6ULL核心板采用Linux4.1.15+Qt5.6操作系統,方便開發自己的應用程序。 了解詳情 -
FETMX6ULL-C核心板
FETMX6ULL-C核心板采用NXP i.MX6ULL處理器開發設計,是一款高性能Linux核心板,采用低功耗的ARM Cortex-A7架構,運行速度高達800MHz。iMX6ULL核心板29*40mm ,iMX6ULL這款處理器功能接口資源豐富,供貨周期長。
了解詳情 -
OKMX6ULL-C開發板
40*29mm,雙網雙CAN,8路串口| i.MX6ULL開發板是基于NXP i.MX6ULL設計開發的的一款Linux開發板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對板連接器,適應場景豐富。 了解詳情