本文主要介紹在英創(chuàng)Linux工控主板(ESM8000、ESM7000和ESM6800H)上,采用Python和C#編程,實(shí)現(xiàn)對(duì)SPI和I2C兩種常用工控接口的訪問(wèn)。Python和C#實(shí)例,均采用Visual Studio Code作為基本的編程工具,其代碼可在主板 + ESMARC評(píng)估底板上運(yùn)行,其基本的硬件環(huán)境采用采用ESM8000工控主板 + 評(píng)估底板構(gòu)成,如下圖所示:
SPI接口采用把SPI_MOSI與SPI_MISO兩條串行數(shù)據(jù)短接的方法,來(lái)驗(yàn)證SPI接口的收發(fā)功能。對(duì)I2C接口,則外接一個(gè)RTC芯片(ISL1208),通過(guò)讀寫芯片中USER寄存器,來(lái)展示I2C的操作。測(cè)試結(jié)果通過(guò)調(diào)試串口(console)輸出。
Step7_Spi
英創(chuàng)ESMARC主板的SPI接口與GPIO28 – GPIO31復(fù)用管腳,具體的硬件配置信息如下:
配置 | ESM8000, ESM7000, ESM6800H |
SPI_MISO | GPIO28 |
SPI_MOSI | GPIO29 |
SPI_CLK | GPIO30 |
SPI_CSN | GPIO31 |
DevNode | /dev/spidev1.0 |
短接GPIO28、GPIO29兩個(gè)管腳,使SPI接收數(shù)據(jù)等于發(fā)送的數(shù)據(jù)。設(shè)置SPI模式0,SPI時(shí)鐘為1MHz,可用示波器驗(yàn)證SPI模式、時(shí)鐘頻率等的正確性。
Python實(shí)現(xiàn)
C#實(shí)現(xiàn)
C#的SPI類庫(kù)包含在GPIO package中,因此需要添加System.Device.Gpio包。代碼實(shí)例如下:
Step8_I2c
英創(chuàng)ESMARC主板的I2C接口與GPIO26 – GPIO27復(fù)用管腳,具體的硬件配置信息如下:
配置 | ESM8000, ESM7000, ESM6800H |
I2C_SDA | GPIO26 |
I2C_SCL | GPIO27 |
DevNode | /dev/i2c-0 |
RTC芯片ISL1208的I2C地址為0x6F。芯片包含有兩個(gè)Scratch寄存器,寄存器Index 分別為 0x12,0x13,可用于存儲(chǔ)用戶專用信息。
Python實(shí)現(xiàn)
C#實(shí)現(xiàn)
C#的I2C類庫(kù)包含在GPIO package中,因此需要添加System.Device.Gpio包。代碼實(shí)例如下:
成都英創(chuàng)信息技術(shù)有限公司 028-8618 0660