河北穩(wěn)控科技可編程 USB 轉(zhuǎn)串口適配器開發(fā)板

可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S結(jié)構(gòu)尺寸及電壓設(shè)置
1.1 外形尺寸
外形尺寸:30*45mm(不含 USB 接口)

1.2 結(jié)構(gòu)組成
2.1電源輸入?
USB2S 使用USB 接口供電,電壓范圍為 3~10V,若無特殊說明,以下均使用標(biāo)準(zhǔn)的 USB 接口 5.0V,即 VIN=5.0V。?
2.2設(shè)置工作電壓?
通過電壓選擇器跳線可設(shè)置 USB2S 的工作電壓,如下圖所示,跳線帽位于 3.3 一側(cè)時工作電壓為 3.3V,跳線帽位于 5.0 側(cè)時工作電壓為VIN(即USB 供電時的 5.0V)。?
設(shè)置工作電壓時必須兩個跳線帽同時調(diào)整。?
本模塊片上芯片均支持 3.0~5.5V 工作電壓,故此當(dāng)供電 VIN 為 5.5V 以下時可直接使用VIN 或者切換為 3.3V,當(dāng)使用超過 5.5V 的 VIN 為模塊供電時,必須將跳線切換至 3.3V 工作電壓,否則模塊會損毀。?

除 USB 接口中的 D+和 D-外,其它所有數(shù)字接口工作電壓均為工作電壓(VCC/VWK),外接設(shè)備或芯片時應(yīng)先用跳線選擇工作電壓VWK 為 3.3 或者 5.0,然后再連接設(shè)備或芯片。?
2.3電源輸出?
對外接口中的管腳 1~4 為電源輸出,可為外接設(shè)備供電,4 個管腳依次為:V50、V33、VCC/VWK、GND。?

V50:輸出與 VIN 相同的電壓,若使用 USB 供電時為 5.0V。?
V33:使用VIN 穩(wěn)壓 3.3V 后的輸出。?
VCC/VWK:工作電壓輸出,電壓值由工作電壓選擇器跳線決定。?
V33 穩(wěn)壓器最大輸出電流為 500mA,不得為超過 300mA 的外部設(shè)備供電。?
2.4I2C 總線?
管腳 7 和 8 分別是 IIC 總線的SCL 和 SDA 通訊線,板上已有 2k 上拉電阻。USB2S 的 IIC 接口通訊速率范圍為 10kHz~400kHz,支持主模式與從模式。?

管腳 7 和管腳 8 由I2S 總線與 SPI 總線共用,同一時間只能使用一種接口,切換方法請?jiān)斠姷?3 章說明。?
IIC 總線上已連接有EEPROM 芯片和溫濕度傳感器芯片,可通過跳線設(shè)置為強(qiáng)制使能板載IIC 芯片或者設(shè)置為程控使能。?
注:第一排的三個針從左向右依次為:VCC、IIC_POW、IO1,當(dāng) 1 和 2 通過跳線帽短接時,IIC_POW 管腳被強(qiáng)制為 VCC,為板載 IIC 芯片供電,當(dāng) 2 和 3 通過跳線帽短接時,IIC_POW 被連接到 IO1,受IO1 控制,通過指令設(shè)置IO1 輸出高電平或者低電平來實(shí)現(xiàn)是否給板載IIC 芯片供電的功能。?

2.5 SPI 總線?
管腳 5、6、7、8 分別是SPI 總線的 MOSI、NSS、CLK、MISO 線,CLK 和MISO 已連接有 2k 上拉電阻。?
SPI 接口通訊速率最高可達(dá) 5MHz,支持主機(jī)與從機(jī)模式,支持 3 線制和 4 線制標(biāo)準(zhǔn)。
管腳 7 和管腳 8 由I2S 總線與 SPI 總線共用,同一時間只能使用一種接口,切換方法請?jiān)斠姷?3 章說明。?
SPI 總線上已連接有FLASH 芯片,可通過跳線設(shè)置為強(qiáng)制使能板載SPI 芯片或者設(shè)置為程控使能。
注:第二排的三個針從左向右依次為:VCC、SPI_POW、IO2,當(dāng) 1 和 2 通過跳線帽短接時,SPI_POW 管腳被強(qiáng)制為 VCC,為板載 SPI 芯片供電,當(dāng) 2 和 3 通過跳線帽短接時,SPI_POW 被連接到 IO2,受IO2 控制,通過指令設(shè)置IO2 輸出高電平或者低電平來實(shí)現(xiàn)是否給板載SPI 芯片供電的功能。?
注:IO1 和IO2 同時也是板載 SPI 芯片 GD25Qxx 的寫保護(hù) WP 和通訊保持 HOLD 控制管腳,當(dāng)操作GD25Qxx 時,必須使IO2 為高電平(低電平時此芯片會忽略所有 SPI 信號),當(dāng)需要向其寫數(shù)據(jù)時必須使 IO1 為高電平(低電平時僅會執(zhí)行讀取指令,而寫入指令會被忽略)。?
?
可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S接口與功能介紹
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板的詳細(xì)接口與功能
可編程 USB 轉(zhuǎn) UART/I2C/SMBus/SPI/CAN/1-Wire 適配器 USB2S(USB To Serial ports)是多種數(shù)字接口物理層協(xié)議轉(zhuǎn)發(fā)器,自帶強(qiáng)大靈活的 S2S 協(xié)議固件程序,支持嵌入C 語言程序開發(fā),可實(shí)現(xiàn) Windows/Android/Wince 操作系統(tǒng)USB 接口與串行接口以及串行接口之間的雙向通訊,還可用作脈沖計(jì)數(shù)、數(shù)字示波器、電壓比較器。廣泛應(yīng)用于電子設(shè)備開發(fā)、芯片測試、工業(yè)數(shù)字接口轉(zhuǎn)換、數(shù)字接口學(xué)習(xí)驗(yàn)證等領(lǐng)域。?

?1.UART 接口?
本模塊有兩組 UART 接口,分別叫做 UART1 和 UART2,UART1 是指 USB 與計(jì)算機(jī)連接后計(jì)算機(jī)上出現(xiàn)的 COMx 串口,計(jì)算機(jī)通過此串口與 USB2S 通訊,UART2 是指 USB2S 上的對外接口中的UART 接口(TXD 和RXD 管腳)。?
管腳 9 和 10 分別是UART2 異步串行口的RXD 和 TXD 通訊線,RXD 為弱上拉輸入,TXD 為強(qiáng)推挽輸出。?
UARTx 通訊速率范圍為 1200bps~921600bps,支持?jǐn)?shù)據(jù)校驗(yàn)和停止位設(shè)置。默認(rèn)通訊速率為9600bps。?

