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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

S32K144(18)LPI2C

發布時間:2023/12/8 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 S32K144(18)LPI2C 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、簡介

LPI2C可以用來實現2線或4線I2C串行總線。

2、信號方向

Signal

Name

2-Wire Scheme4-Wire Scheme
SCLLPI2C clock lineSCLIn 4-wire mode, this is the SCL input pin
SDALPI2C data lineSDAIn 4-wire mode, this is the SDA input pin
HREQHost requestif host request is asserted and the I2C bus is idle, then it will initiate an LPI2C ?master transfer
SCLSSecondary I2C clock lineNot UsedIn 4-wire mode, this is the SCLS output pin. If LPI2C master/slave are configured to use separate pins, then this the LPI2C slave SCL pin
SDASSecondary I2C data lineNot UsedIn 4-wire mode, this is the SDAS output pin. If LPI2C master/slave are configured to use separate pins, then this the LPI2C slave SDA pin

2.1、2-wire接法

2.2、4-wire接法

3、寄存器

與SPI極度相似

3.1、Version ID Register (VERID)

版本id寄存器

3.2、Parameter Register (PARAM)

主機接收和發送FIFO大小

3.3、Master Control Register (MCR)

0

MEN

主機使能

1

RST

軟件復位

2

DOZEN

Doze模式使能

3

DEGEN

調試模式使能

8

RTF

復位發送FIFO

9

RRF

復位接收FIFO

3.4、?Master Status Register (MSR)

0

TDF

發送數據標志

0:沒有請求發送數據

1:請求發送數據

1

RDF

接收數據標志

0:沒有準備好的接收數據

1:接收數據就緒

8

EPF

結束包標志

9

SDF

停止檢測標志

10

NDF

NACK檢測標志

11

ALF

仲裁標志

12

FEF

FIFO錯誤標志

13

PLTF

引腳低電平超時標志

14

DMF

數據匹配標志

24

BBF

主機忙標志

25

BBF

總線忙標志

3.5、?Master Interrupt Enable Register (MIER)

0

TDIE

發送數據中斷

1

RDIE

接收數據中斷

8

EPIE

結束包中斷

9

SDIE

停止檢測中斷

10

NDIE

NACK檢測中斷

11

ALIE

仲裁中斷

12

FEIE

FIFO錯誤中斷

13

PLTIE

引腳低電平超時中斷

14

DMIE

數據匹配中斷

3.6、?Master DMA Enable Register (MDER)

接收數據DMA使能

3.7、Master Configuration Register 0 (MCFGR0)

0

HREN

主機請求使能

1

HRPOL

配置主機請求引腳電平

2

HRSEL

主機請求選擇

8

CIRFIFO

循環FIFO使能

9

RDMO

只接收數據匹配

3.8、?Master Configuration Register 1 (MCFGR1)

?

0-2

PRESCALE

分頻設置

8

AUTOSTOP

自動停止條件

9

IGNACK

設置是否接收ACK、NACK

10

TIMECFG

超時操作

16-18

MATCFG

匹配設置

24-26

PINCFG

引腳設置

?3.9、Master Configuration Register 2 (MCFGR2)

0-11

BUSIDLE

總線idle超時

16-19

FILTSCL

故障過濾SCL

24-27

FILTSDA

故障過濾SDA

3.10、?Master Configuration Register 3 (MCFGR3)

8-19

PINLOW

低電平超時時間

3.11、Master Data Match Register (MDMR)

匹配0/1的值

3.12、Master Clock Configuration Register 0 (MCCR0/1)

0-5

CLKLO

時鐘低電平周期

0-5

CLKHI

時鐘高電平周期

16-21

SETHOLD

啟動延時

24-29

DATAVD

數據有效延時

3.13、Master FIFO Control Register (MFCR)

接收和發送的FIFO 水印配置

3.14、Master FIFO Status Register (MFSR)

接收和發送的FIFO計數

3.15、Master Transmit Data Register (MTDR)

0-7

DATA

發送數據

8-10

CMD

數據命令

3.16、Master Receive Data Register (MRDR)

0-7

DATA

接收數據

14

RXEMPTY

接收FIFO是否為空

3.17、Slave Control Register (SCR)

3.18、Slave Status Register (SSR)

3.19、Slave Interrupt Enable Register (SIER)

3.20、Slave Interrupt Enable Register (SIER)

3.21、Slave Configuration Register 1 (SCFGR1)

3.22、Slave Configuration Register 2 (SCFGR2)

3.23、Slave Address Match Register (SAMR)

3.24、Slave Address Status Register (SASR)

3.25、Slave Transmit ACK Register (STAR)

3.26、Slave Transmit Data Register (STDR)

3.27、Slave Receive Data Register (SRDR)

從機與主機基本一樣的內容

4、代碼搬運工

void LPI2C_init(void) {/* Clk src: SIRCDIV2_CLK* Enable clock for LPI2C0 */PCC->PCCn[PCC_LPI2C0_INDEX] |= PCC_PCCn_PCS(2)| PCC_PCCn_CGC_MASK;/* Prescale = 4* Ignore NACK */LPI2C0->MCFGR1 = LPI2C_MCFGR1_PRESCALE(2)|LPI2C_MCFGR1_IGNACK_MASK;/* SCL_freq = Input_freq / (2^PRESCALER * (CLKLO + CLKHI + 2)) */LPI2C0->MCCR0 = LPI2C_MCCR0_CLKLO(18)| LPI2C_MCCR0_CLKHI(6)| LPI2C_MCCR0_SETHOLD(6)| LPI2C_MCCR0_DATAVD(3);/* Transmitter Water mark set to 0* Receiver Water mark set to 3 */LPI2C0->MFCR = LPI2C_MFCR_TXWATER(0)|LPI2C_MFCR_RXWATER(3);/* Enable LPI2C as master */LPI2C0->MCR |= LPI2C_MCR_MEN_MASK| LPI2C_MCR_DBGEN_MASK; }void LPI2C_Transmit (void) {LPI2C0->MTDR = (0x05<<8)|((0x1E<<1)|0); }

?

總結

以上是生活随笔為你收集整理的S32K144(18)LPI2C的全部內容,希望文章能夠幫你解決所遇到的問題。

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