I C控制E PROM(軟體模擬)

2021-10-02 02:46:00 字數 1633 閱讀 9266

因為硬體控制有時會發生錯誤,而軟體模擬準確性更高,所以,一般使用軟體模擬

軟體模擬,就是按照iic的時序邏輯來模擬電平的產生。

如圖所示,我們需要自己模擬每一種訊號的發生。起始訊號,停止訊號,資料傳送,資料接受,傳送ack和nack,等待應答訊號。

算了。。。炸了,一直改不對,找不到錯在哪。。。。

錯**如下

#include

"i2c.h"

void

i2c_eeprom_config()

void

start()

void

stop()

uint8_t read_byte()

//讀乙個位元組

gpio_resetbits

(gpiob,gpio_pin_6)

;//scl低電平

delay()

;return data;

}void

write_byte

(uint8_t data)

gpio_resetbits

(gpiob,gpio_pin_6)

;//scl低電平

delay()

;}void

i2csendack()

void

i2csendnotack()

uint8_t wait_ack()

void

delay()

void

write_eeprom_byte

(uint8_t addr,uint8_t data)

uint8_t read_eeprom_byte

(uint8_t addr)

void

usrt_init()

//在這裡,我們要讓開發板和計算機進行通訊

intfputc

(int ch,file* f)

//printf的呼叫,用來接受開發板的資料

intfgetc

(file* f)

//scanf的呼叫,用來向開發板傳送資料

反正,在比賽時,好像是給出了iic的軟體模擬時序的**,然後需要自己寫的**是將資料從eeprom讀取和寫入的部分。

/**

* @說明 從at24c02指定位址讀出乙個位元組資料

* @引數 address:at24c02內部儲存位址

* @返回值 val:讀出資料

*/uint8_t

x24c02_read

(uint8_t address)

/** * @說明 向at24c02指定位址寫入乙個位元組資料

* @引數 address:at24c02內部儲存位址

* @引數 info:寫入資料

* @返回值 none

*/void

x24c02_write

(unsigned

char address,

unsigned

char info)

模擬IC流片經驗分享

模擬 ic設計,在國內興起的比較晚,目前成熟的很少,大家所作的晶元基本都是在仿ti maxim lt 等國際大廠的產品,做到 pin to pin specification 也是基本相同,一句話,就是替換原則。由於國內 ic設計公司基本沒有自己的工藝廠,用的比較多的就是 tsmc chartere...

IC6 電子控制系統常見控制干擾方法

硬體系統的抗干擾方法 在電子電路系統設計中,抗干擾性是必須要考慮的問題。抗干擾性的好壞,直接影響到系統能否正常的工作。形成干擾的主要因素有三點 干擾源 傳播路徑 敏感元件。基於這三個因素,針對本設計中涉及的內容將採取如下措施 在驅動電路設計中增加了續流二極體,消除繼電器線圈斷開時而產生的反電動勢干擾...

軟體變更控制

軟體生存期內全部的軟體配置是軟體產品的真正代表,必須使其保持精確。軟體工程過程中某一階段的變更,均要引起軟體配置的變更,這種變更必須嚴格加以控制和管理,保持修改資訊,並把精確 清晰的資訊傳遞到軟體工程過程的下一步驟。變更控制包括建立控制點和建立報告與審查制度。對於乙個大型的軟體來說,不加控制的變更很...