2. LCD 接口?
板上預(yù)留有基于 IIC 協(xié)議的 LCD 屏幕接口,可選配屏幕(3.3V5.0V 兼容)。?
?
3. MCU?
USB2S 使用了 STC 單片機(jī)作為可編程載體,具有片上 2kRAM、4kEEPROM 和 16kFLASH,超高速 1T
(1 周期指令)8051 內(nèi)核,支持休眠和脈沖信號喚醒和定時器喚醒,5 個 16 位定時器,1 路電壓比較器,4 路外部中斷,硬件 I2S、SPI、UART 接口,支持在線仿真調(diào)試。?
4.固件程序?
自帶固件程序可完成不同串行接口之間的數(shù)據(jù)透明傳輸和預(yù)定義通訊協(xié)議的數(shù)據(jù)解析轉(zhuǎn)發(fā),通過修改內(nèi)部寄存器參數(shù)和使用上位機(jī)軟件工具,可進(jìn)行幾乎所有的串行接口測試應(yīng)用。?
內(nèi)嵌 MODBUS 通訊協(xié)議。?
豐富的應(yīng)用例程,用戶可在例程基礎(chǔ)上開發(fā)自己的固件程序。?

可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? S2S 功能介紹?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板 S2S 功能介紹?
USB2S 支持基于 STC 單片機(jī)的二次開發(fā),若有需要,可參照原理圖和單片機(jī)型號手冊自行開發(fā)具有特殊功能的固件程序。
1.自帶固件S2S 功能介紹?
默認(rèn)情況下 USB2S 出廠時自帶廠家固件程序 S2S,并提供固件程序文件,若有需要可以隨時重新下載到 MCU。?
S2S 固件不斷升級中,請?jiān)L問穩(wěn)控科技公司下載最新固件程序。?
S2S(Serial port To Serial port)固件可實(shí)現(xiàn)任意一個串行口的數(shù)據(jù)轉(zhuǎn)發(fā)到另一個指定的串行口,并自動轉(zhuǎn)換接口硬件層協(xié)議,使用的協(xié)議為S2S 串口轉(zhuǎn)發(fā)協(xié)議。?
S2S 固件支持MODBUS 通訊協(xié)議的 03 和 06 指令碼,關(guān)于 MODBUS 協(xié)議內(nèi)容請自行參閱標(biāo)準(zhǔn)協(xié)議手冊, 或者向我們索要使用說明,MODBUS03 和 06 指令碼所操作的保持寄存器定義見下表。?
1.1MODBUS 協(xié)議保持寄存器匯總?

