制作一款基于USB串口的I2C在線調(diào)試神器
2017-03-11 13:56:17閱讀量:18626來源:立創(chuàng)商城
??原文鏈接:http://club.szlcsc.com/article/details_2412_1.html
??經(jīng)作者授權(quán)發(fā)布,并標(biāo)注原創(chuàng)進(jìn)行版權(quán)保護(hù)。
??1.作品簡(jiǎn)介
??I2C總線,是NXP半導(dǎo)體(原PHILIPS)于20多年前發(fā)明的一種簡(jiǎn)單的雙向二線制串行通信總線,也叫I2C或IIC(Inter-Integrated Circuit,內(nèi)部集成電路總線)。
??I2C總線是各種總線中使用信號(hào)線最少,電路簡(jiǎn)潔,并具有自動(dòng)尋址、多主機(jī)時(shí)鐘同步和仲裁等功能的總線。因此,基于I2C接口的各類芯片器件,在實(shí)際市場(chǎng)中得到廣泛應(yīng)用。這些芯片例如:
??※24CXX系列的EEPROM,如24LC08、24C01、24C128等等;
??※I2C總線8位并行IO口擴(kuò)展芯片PCF8574/JLC1562;
??※I2C接口時(shí)鐘芯片DS1307/PCF8563/SD2000D/M41T80/ME901/ISL1208/;
??※I2C ADC芯片ADS1110(16bitADC)/ADS1112(16bitADC)/;
??※I2C DAC芯片DAC5574(8bitDAC)/DAC6573(10bitDAC)/DAC8571(16bitDAC)/;
??※I2C接口的溫度傳感器SHT30/SHT31/TMP101/TMP275/DS1621/MAX6625;
??為了評(píng)估這些芯片,通常的做法是使用一個(gè)單片機(jī)或ARM,自行編寫I2C驅(qū)動(dòng)代碼,然后對(duì)這些器件進(jìn)行讀寫操作,并把數(shù)據(jù)結(jié)果上傳到PC機(jī)的方式進(jìn)行展現(xiàn)。
??然而,這樣的做法較麻煩,因?yàn)閱纹瑱C(jī)需要反復(fù)的燒錄和調(diào)試,不是很直觀和方便。為此,本人使用來自英國(guó)著名公司FTDI的高性能USB轉(zhuǎn)串口芯片F(xiàn)T234XD芯片+NXP公司的UART轉(zhuǎn)I2C總線協(xié)議管理器芯片C18IM700制作了這款可在線實(shí)時(shí)讀寫I2C總線的調(diào)試?yán)?、神?/strong>!這款利器具有操作簡(jiǎn)單(會(huì)打字就行)、顯示直觀地特點(diǎn),大大提高了測(cè)試和評(píng)估各類I2C器件的工作效率。下面,請(qǐng)?jiān)试S本人給大家介紹這款利器的設(shè)計(jì)過程和使用方法。
??2.作品亮點(diǎn)
??①實(shí)現(xiàn)通過UART協(xié)議讀寫I2C協(xié)議的從器件或者傳感器,不用寫繁瑣的I2C程序咯!
??② I2C的底層驅(qū)動(dòng)由原發(fā)明人--NXP公司設(shè)計(jì)和提供,確保了I2C驅(qū)動(dòng)的最佳時(shí)序!
??③采用業(yè)界公認(rèn)的USB接口專家--FTDI公司出品的FT234XD作為USB轉(zhuǎn)串口單元。
??④可高速通信,C18IM700的UART支持到460K,I2C支持到400K。
??⑤接口信號(hào):SCL、SDA、GND、+5V、+3.3V。
??⑥本方案驗(yàn)證板采用USB BUS總線供電,評(píng)估I2C器件,無需額外再提供電源。
??⑦C18IM700的所用IO均引出,包括8個(gè)GPIO端口和2個(gè)輸入按鍵。
??⑧本方案驗(yàn)證板一分為二,即可單獨(dú)用作USB轉(zhuǎn)串口模塊,也可以單獨(dú)用在I2C讀寫模塊。
??⑨2.3-3.6V供電,支持5V IO口的I2C電氣接口。
??3.系統(tǒng)構(gòu)架圖
??
??系統(tǒng)解說: 本系統(tǒng)有二大部分組成,分別是:基于FT234XD的高性能USB轉(zhuǎn)串口模塊部分和基于NXP的SC18IM700 I2C MASTER總線驅(qū)動(dòng)模塊部分。
??4.原理圖
??原理圖分為多個(gè)部分,下面逐個(gè)介紹:
??第一部分: USB轉(zhuǎn)串口模塊部分
??備注說明:上圖使用的是FTDI官方推薦的應(yīng)用電路,其中U1是FT234XD 負(fù)責(zé)實(shí)現(xiàn)USB轉(zhuǎn)串口的芯片,C9、C10、R10、R11組成了USB總線的信號(hào)匹配和防D+D-短路(過流)的電路,F(xiàn)T234XD內(nèi)置USB上拉電阻,所以無需額外在增加。U3是USB總線的抗靜電保護(hù)器件,采用的是美國(guó)力特LittelFuse公司出品的SP0503BAHTG,可以根據(jù)需要焊接或不焊接。
??而R1、R2、Q1、C5組成用來一個(gè)軟啟動(dòng)、VBUS(5V)電源輸出的電路,以減輕對(duì)外部負(fù)載的電流沖擊,進(jìn)而影響到USB通信芯片 FT234XD的穩(wěn)定性和可靠性。如果不需要這個(gè)軟啟動(dòng)電路,可以不焊接這些器件,同時(shí)用一個(gè)零歐姆的電阻跳過該功能。類似地,R18和C14是接到USB連接器的外殼,用于增加外殼的ESD防護(hù)能力,可根據(jù)需要焊接或不焊接。
??第二部分:系統(tǒng)的供電電源部分
??
??備注說明:如上圖所示,本方案驗(yàn)證板模塊,可對(duì)外提供+5V和+3.3V電源,其中 +3.3V電源由LDO芯片采用臺(tái)灣Holtek 公司的 HT7233,SOT-89封裝,最大可提供300mA的驅(qū)動(dòng)能力,這個(gè)基本能覆蓋絕大部分的I2C器件的評(píng)估需求。
??第三部分:I2C總線驅(qū)動(dòng)模塊部分
??備注說明:如上圖所示,I2C總控制器采用NXP的SC18IM700這個(gè)芯片,它的RX 和TX引腳分別交叉接到USB轉(zhuǎn)串口芯片的TXD和RXD端口。這樣以來,上位機(jī)軟件(如串口助手之類的)就可以直接控制SC18IM700進(jìn)行I2C總線的讀寫操作了。
??此外,圖中的S1輕觸開關(guān)是用來復(fù)位芯片的,如果I2C操作出現(xiàn)異?;蛘哂X得有必要,用戶可以按下此開關(guān),進(jìn)行I2C總線的初始化。
??而S2是用來喚醒芯片的,當(dāng)SC18IM700被設(shè)置進(jìn)入SLEEP狀態(tài)時(shí)。
??5.材料清單(BOM列表)
??以下是這個(gè)電子制作的BOM列表,器件全部采購(gòu)來自立創(chuàng)商城(http://www.17719.cn),PCB板的制造在深圳嘉立創(chuàng)完成。除了插件的器件外,SMT也是嘉立創(chuàng)完成滴。
??6.軟件部分的描述
??軟件部分,這個(gè)應(yīng)用方案模塊,不需要編寫任何代碼,純硬件電路實(shí)現(xiàn),正常焊接即可使用。
??7.PCB實(shí)物圖
??8.調(diào)試過程和應(yīng)用實(shí)例
??第一步:準(zhǔn)備工作
??根據(jù)上面的BOM表焊接好PCBA后,如果焊接正常的話,通過MicroUSB數(shù)據(jù)線將它插入到PC機(jī)的USB串口后,接著安裝FT234XD的串口驅(qū)動(dòng)程序,隨后即可進(jìn)入工作狀態(tài)。
??第二步:測(cè)試PCBA是否焊接正常
??打開USB串口軟件(本人用的是SSCOM3.3串口助手),按這個(gè)常見的波特率進(jìn)行設(shè)置:(9600,N,8,1, 這個(gè)波特率也是SC18IM700的默認(rèn)波特率,如需修改后面還可以通過相應(yīng)寄存器進(jìn)行設(shè)置)。接著,將短接帽JP1和JP2接入,即把USB轉(zhuǎn)串口芯片的TX&RX和SC18IM700的串口線TX&RX連接起來;隨后,用手去按下S1復(fù)位一下SC18IM700芯片。此時(shí),如果在串口助手看到有字符“OK“顯示,表示PCBA功能基本正常。
??第三步:進(jìn)一步測(cè)試TX和RX的連線是否正常
??上一步,只是初步測(cè)試了串口RX的接收情況,沒有測(cè)試TX功能。測(cè)試TX功能,可以通過讀寫SC18IM700內(nèi)部寄存器的方式進(jìn)行判斷,這些寄存器的地址和復(fù)位默認(rèn)值如下:
??測(cè)試方法,比如我們要讀寫SC18IM700的00 和01 號(hào)寄存器的上電復(fù)位默認(rèn)值,只需在串口助手軟件上,以HEX發(fā)送的方式,輸入“52 00 01 50”即可,如果硬件和連接一切正常的話,串口助手的接收端(HEX格式接收)會(huì)顯示“F0 02 ”。
??第四步:應(yīng)用實(shí)例1:點(diǎn)亮或熄滅SC18IM700的GPIO端口上外接的一個(gè)LED指示燈。
??首先,需要給大家說明的是,所有對(duì)I2C 總線控制器 SC18IM700的讀寫和控制,即在線調(diào)試,都是通過USB轉(zhuǎn)串口跟芯片SC18IM700之間的交互完成的。這些交互指令,如下:
??
??SC18IM700本身帶有8個(gè)GPIO接口,每個(gè)GPIO可以設(shè)置成四種模式(輸入或輸出),假設(shè)一個(gè)LED指示燈接到了GPIO.0 這個(gè)PIN上,為了點(diǎn)亮或熄滅這個(gè)LED 指示燈,我們首先可直接在串口助手上,發(fā)出“4F00 50”或者“4F 01 50”即可。
??第四步:應(yīng)用實(shí)例2:讀寫EEPROM 芯片24C02
??為了讀寫EEPROM,我們需要根據(jù)SC18IM700的以下這個(gè)指令格式,進(jìn)行操作。
??具體地,為了讀取16個(gè)默認(rèn)地址的數(shù)據(jù),我們只需要在串口助手里輸入和發(fā)送“53 XX 10 50”。
??其中,XX是24C02的I2C地址(最低字節(jié)要為1,表示讀),10是表明要讀16個(gè)數(shù)據(jù)。
??
??為了寫入默認(rèn)地址的8個(gè)字節(jié)數(shù)據(jù),我們只需要在串口助手里輸入和發(fā)送“53 YY 08 D1 D2 D3 D4 D5 D6 D7 D8 50”。其中,YY是24C02的I2C地址(最低字節(jié)要為0,表示寫),08是表明要寫入8個(gè)數(shù)據(jù)。
??因篇幅所限,SC18IM的其它功能在此就不在展現(xiàn),比如為了設(shè)置I2C的讀寫時(shí)鐘,我們可通過設(shè)置SC18IM700內(nèi)部07和08號(hào)的寄存器值,來改變。也可以通過修改SC18IM700內(nèi)部09號(hào)的寄存器值,來設(shè)置或禁止I2C總線的讀寫信號(hào)的時(shí)間限定值。通過讀取SC18IM700內(nèi)部0A號(hào)的寄存器值,來獲取I2C總線執(zhí)行的結(jié)果,通過設(shè)置00和01號(hào)寄存器進(jìn)行串口波特率速度的調(diào)整等等。
??9.總結(jié)
??只使用兩個(gè)芯片SC18IM700和SC18IM700,我們便制作出了這款可在線實(shí)時(shí)讀寫I2C總線的調(diào)試?yán)?、神器!使用它,我們只需要在串口助手軟件上,直接根?jù)I2C的讀寫格式發(fā)出相關(guān)的操作命令即可對(duì)I2C器件進(jìn)行讀寫操作,而無需編寫任何頭疼的I2C代碼,也不用反復(fù)燒錄單片機(jī)的調(diào)試代碼,而是重心放在如何應(yīng)用I2C器件方面,大大提高了測(cè)試和評(píng)估各類I2C器件的工作效率!
??此作品以方案驗(yàn)證板的形式出現(xiàn),并得到了立創(chuàng)商城的贊助,在此表示非常感謝!順此,授權(quán)立創(chuàng)商城對(duì)本作品進(jìn)行宣傳和開源!

