ZHCSQ51 November 2023 MCF8329A
PRODUCTION DATA
MCF8329A 在內(nèi)部使用緩沖區(qū)來(lái)存儲(chǔ)在 I2C 上接收到的數(shù)據(jù)。收集 I2C 總線上的數(shù)據(jù)具有最高的優(yōu)先級(jí)。有 2 個(gè)緩沖區(qū)(乒乓)用于 I2C Rx 數(shù)據(jù),有 2 個(gè)緩沖區(qū)(乒乓)用于 I2 Tx 數(shù)據(jù)。
來(lái)自外部 MCU 的寫入請(qǐng)求存儲(chǔ)在 Rx 緩沖區(qū) 1 中,然后觸發(fā)解析塊以處理 Rx 緩沖區(qū) 1 中的該數(shù)據(jù)。當(dāng) MCF8329A 正在處理 Rx 緩沖區(qū) 1 中的寫入數(shù)據(jù)包時(shí),如果有另一個(gè)新的讀取/寫入請(qǐng)求,則來(lái)自 I2C 總線的全部數(shù)據(jù)都存儲(chǔ)在 Rx 緩沖區(qū) 2 中,在當(dāng)前請(qǐng)求之后進(jìn)行處理。
MCF8329A 最多可以容納兩個(gè)連續(xù)的讀取/寫入請(qǐng)求。如果 MCF8329A 由于高優(yōu)先級(jí)中斷而處于忙狀態(tài),則發(fā)送的數(shù)據(jù)將存儲(chǔ)在內(nèi)部緩沖區(qū)(Rx 緩沖區(qū) 1 和 Rx 緩沖區(qū) 2)中。此時(shí),如果有第三個(gè)讀取/寫入請(qǐng)求,則目標(biāo) ID 將被否定確認(rèn),因?yàn)榫彌_區(qū)已滿。
在讀取操作期間,讀取請(qǐng)求會(huì)得到處理,并且從寄存器讀取的數(shù)據(jù)與 CRC 字節(jié)(如果啟用)一起存儲(chǔ)在 Tx 緩沖區(qū)中?,F(xiàn)在,如果外部 MCU 啟動(dòng) I2C 讀取(目標(biāo) ID + R 位),則該 Tx 緩沖區(qū)中的數(shù)據(jù)將通過(guò) I2C 進(jìn)行發(fā)送。由于有兩個(gè) Tx 緩沖區(qū),因此可以緩沖來(lái)自 2 次 MCF8329A 讀取的寄存器數(shù)據(jù)。在給定該情形時(shí),如果存在第三個(gè)讀取請(qǐng)求,則控制字將存儲(chǔ)在 Rx 緩沖區(qū) 1 中,但 MCF8329A 不會(huì)對(duì)其進(jìn)行處理,因?yàn)?Tx 緩沖區(qū)已滿。
從 Tx 緩沖區(qū)中讀取數(shù)據(jù)后,該數(shù)據(jù)將不再存儲(chǔ)在 Tx 緩沖區(qū)中。緩沖區(qū)被清除,可以用于下一個(gè)要存儲(chǔ)的數(shù)據(jù)。如果讀取事務(wù)在中間被中斷并且 MCU 未讀取所有字節(jié),則外部 MCU 可以啟動(dòng)另一個(gè) I2C 讀取(僅 I2C 讀取,沒(méi)有任何控制字信息)從第一個(gè)數(shù)據(jù)字節(jié)開始讀取所有數(shù)據(jù)字節(jié)。