2.S2S 通訊協(xié)議?
S2S 通訊協(xié)議規(guī)則十分簡單,說明如下:?
最小收發(fā)單位為字符串幀,幀由若干關(guān)鍵字和數(shù)據(jù)組成。 控制關(guān)鍵字以‘[’起始,以‘]’結(jié)束。連續(xù)的數(shù)據(jù)字符串之間用空格分隔。 關(guān)鍵字可單個使用也可以任意多個組合使用。注意事項(xiàng): UART 接口的接收緩存為 254 字節(jié),指令(關(guān)鍵字)數(shù)量最多 64 個,數(shù)據(jù)寫入和讀出緩存分別為 128 字節(jié),超出部分會被舍棄。 10 進(jìn)制數(shù)據(jù)可以用 1~3 個字符表示(每個字符必須為‘0’~‘9’),16 進(jìn)制數(shù)據(jù)必須用 2 個字符表示(每個字符必須為‘0’~‘9’或大寫‘A’~‘F’)。?
3.S2S 協(xié)議使用舉例單個關(guān)鍵字?
[IIC] 設(shè)置數(shù)據(jù)的目標(biāo)端口為 IIC 接口?
[WT3H]A0 A1 A2 向目標(biāo)端口(IIC)寫 3 個字節(jié) 16 進(jìn)制數(shù)據(jù),即:從 IIC 端口輸出 3 個字節(jié)數(shù)據(jù)。[RD05N] 從 IIC 接口讀取 5 字節(jié)數(shù)據(jù),每讀取 1 個字節(jié)后輸出應(yīng)答信號,最后 1 個字節(jié)讀取完成后發(fā)送非應(yīng)答信號。?
?
[HELP]或者[HELPxx] 獲取幫助信息,xx 為信息類別碼(2 位數(shù)字)。?
?
連續(xù)多個關(guān)鍵字?
[IIC][START][WT6H]A0 00 00 01 02 03[STOP] 設(shè)置目標(biāo)端口為 IIC,從IIC 發(fā)出開始信號,從IIC 輸出 6 字節(jié)數(shù)據(jù),從IIC 發(fā)出停止信號。若之前已經(jīng)設(shè)置過目標(biāo)端口為IIC,則上面的指令幀可省略[IIC],即可以為:[START][WT6H]A0 00 00 01 02 03[STOP]?
?
[STIIC]40 MSB[SAVE][IIC][START][WT6H]A0 00 00 01 02 03[STOP] 先設(shè)置IIC 接口通訊參數(shù),
永久保存,再開始一次通訊。?
?
[IIC][FIND]搜索 IIC 總線上所有從設(shè)備,并返回從設(shè)備地址值。?
?
4.反饋信息說明?
當(dāng)開啟了調(diào)試信息輸出或者數(shù)據(jù)回顯功能時(默認(rèn)),每幀關(guān)鍵字指令發(fā)送后會輸出對指令的解析和執(zhí)行信息。這些信息僅在關(guān)鍵字指令幀執(zhí)行不正常時需要查看分析錯誤原因,正常使用時無需關(guān)心,可使用指令關(guān)閉這些功能(3.3.4)。?
?
例如:?
向設(shè)備發(fā)送 [IIC][START][WT6H]A0 00 00 01 02 03[STOP]?
設(shè)備返回 [IIC][START][WT6H]A0 00 00 01 02 03[STOP] //回顯接收到的內(nèi)容?
S2SCMD 0003 0901 0106 0902? //關(guān)鍵字指令碼?
S2SDAT A0 00 00 01 02 03? ? //指令碼數(shù)據(jù)?
解析碼(指令碼) 與本幀數(shù)據(jù)中每個關(guān)鍵字指令一一對應(yīng),指令碼為 16 位,高字節(jié)表示指令類別,低字節(jié)表示本指令的附加參數(shù)。?
指令碼數(shù)據(jù) 執(zhí)行指令碼時所需要的數(shù)據(jù),如:要發(fā)送的數(shù)據(jù),要設(shè)置的參數(shù)值等。
可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S??
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板 參數(shù)設(shè)置與修改
1.參數(shù)設(shè)置?
1.1 UART 通訊參數(shù)設(shè)置?
UART1 和 UART2 默認(rèn)通訊參數(shù)為 9600,N,8,1,可通過以下關(guān)鍵字指令進(jìn)行修改。[STU1]B N D S?
B 通訊速率,單位 bps,可以為 1200~921600 之間的任一通訊速率N 校驗(yàn)位,N 表示無校驗(yàn);A 表示寄校驗(yàn);E 表示偶校驗(yàn)?
D 數(shù)據(jù)位,可為 8 或者 9?
S 停止位,可為 1 或 2?
例如:設(shè)置 UART1 的通訊參數(shù)為 9600,N,8,1,則應(yīng)發(fā)送指令[STU1]9600 N 8 1 注:除通訊速率外,其它三個參數(shù)固定為N81,暫時無法修改。?
注:執(zhí)行此指令后,保持寄存器 BAUD_U1 和 BAUD_U2 的值被同步更新,但未保存。?
注:修改任意一個 UART 接口時,另外一個 UART 接口也被同時修改,即:兩個UART 的通訊參數(shù)總是相同的。?
?
1.2 I2C 通訊參數(shù)設(shè)置?
I2C 默認(rèn)通訊參數(shù)為:52,MSB,可以通過以下關(guān)鍵字指令進(jìn)行修改。[STIIC]B xSB?
B 通訊速率碼,可以為 0~63,對應(yīng)的通訊速率見下表。?
xSB? ? ?傳輸數(shù)據(jù)時高位在前還是低位在前,MSB 表示高位在前,LSB 表示低位在前注:執(zhí)行此指令后,保持寄存器 BAUD_IIC、ISCW_XSB 的值被同步更新,但未保存。注:系統(tǒng)時鐘分頻系數(shù)會影響 IIC 和 SPI 的通訊速率。?
下表是時鐘分頻為 1 時 IIC 取值與實(shí)測速率?
1.3? SPI 默認(rèn)通訊參數(shù)為:700kHz,MSB,L,B,可通過以下關(guān)鍵字指令進(jìn)行修改。[STSPI]baud xSB po ph?
Baud 通訊速率,單位 kHz,可以為 5500、2700、1400、700?
xSB 傳輸數(shù)據(jù)時高位在前還是低位在前,MSB 表示高位在前,LSB 表示低位在前?
Po 時鐘極性,H 表示空閑時SCK 為高電平,L 表示空閑時 SCK 為低電平Ph 時鐘相位,F(xiàn) 表示在前時鐘沿輸出數(shù)據(jù),B 表示在后時鐘沿輸出數(shù)據(jù)?
注:執(zhí)行此指令后,保持寄存器 BAUD_SPI、ISCW_XSB 的值被同步更新,但未保存。注:系統(tǒng)時鐘分頻系數(shù)會影響 IIC 和 SPI 的通訊速率。?
1.4 修改系統(tǒng)參數(shù)?
使用[SYSP]關(guān)鍵字可對其它系統(tǒng)參數(shù)進(jìn)行修改。指令格式如下: [SYSP]Addr ECHO DEBUG_MSG UART12_TT CLKDIV?
Addr 設(shè)備地址
ECHO 是否回顯接收到的數(shù)據(jù)DEBUG_MSG 是否輸出調(diào)試信息?
UART12_TT UART1 和 UART2 之間是否透明傳輸?
CLKDIV 系統(tǒng)時鐘分頻系數(shù)?
例如:[SYSP]12 1 0 1 1 表示將設(shè)備地址修改為 12,回顯接收到的數(shù)據(jù),不輸出調(diào)試信息,兩個UART 口透明傳輸,系統(tǒng)時鐘不分頻。?
?
1.5 保存參數(shù)?
前述各種指令在參數(shù)修改完成后僅可當(dāng)時生效,修改后的參數(shù)斷電不保存。使用[SAVE]關(guān)鍵字可將當(dāng)前參數(shù)保存至 EEPROM,使參數(shù)永久保存。?
?
1.6 參數(shù)復(fù)位?
參數(shù)復(fù)位有兩種方法,通過 UART 接口向模塊發(fā)送[STDEF]指令,或者給模塊上電前,將 FUN 跳線帽連接至 GND,如下圖。參數(shù)復(fù)位后,請將跳線帽切換至第第 2 和 3 腳,防止重復(fù)復(fù)位。?
?
AT24Cxx GD25Qxx
?
注:第三排針從左向右依次為 GND、FUN、空,使用跳線帽將 1 和 2 連接,強(qiáng)制將FUN 拉低,在上電時若檢測到 FUN 的低電平會復(fù)位系統(tǒng)參數(shù),使用跳線帽將 2 和 3 連接,使FUN 管腳懸空
(內(nèi)部弱上拉為高電平)。?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板 USB 轉(zhuǎn) UART? I2C 應(yīng)用?
可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? ?USB 轉(zhuǎn) UART 應(yīng)用?
1.1驅(qū)動安裝?
USB2S 內(nèi)置了 USB 轉(zhuǎn)UART 芯片,可使用CH340/CH341 驅(qū)動程序。驅(qū)動安裝步驟如下: 雙擊運(yùn)行“CH341SER\SETUP.exe”,打開驅(qū)動安裝窗口。?
點(diǎn)擊【安裝】按鈕,稍后會提示“驅(qū)動安裝成功”。如下圖示。?

驅(qū)動安裝成功后,若將 USB2S 插入計(jì)算機(jī) USB 接口,在“設(shè)備管理器”中會發(fā)現(xiàn)新的 COM 接口, 如下圖示。?