L7805CV-DG/線性穩(wěn)壓器(LDO) | 0.5401 | |
AMS1117-3.3/線性穩(wěn)壓器(LDO) | 0.1237 | |
BAT54C,215/肖特基二極管 | 0.0336 | |
LM358DR2G/運(yùn)算放大器 | 0.345 | |
CJ431/電壓基準(zhǔn)芯片 | 0.1157 | |
LM393DR2G/比較器 | 0.3143 | |
ADUM4160BRWZ-RL/隔離式USB芯片 | 34.83 | |
REF3012AIDBZR/電壓基準(zhǔn)芯片 | 0.9316 | |
SS8050/三極管(BJT) | 0.035 | |
8S005/錫膏/錫漿 | 17.67 |
- 雷軍官宣,小米自研手機(jī)芯片成了!
- 做了個(gè)“迷你”閱讀器!有10個(gè)功能,好實(shí)用……
- SM Switch無錫斯茂:電子開關(guān)專業(yè)制造商
- 震東電子:一站式電感解決方案
- 用立創(chuàng)開發(fā)板,做了個(gè)AI小電視!能聊天,能翻譯……
- 中芯國(guó)際,利潤(rùn)暴漲!
- XBLW/芯伯樂產(chǎn)品應(yīng)用在數(shù)字萬用表上的開發(fā)設(shè)計(jì)
- 鴻利智匯:成為L(zhǎng)ED車燈國(guó)產(chǎn)化堅(jiān)定擁護(hù)者
- STM32F103C8T6和GD32F103C8T6有啥區(qū)別?
- 原來小米的屏幕,放大后長(zhǎng)這樣!我做了個(gè)電子顯微鏡……