I2C模組 外接EEPROM和相關知識點

2022-09-01 02:03:09 字數 1418 閱讀 4241

/*

* file: main.c

* author: colder

** created on 2016-11-17,5:02**/

#include

#include

#include "p30f6014.h"

unsigned long int i;

unsigned int writetable[16] = ;

unsigned int readtable[16];

unsigned int controlbytew = 0xa0;

unsigned int controlbyter = 0xa1;

unsigned int addressh = 0x00;

unsigned int addressl = 0x00;

void configei2ceeprom()

void pagewrite()

i2cconbits.pen = 1;

while(i2cstatbits.trstat == 1);

}void pageread()

i2cconbits.pen = 1;

while(i2cconbits.pen == 1);

}int main()

//***********************************

// i2crcv 接收暫存器

// i2ctrn 傳送暫存器

// i2cbrg 波特率發生器

// i2ccon 控制暫存器

// i2cstat 狀態暫存器

// i2cadd 位址暫存器

//************************************

// i2ccon下的重要標誌位:

// ackdt 應答資料位(工作於主控器件模式,適用於主控器件的接受過程),當軟體起動應答序列時將傳送該值

// acken 應答串行使能位(工作於主控器件,適用於主控器件接受過程).

// rcen 接收使能位(作為主控器件工作時)

// pen 停止條件使能位(作為主控器件工作時)

// sen 起動條件使能位-(起動後序列結束時,由硬體清0)

//************************************

// i2cstat下的重要標誌位:

// trstat 傳送狀態位 (1-主控器件正在傳送過程中)

// rbf 接收緩衝器滿狀態位(1-接收完成,i2crcv滿/0-接收未完成,i2crcv空)

// si2cif為從動器件中斷,在檢測到位址為從動器件位址時啟用中斷.下列事件會產生si2cif中斷:

//1.檢測到有效器件位址(包括廣播呼叫方式的位址)

//2.傳送資料的請求

//3.接收到資料

I2C驅動(2) 讀寫eeprom

include include include include include include include include include static unsigned short ignore static unsigned short normal addr 位址值是7位 改為0x60的話...

I2C外掛程式eeprom的讀寫

i2c簡介 i2c匯流排通訊是一種通訊協,用於連線微控制器及其外圍裝置,由兩根線組成,時鐘線sda和資料線scl。如圖所示,外掛程式裝置接到相應的線上就可以被i2c識別到,另外關於scl,sda以怎麼樣的波形去傳送訊息,以及裝置的應答波紋就不在詳細介紹了,這個對於不是直接寫驅動的開發人員來說沒有必要...

Uboot關於i2c和EEPROM的命令

在uboot命令列下輸入i2c並回車,會列印出i2c所有命令的使用方法 比如i2c dev會列印出目前掛載的i2c裝置 i2c md命令是從i2c裝置讀取資料,在這裡本人用的是beaglebone black,然後就選擇eeprom這個內建的i2c裝置進行讀取 要注意的是md命令的引數,第乙個是ch...