1.2 USB 轉(zhuǎn)UART 原理
驅(qū)動程序安裝后,計(jì)算機(jī)通過 COMx 與 MCU 進(jìn)行通訊,當(dāng) USB2S 的 UART 透明傳輸功能為開啟狀態(tài)時(默認(rèn)),MCU 可將 UART1 與UART2 的雙向數(shù)據(jù)進(jìn)行透明轉(zhuǎn)發(fā),即:實(shí)現(xiàn)了計(jì)算機(jī)的COMx 端口與 USB2S 的對外 UART2 端口的雙向數(shù)據(jù)傳輸。工作原理示意圖如下:?
上面的方法是通過 MCU 固件程序?qū)崿F(xiàn)UART1 與 UART2 之間數(shù)據(jù)透明傳輸。?
下面的連接方法可實(shí)現(xiàn)真正的 USB 轉(zhuǎn) UART 功能,方法是通過跳線禁用 MCU,外部UART 設(shè)備直接連接到 UART1 接口。
對于絕大部分應(yīng)用,第一種連接方法即可。
可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? ?UART 轉(zhuǎn) I2C 應(yīng)用?
1.1 AT24CxxEEPROM 芯片?
1.1.1 芯片介紹?
AT24Cxx 是可擦寫 EEPROM 存儲芯片,xx 表示容量,單位為 Kbits。USB2S 板上已有 1 片 AT24Cxx
(默認(rèn)為 AT24C02),設(shè)備地址為 0xA0。?
通過 AT24Cxx 的數(shù)據(jù)手冊可知,讀寫時序如下: 寫時序:?
(1) 向 IIC 總線發(fā)送開始信號?
(2) 向 IIC 總線發(fā)送芯片寫地址(0xA0)?
(3) 向 IIC 總線發(fā)送要操作的 EEPROM 地址?
(4) 向 IIC 總線連續(xù)發(fā)送多個要寫入的字節(jié)數(shù)據(jù)?
(5) 向 IIC 總線發(fā)送停止信號,結(jié)束本次通訊讀時序:?
(1) 向 IIC 總線發(fā)送開始信號?
(2) 向 IIC 總線發(fā)送芯片寫地址(0xA0)?
(3) 向 IIC 總線發(fā)送要操作的 EEPROM 地址?
(4) 向 IIC 總線發(fā)送開始信號?
(5) 向 IIC 總線發(fā)送芯片讀地址(0xA1)?
(6) 從 IIC 總線連續(xù)讀取芯片輸出的數(shù)據(jù)?
(7) 向 IIC 總線發(fā)送停止信號,結(jié)束本次通訊?
?
1.1.2 向 AT24C02 寫入數(shù)據(jù)?
向 AT24C02 的地址 0~3 寫入 4 個字節(jié)(30 31 32 33)?
向 UART1 發(fā)送字符串:[IIC][START][WT6H]A0 00 30 31 32 33[STOP]?
[IIC] 數(shù)據(jù)幀的目標(biāo)是 IIC 接口?
[START] 從目標(biāo)接口輸出開始信號?
[WT6H]? 從目標(biāo)接口輸出 6 個字節(jié),后續(xù)數(shù)據(jù)類型為 16 進(jìn)制。?
A0 00 2 字節(jié)數(shù)據(jù),AT24C02 芯片地址+要操作的EEPROM 地址?
00 01 02 03 向 AT24C02 寫入的 4 個字節(jié)數(shù)據(jù)[STOP] 從目標(biāo)接口輸出停止信號,結(jié)束本次通訊?
?
1.1.3 從 AT24C02 讀取數(shù)據(jù)?
從 AT24C02 讀取 4 個字節(jié)數(shù)據(jù),數(shù)據(jù)起始地址為 0。?
向 UART1 發(fā)送字符串:[IIC][START][WT2H]A0 00[START][WT1H]A1[RD4N][STOP]?
從 UART1 返回 4 個字節(jié)(16 進(jìn)制):30 31 32 33 [IIC] 數(shù)據(jù)幀的目標(biāo)是 IIC 接口?
[START] 從目標(biāo)接口輸出開始信號?
[WT2H] 從目標(biāo)接口輸出 2 個字節(jié),后續(xù)數(shù)據(jù)類型為 16 進(jìn)制。?
A0 00 2 字節(jié)數(shù)據(jù),AT24C02 芯片地址+要操作的EEPROM 地址?
[START] 從目標(biāo)接口輸出開始信號?
[WT1H] 從目標(biāo)接口輸出 1 個字節(jié),后續(xù)數(shù)據(jù)類型為 16 進(jìn)制。?
A1 AT24C02 芯片的讀地址?
[RD4N]? 從目標(biāo)接口連續(xù)讀取 4 個字節(jié)數(shù)據(jù) [STOP] 從目標(biāo)接口輸出停止信號,結(jié)束本次通訊?
?
1.1.4 跨頁寫入數(shù)據(jù)?
AT24C02 每頁為 8 字節(jié),EEPROM 地址 0~7 為第 1 頁、8~15 為第 2 頁,以此類推。當(dāng)向芯片連續(xù)寫入數(shù)據(jù)時,在寫完每頁最后 1 個字節(jié)后必須向其發(fā)送停止信號,以使芯片對當(dāng)前頁進(jìn)行存儲,繼續(xù)寫入后續(xù)數(shù)據(jù)時需要重新開始寫入時序。?
芯片存儲數(shù)據(jù)需要一定時間,向其發(fā)起新的通訊前應(yīng)有適當(dāng)延時。也可以直接向其繼續(xù)寫入若返回了[ERRxxx]表示芯片正忙,重新發(fā)送直到無錯誤返回。?
例如:從 EEPROM 地址 0 開始寫入 10 個字節(jié)數(shù)據(jù),則應(yīng)先寫入 0~7,延時,再寫入 8~9。?
[IIC][START][WT10H]A0 00 00 01 02 03 04 05 06 07[STOP][DELAY50][IIC][START][WT4H]A0 08 08 09[STOP]?
例如:直接向芯片寫入字符串?dāng)?shù)據(jù)?
[IIC][START][WT2H]A0 00[WT8S]87654321[STOP][DELAY50][IIC][START][WT4H]A0 08 38 39[STOP]?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板? SHT3x-DIS 溫濕度傳感器芯片?
?可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? 的溫濕傳感器
1.2 SHT3x-DIS 溫濕度傳感器芯片?
1.2.1 芯片介紹?

SHT3x-DIS 是 IIC 接口的溫度、濕度傳感器芯片,可工作于單次測量或連續(xù)自動測量模式。USB2S 已有 1 片 SHT31-DIS 芯片,芯片地址為 0x88。?
SHT3X-DIS 的輸出溫度和濕度均為 3 字節(jié),前兩字節(jié)是溫濕度值,第 3 字節(jié)是校驗(yàn)字節(jié)。轉(zhuǎn)換
公式如下:(數(shù)值=第 1 個字節(jié)*256+第 2 個字節(jié))。?
寫指令時序:?
(1) 向 IIC 總線發(fā)送開始信號?
(2) 向 IIC 總線發(fā)送芯片寫地址(0x88)?
(3) 向 IIC 總線發(fā)送 2 字節(jié)命令字?
(4) 發(fā)送停止信號,結(jié)束本次通訊。?
?
讀取溫濕度時序:?
(1) 向 IIC 總線發(fā)送開始信號?
(2) 向 IIC 總線發(fā)送芯片寫地址(0x88)?
(3) 向 IIC 總線發(fā)送 2 字節(jié)命令字,延時等待芯片完成測量(工作于單次測量模式時)?
(4) 向 IIC 總線發(fā)送開始信號?
(5) 向 IIC 總線發(fā)送芯片讀地址(0x89)?
(6) 從 IIC 總線讀取 2 字節(jié)溫度和 1 字節(jié) CRC8 校驗(yàn)?
(7) 從 IIC 總線讀取 2 字節(jié)濕度和 1 字節(jié) CRC8 校驗(yàn)?
(8) 發(fā)送停止信號,結(jié)束本次通訊。?
1.2.2 單次溫濕度測量并讀取?
[IIC][START][WT3H]88 24 00[DELAY100][START][WT1H]89[RD6A][STOP],或者[IIC][START][WT3D]136 36 00[DELAY100][START][WT1H]89[RD6A][STOP]?
[IIC] 數(shù)據(jù)幀的目標(biāo)是 IIC 接口?
[START] 從目標(biāo)接口輸出開始信號?
[WT3H] 從目標(biāo)接口輸出 3 個字節(jié),后續(xù)數(shù)據(jù)類型為 16 進(jìn)制。?
88 24 00 芯片寫地址+2 字節(jié)指令碼 0x2400 表示高速測量并且禁用芯片控制時鐘線的功能?
[DELAY100] 延時等待溫濕度測量結(jié)束[START] 從目標(biāo)接口輸出開始信號?
[WT1H] 從目標(biāo)接口輸出 1 個字節(jié),后續(xù)數(shù)據(jù)類型為 16 進(jìn)制。?
89 芯片的讀地址
[RD6N] 從目標(biāo)接口連續(xù)讀取 2 個寄存器(每個寄存器 2 字節(jié),共 4 字節(jié)) [STOP] 從目標(biāo)接口輸出停止信號,結(jié)束本次通訊?
芯片返回 64 B3 BB 3E E3 CC(25779 16099,即:23.8℃和 24.5%)?
?
1.2.3 連續(xù)測量隨時讀取溫濕度?
切換為連續(xù)測量工作模式:[IIC][START][WT3H]88 20 2F[STOP]?
隨時獲取實(shí)時溫濕度:[IIC][START][WT3H]88 E0 00[START][WT1H]89[RD6N][STOP]?
?
1.2.4 停止連續(xù)測量?
向 芯 片 發(fā) 送 指 令 碼 0x3093 [IIC][START][WT3H]88 30 93[STOP]?
?
1.2.5 其它常用指令使用指令復(fù)位芯片?
向 芯 片 發(fā) 送 指 令 碼 0x30A2 [IIC][START][WT3H]88 30 A2[STOP]?
?
加熱器的開啟與關(guān)閉?
發(fā)送指令碼 0x306D 開啟加熱器,發(fā)送指令碼 0x3066 關(guān)閉加熱器。[IIC][START][WT3H]88 30 6D[STOP]?
[IIC][START][WT3H]88 30 66[STOP]?
?
讀取狀態(tài)寄存器?
[IIC][START][WT3H]88 F3 2D[START][WT1H]89[RD3N][STOP]?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板與振弦傳感器測量模塊?
?可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S 與振弦傳感器測量模塊?
VM5xx 振弦傳感器測量模塊?
1.1 芯片介紹?

VM501/511振弦采集模塊 是穩(wěn)控科技生產(chǎn)的振弦傳感器測量模塊,具有IIC 接口和 UART 接口。IIC 地址可通過UART 任意設(shè)置,假設(shè)其地址為 0xB0。?
VM501/511振弦采集模塊 的 IIC 通訊協(xié)議如下: 寫寄存器:?
(1) 向 IIC 總線發(fā)送開始信號?
(2) 向 IIC 總線發(fā)送模塊寫地址(0xB0)?
(3) 向 IIC 總線發(fā)送要操作的寄存器地址?
(4) 向 IIC 總線連續(xù)發(fā)送多個要寫入的寄存器值,每個寄存器需要 2 字節(jié)?
(5) 向 IIC 總線發(fā)送停止信號,結(jié)束本次通訊?
?
讀寄存器:?
(1) 向 IIC 總線發(fā)送開始信號?
(2) 向 IIC 總線發(fā)送模塊寫地址(0xB0)?
(3) 向 IIC 總線發(fā)送要操作的寄存器地址?
(4) 向 IIC 總線發(fā)送開始信號?
(5) 向 IIC 總線發(fā)送模塊讀地址(0xB1)?
(6) 從 IIC 總線連續(xù)讀取芯片輸出的數(shù)據(jù)(每 2 個字節(jié)代表 1 個寄存器值)?
(7) 向 IIC 總線發(fā)送停止信號,結(jié)束本次通訊?
?
1.2 修改VM501/511振弦采集模塊寄存器?
向 VM5xx 的寄存器 0~1 寫入新值(0x0001 0x0060)?
向 UART1 發(fā)送字符串:[IIC][START][WT6H]B0 00 00 01 00 60[STOP]?
[IIC] 數(shù)據(jù)幀的目標(biāo)是 IIC 接口?
[START] 從目標(biāo)接口輸出開始信號?
[WT6H] 從目標(biāo)接口輸出 6 個字節(jié),后續(xù)數(shù)據(jù)類型為 16 進(jìn)制。?
A0 00 2 字節(jié)數(shù)據(jù),VM5xx 模塊地址+要操作的寄存器地址?
00 01 00 60 向 VM5xx 模塊寫入的 2 個寄存器值(每個寄存器 2 字節(jié),共 4 個字節(jié)) [STOP] 從目標(biāo)接口輸出停止信號,結(jié)束本次通訊?
?
1.3 讀取VM501/511振弦采集模塊寄存器?
從 VM5xx 讀取 2 個寄存器數(shù)據(jù),寄存器起始地址為 0。?
向 UART1 發(fā)送字符串:[IIC][START][WT2H]B0 00[START][WT1H]B1[RD4N][STOP]?
從 UART1 返回 4 個字節(jié)(16 進(jìn)制):00 01 00 60 [IIC] 數(shù)據(jù)幀的目標(biāo)是 IIC 接口?
[START] 從目標(biāo)接口輸出開始信號?
[WT2H] 從目標(biāo)接口輸出 2 個字節(jié),后續(xù)數(shù)據(jù)類型為 16 進(jìn)制。?
A0 00 2 字節(jié)數(shù)據(jù),VM5xx 模塊寫地址+要操作的寄存器地址?
[START] 從目標(biāo)接口輸出開始信號?
[WT1H] 從目標(biāo)接口輸出 1 個字節(jié),后續(xù)數(shù)據(jù)類型為 16 進(jìn)制。?
A1 VM5xx 模塊的讀地址
[RD4N] 從目標(biāo)接口連續(xù)讀取 2 個寄存器(每個寄存器 2 字節(jié),共 4 字節(jié)) [STOP] 從目標(biāo)接口輸出停止信號,結(jié)束本次通訊?
1.4 保存VM501/511振弦采集模塊 寄存器當(dāng)前值?
當(dāng)通過 IIC 接口修改 VM5xx 單個寄存器后,被修改的寄存器立即保存(斷電不丟失),但連續(xù)寄存器的寫入僅當(dāng)時修改生效,模塊重啟后會自動恢復(fù)。為了能夠使寄存器永久保存,可以單獨(dú)向功能寄存器 03 寫入指令碼 0x000C 來強(qiáng)制保存所有寄存器。?
[IIC][START][WT4H]B0 03 00 0C[STOP]?
?
1.5 讀取全部實(shí)時寄存器?
VM5xx 測量值和運(yùn)行狀態(tài)全部位于寄存器 32~64,這些寄存器由模塊自動更新,可以被部分讀取或者全部讀取。?
[IIC][START][WT2H]B0 20[START][WT1H]B1[RD60N][STOP]?
從模塊的寄存器 0x20(32)開始連續(xù)讀取 60 個字節(jié)(30 個寄存器)。?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板 UART 轉(zhuǎn) SPI 應(yīng)用?
?可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? UART 轉(zhuǎn) SPI 應(yīng)用?
1.1 GD25QxxFLASH 芯片?
注意:1-Wire 接口與 SPI 接口不可同時連接被測芯片。?
1.1 芯片介紹?
GD25Qxx 是四線SPI 接口的 FLASH 芯片,最大容量可達(dá) 16Mbytes。板上集成有 GD25Q64 芯片, 每頁 256 字節(jié),每扇區(qū) 16 頁(4k 字節(jié)),每塊區(qū) 256 頁(64k),寫入前必須先擦除,本芯片支持扇區(qū)擦除、塊區(qū)擦除和整片擦除。?
讀時序:?
(1) 向芯片發(fā)送 1 字節(jié)指令碼 0x03?
(2) 向芯片發(fā)送要讀取的起始地址 3 字節(jié) 0xaaaaaa?
(3) 連續(xù)讀取n 字節(jié)數(shù)據(jù)寫時序:?
(1) 向芯片發(fā)送 1 字節(jié)指令碼 0x02?
(2) 向芯片發(fā)送要寫入的起始地址 3 字節(jié) 0xaaaaaa?
(3) 連續(xù)寫入n 字節(jié)數(shù)據(jù)(不超過 256) 擦除時序:?
擦除扇區(qū):?
(1) 向芯片發(fā)送 1 字節(jié)指令碼 0x20?
(2) 向芯片發(fā)送要擦除扇區(qū)的起始地址 3 字節(jié) 0xaaaaaa(4096 的整倍數(shù)值) 擦除區(qū)塊:?
(1) 向芯片發(fā)送 1 字節(jié)指令碼 0xD8?
(2) 向芯片發(fā)送要擦除區(qū)塊的起始地址 3 字節(jié) 0xaaaaaa(65536 的整倍數(shù)值) 整片擦除:?
(1)向芯片發(fā)送 1 字節(jié)指令碼 0xC7?
?
1.2 讀取芯片ID?
[SPI][SSL][WT4H]90 FF FF FF[RD2N][SSH]?
返回:C8 16?
C8:芯片生產(chǎn)廠商標(biāo)識碼,GigaDevice(兆易創(chuàng)新) 16:器件容量標(biāo)識碼,16 表示 64Mbit(8MBytes)?
?
1.3 芯片寫入使能?
擦除或者寫入之前需要保證芯片為寫使能狀態(tài),如果已設(shè)置過寫使能,則此步驟或省略。[SPI][SSL][WT1H]06[SSH]?
?
1.4 擦除首個扇區(qū)?
首個扇區(qū)的地址為 0~4095,此扇區(qū)首地址為 0。[SPI][SSL][WT4H]20 00 00 00[SSH]?
注:GD25Qxx 芯片有寫保護(hù)功能,在寫操作前最好先發(fā)送 06 指令碼,使能擦寫功能。[SPI][SSL][WT1H]06[SSH][SPI][SSL][WT4H]20 00 00 00[SSH]?
?
1.5 寫入數(shù)據(jù)?
從首地址開始寫入 10 個字節(jié):0x30~0x39?
[SPI][SSL][WT14H]02 00 00 00 30 31 32 33 34 35 36 37 38 39[SSH]?
寫入之前禁用寫保護(hù)?
[SPI][SSL][WT1H]06[SSH][SPI][SSL][WT14H]02 00 00 00 30 31 32 33 34 35 36 37 38 39[SSH]?
?
1.6 讀取數(shù)據(jù)?
從首地址開始讀取 20 個字節(jié)[SPI][SSL][WT4H]03 00 00 00[RD20N][SSH]?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板 DS1302 時鐘芯片參數(shù)讀取與修改
?可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? DS1302 時鐘芯片
DS1302 時鐘芯片
1.芯片介紹?
DS1302 是實(shí)時時鐘芯片,SPI 接口,可以對年、月、日、周、時、分、秒進(jìn)行計(jì)時,且具有閏年補(bǔ)償?shù)榷喾N功能。DS1302 內(nèi)部有一個 31×8 的用于臨時性存放數(shù)據(jù)的 RAM 寄存器。?
DS1302 使用 1 個字節(jié)的控制字+讀寫時序來完成數(shù)據(jù)交互,控制字節(jié)的最高有效位(位 7)必須是邏輯 1,如果它為 0,則不能把數(shù)據(jù)寫入 DS1302 中,位 6 如果為 0,則表示存取日歷時鐘數(shù)據(jù), 為 1 表示存取 RAM 數(shù)據(jù);位 5 至位 1 指示操作單元的地址;最低有效位(位 0)如為 0 表示要進(jìn)行寫
操作,為 1 表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。?
DS1302 不是標(biāo)準(zhǔn)的四線 SPI,它的發(fā)送和接收統(tǒng)一使用 IO 管腳,并且它沒有SPI 協(xié)議中的使能控制管腳。另外它有讀寫使能的 CE 控制管腳也是 SPI 協(xié)議中沒有的。?
?使能寫操作[SPI][SSH][WT2H]8E 00[SSL] 上例中,借用了 SPI 接口中的 SS 管腳來實(shí)現(xiàn)對 DS1302CE 管腳的控制時序。下同。?
?
2.讀取時間?
?
讀取年讀取周讀取月讀取日讀取時讀取分讀取秒
?
[SPI][SSH][WT1H]8D[RD1][SSL]?
[SPI][SSH][WT1H]8B[RD1][SSL]?
[SPI][SSH][WT1H]89[RD1][SSL]?
[SPI][SSH][WT1H]87[RD1][SSL]?
[SPI][SSH][WT1H]85[RD1N][SSL]?
[SPI][SSH][WT1H]83[RD1N][SSL]?
[SPI][SSH][WT1H]81[RD1N][SSL]?
也可以一次連續(xù)讀?。篬SPI][SSH][WT1H]81[RD7N][SSL]?
?
3.修改時間?
修改年 [SPI][SSH][WT2H]8C 18[SSL] 修改周 [SPI][SSH][WT2H]8A 02[SSL] 修改月 [SPI][SSH][WT2H]88 05[SSL] 修改日 [SPI][SSH][WT2H]86 15[SSL] 修改時 [SPI][SSH][WT2H]84 08[SSL] 修改分 [SPI][SSH][WT2H]82 30[SSL] 修改秒 [SPI][SSH][WT2H]80 00[SSL]?
以上實(shí)現(xiàn)了修改日期時間為:2018-05-15 08:30:00(星期二),下面的指令可一次性寫入 [SPI][SSH][WT8H]80 00 30 08 15 05 02 18[SSL]?
?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板如何使用S2STool工具?
可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? 專用工具 S2STool 介紹?
S2STool 是為 S2S 固件開發(fā)的測試工具,運(yùn)行于 Windows 平臺,內(nèi)置串口調(diào)試助手和 S2S 參數(shù)配置工具,支持動態(tài)解析自定義的芯片驅(qū)動,用戶可自行編寫、修改、增加任何芯片的驅(qū)動程序, 方便對芯片進(jìn)行測試和評估。?
1.S2STool 主界面?
雙擊 S2STool.exe 啟動程序,主界面如下圖所示。?

標(biāo)題欄:顯示工具名稱和版本信息,S2STool 工具與 S2S 固件一一對應(yīng),請根據(jù) S2S 固件版本來選擇適用的 S2STool 工具版本。?
狀態(tài)欄:顯示工具的運(yùn)行狀態(tài)。?
計(jì)算機(jī)端口區(qū):選擇USB2S 與計(jì)算機(jī)連接的 COM 端口,設(shè)置 COM 端口通訊參數(shù)。?
S2S 參數(shù):S2S 固件的參數(shù)讀取和修改操作區(qū)。?
接口與芯片選擇區(qū):選擇外接芯片(或模塊、設(shè)備)的接口類型和芯片型號名稱。?
芯片操作區(qū):對選擇的具體芯片的所有預(yù)編程測試功能按鈕區(qū)。?
串口助手:通用串口助手,可收發(fā)字符串或者 16 進(jìn)制數(shù)據(jù)。?
2.連接端口?
連接 COM 端口的目的是建立計(jì)算機(jī)與 USB2S 的通訊鏈路,以完成參數(shù)讀寫、芯片測試、串口收發(fā)等后續(xù)工作。?
在計(jì)算機(jī)端口區(qū)選擇與 USB2S 連接的COM 端口名稱(見“4.1 驅(qū)動安裝” ,選擇與 USB2S 一致
的通訊速率(默認(rèn)為 9600bps),點(diǎn)擊【連接端口】按鈕,若連接成功,則連接狀態(tài)圖標(biāo)由黑色變?yōu)榧t色,狀態(tài)欄提示信息為“COMx 已連接”。?
3.參數(shù)讀取與修改?
3.1參數(shù)讀取?
端口連接成功后,點(diǎn)擊 S2S 參數(shù)區(qū)的【讀取模塊參數(shù)】按鈕,稍候(約 1~2 秒)即可完成 S2S 模塊的參數(shù)讀取,狀態(tài)欄提示“收到參數(shù)寄存器數(shù)據(jù),CRC 校驗(yàn)正確”,參數(shù)更新顯示于參數(shù)區(qū)的各個控件。?
3.2參數(shù)修改?
在 S2S 參數(shù)區(qū)內(nèi)修改參數(shù),點(diǎn)擊【寫入模塊參數(shù)】按鈕,即可將界面顯示的參數(shù)更新到模塊, 狀態(tài)欄顯示“參數(shù)修改成功”。?
3.4 接口類型與芯片選擇?
在接口與芯片選擇區(qū),點(diǎn)選接口類型為 UART、I2C、SPI、1-Wire 之一,程序自動檢索已存在的所選接口的驅(qū)動文件, 并將備選芯片名稱加載到【芯片名稱下拉框】,在下拉框內(nèi)選擇需要的芯片即可。芯片選擇后,芯片名稱下方自動顯示此芯片的功能描述,此時點(diǎn)擊右側(cè)的【芯片介紹】按鈕可打開芯片介紹窗口,點(diǎn)擊【數(shù)據(jù)手冊】按鈕可打開此芯片的數(shù)據(jù)手冊文件。?
芯片選擇后,在芯片操作區(qū)會自動加載此芯片的功能操作按鈕和數(shù)據(jù)項(xiàng)目表格,如圖示。?

芯片名稱下拉框中出現(xiàn)的每一個備選芯片均對應(yīng)一個驅(qū)動文件,用戶也可根據(jù)驅(qū)動文件編寫規(guī)則自行編寫新的芯片
文件,也可修改已有芯片的驅(qū)動文件內(nèi)容,詳見“第九章:芯片驅(qū)動文件說明”。?
3.5 芯片測試?
在芯片操作區(qū),列出和多個關(guān)于所選芯片相關(guān)的操作按鈕,點(diǎn)擊對應(yīng)按鈕即可完成芯片的讀寫操作。 點(diǎn)擊某個按鈕時,主界面右側(cè)的串口助手發(fā)送區(qū)顯示此按鈕對應(yīng)的發(fā)送的指令內(nèi)容,接收區(qū)顯示了芯片對指令的響應(yīng)過程和返回?cái)?shù)據(jù),在芯片的驅(qū)動文件內(nèi),對芯片的返回?cái)?shù)據(jù)做了部分運(yùn)算定義,可自動根據(jù)預(yù)定公式完成計(jì)算,并將運(yùn)算結(jié)果顯示于操作按鈕右側(cè)的表格內(nèi)。?

通過上圖可看出,點(diǎn)擊按鈕后自動從發(fā)送區(qū)發(fā)送的內(nèi)容實(shí)際上就是根據(jù)S2S 通訊協(xié)議和當(dāng)前所選芯片數(shù)據(jù)手冊所生成的S2S 關(guān)鍵字指令碼(詳見前述“第三章:通訊協(xié)議”和“4.2SHT3x 溫濕度傳感器芯片”),用戶可根據(jù)需要,自行編輯修改發(fā)送區(qū)的內(nèi)容,然后點(diǎn)擊【發(fā)送】按鈕實(shí)現(xiàn)自定義指令發(fā)送。?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板芯片驅(qū)動文件說明?
可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? 芯片驅(qū)動文件說明?
芯片選擇下拉框內(nèi)列出的每一個備選芯片的驅(qū)動文件和數(shù)據(jù)手冊位于S2STool 工具文件夾中的chips 文件夾內(nèi),每一個芯片需要 1 個驅(qū)動文件和 1 個數(shù)據(jù)手冊文件,用戶可自行打開編輯,或者創(chuàng)建新的芯片驅(qū)動文件。?
芯片驅(qū)動文件為 xml 格式,需要手工修改或者創(chuàng)建,芯片數(shù)據(jù)手冊一般來自于網(wǎng)絡(luò),下載后復(fù)制到 chips 文件夾內(nèi)即可。?
Xml 文件為文本文件,建議使用“Notepad++”編輯器。?
?
1.芯片驅(qū)動結(jié)構(gòu)說明?
下圖所示為芯片驅(qū)動的模板文件“template.xml”。?

芯片驅(qū)動文件的結(jié)構(gòu)較為簡單,分為芯片說明、描述部分和測試指令部分,芯片描述部分包括作者信息、芯片說明、數(shù)據(jù)手冊名稱等,按照實(shí)際情況修改即可,下面重點(diǎn)說明測試指令部分。
在驅(qū)動文件中的 COMMANDS 節(jié)點(diǎn)內(nèi),每一對尖括號節(jié)點(diǎn)段(< />,下文稱“指令節(jié)點(diǎn)”)稱為一個命令,每個命令對應(yīng)主界面上芯片操作區(qū)的一個按鈕,按鈕由程序根據(jù)驅(qū)動文件動態(tài)生成。? ?指令中的屬性?
caption 屬性:顯示于按鈕上的文字內(nèi)容?
hint 屬性:此指令的提示信息(當(dāng)鼠標(biāo)移動到此按鈕上時會顯示此提示)?
?
cmdStr 屬性:此指令的具體指令內(nèi)容(符合S2S 協(xié)議的字符串指令),支
?
用“|”分隔的多條
?
字符串指令,例如:指令字符串 1|DELAY100|指令字符串 2|DELAY100|……?
指令的子節(jié)點(diǎn)-返回?cái)?shù)據(jù)計(jì)算項(xiàng)?
對于有返回?cái)?shù)據(jù)的指令,若希望對返回?cái)?shù)據(jù)進(jìn)行一些運(yùn)算并將運(yùn)算結(jié)果顯示于主界面的數(shù)據(jù)表格中,則應(yīng)為此指令添加若干子節(jié)點(diǎn),即“返回?cái)?shù)據(jù)計(jì)算項(xiàng)”,返回?cái)?shù)據(jù)計(jì)算項(xiàng)的數(shù)量(行數(shù))沒有任何限制,可以沒有,也可以任意多個。?
數(shù)據(jù)計(jì)算項(xiàng)的屬性?
caption 屬性:顯示于數(shù)據(jù)表格中的第一列,即:名稱列。?
formula 屬性:此數(shù)據(jù)項(xiàng)的計(jì)算公式,計(jì)算公式的運(yùn)算結(jié)果會更新到數(shù)據(jù)表格的第二列,即: 數(shù)值列。?
startBit 和 endBit 屬性:若是“-1”則表示計(jì)算公式結(jié)果直接顯示于界面表格中,否則將指定的某些位(bit)截取后顯示于表格中。要取出的二進(jìn)制數(shù)據(jù)可以指定開始位值和結(jié)束位值, 分別用 startBit 和endBit 來定義。?
關(guān)于計(jì)算公式?
計(jì)算公式為一段字符串,支持常用的四則運(yùn)算符號和初等數(shù)學(xué)函數(shù)、邏輯函數(shù)等。在公式中, 可使用“dat[0]”表示執(zhí)行當(dāng)前指令后芯片返回的首個字節(jié),“dat[1]”表示返回的第第 2 個字節(jié),以此類推。?
2.新建芯片驅(qū)動?
(1)創(chuàng)建芯片驅(qū)動文件?
打開“template.xml”文件,根據(jù)芯片接口類型,將文件另存到 chips 文件夾內(nèi)的 I2S、SPI
?
或者 Wire 文件夾內(nèi),文件名稱必須使用芯片名稱,方便在主界面芯片備選框中識別此芯片。?
(2)添加數(shù)據(jù)手冊?
將下載的數(shù)據(jù)手冊文件復(fù)制到與上述芯片驅(qū)動文件相同的文件夾內(nèi)。?
(3)修改芯片驅(qū)動內(nèi)容?
按照 9.1 中的驅(qū)動文件結(jié)構(gòu)和各部分含義、功能和注意事項(xiàng),對照芯片數(shù)據(jù)手冊完成驅(qū)動文件內(nèi)容的修改,最后保存驅(qū)動文件。?
(4)運(yùn)行程序并驗(yàn)證驅(qū)動文件?
將芯片連接到 USB2S 的對外管腳上,運(yùn)行 S2STool 工具,選擇剛剛創(chuàng)建的芯片名稱,驗(yàn)證各個命令及返回的數(shù)據(jù)計(jì)算項(xiàng)是否正確。?
可編程 USB 轉(zhuǎn)串口適配器開發(fā)板 常見問題及注意事項(xiàng)?
可編程USB轉(zhuǎn) UART/I2C /SMBusS/SPI/CAN/1 -Wire適配器USB2S? 常見問題及注意事項(xiàng)?
(1)外接引線長度?
當(dāng)使用導(dǎo)線連接外部設(shè)備或芯片時,導(dǎo)線不可過長,一般控制在 20CM 以內(nèi),IIC、SPI、UART 等數(shù)字接口數(shù)據(jù)線驅(qū)動能力有限,過長的導(dǎo)線會導(dǎo)致通訊波形遲緩。當(dāng)導(dǎo)線確實(shí)無法縮短時,可通過降低通訊速率的方法來解決、緩解通訊異常問題。?
(2)IC 上拉電阻?
IIC 總線的SDA 和 SCL 在板上已經(jīng)連接了 2k 的上拉電阻,當(dāng)外接 IIC 設(shè)備或者芯片時,無需連接上拉電阻,當(dāng)重復(fù)連接的上拉電阻低于 1k 時會導(dǎo)致無法正常通訊或者本產(chǎn)品永久性損壞。?
(3)UART 通訊速率?
修改系統(tǒng)時鐘分頻系數(shù)會導(dǎo)致 UART 通訊速率上限無法正常工作,UART 通訊速率上限與分頻參數(shù)呈反比關(guān)系,最高支持的通訊速率=921600bps/ 分頻值( 8 分頻時, UART 最高的通訊速率
=921600/8=115200bps),在修改系統(tǒng)分頻系數(shù)時,注意先降低 UART 的通訊速率,以免發(fā)生無法通訊的問題。?
(4)電壓范圍?
USB2S 支持3.0~5.5V 的寬電壓(VCC),每個通訊管腳最高承受電壓下限為-0.3V,上限為(VCC+0.3) V,超過正常電壓范圍會導(dǎo)致模塊永久性損壞。外接測試設(shè)備或者芯片時應(yīng)特別注意。?
(5)功耗與突發(fā)電流?
USB2S 自身功率約為 50mA,使用USB 接口供電時應(yīng)注意連接的外部芯片或設(shè)備總體功耗不得超過 500mA,插撥瞬間的電流突變會導(dǎo)致電壓下降然后自動恢復(fù),在此過程中 USB2S 可能發(fā)生復(fù)位重啟并且與計(jì)算機(jī)之間的連接產(chǎn)生短時間斷開屬于正常現(xiàn)象。S2STool 工具具有檢測硬件并自動重新連接的功能。當(dāng)使用其它第三方調(diào)試工具時,一般在插撥操作后重新連接一次即可。?
?