亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

I2C IO擴(kuò)展器選型與實(shí)戰(zhàn):從PCF8574到AW9523解決GPIO不夠用

I2C IO擴(kuò)展器選型與實(shí)戰(zhàn):從PCF8574到AW9523解決GPIO不夠用 1. 從一次“不夠用”的窘境說起做嵌入式開發(fā)的朋友十有八九都撞到過這堵墻主控芯片引腳算來算去就是差那么幾個(gè)要么砍功能要么換大封裝主控要么硬著頭皮飛線。我之前做過一個(gè)帶多路按鍵、LED、傳感器供電控制的采集節(jié)點(diǎn)主控就一個(gè)36腳的MCU功能排下來GPIO缺口將近10個(gè)板子尺寸又卡得死死的換主控不現(xiàn)實(shí)。那會(huì)兒第一反應(yīng)是“要不要上CPLD”后來冷靜算了一筆賬CPLD成本、開發(fā)環(huán)境、燒錄器全加在一起解決10個(gè)IO的問題性價(jià)比實(shí)在太低。后來把目光放在I2C IO擴(kuò)展器上一套流程跑下來板子順利量產(chǎn)成本只多了幾塊錢。這個(gè)經(jīng)歷讓我對(duì)IO擴(kuò)展選型有了不少切身體會(huì)今天就把這些經(jīng)驗(yàn)掰開揉碎聊一聊。這篇文章適合誰看硬件工程師評(píng)估方案階段、嵌入式軟件工程師在驅(qū)動(dòng)層踩坑、以及自己畫板子玩單片機(jī)的創(chuàng)客朋友。我會(huì)把方案對(duì)比、選型參數(shù)、實(shí)際代碼、常見坑全部整理出來盡量讓不同基礎(chǔ)的讀者都能拿去直接用。2. 主控GPIO不夠用先別急著加芯片2.1 四種擴(kuò)展方案的底層邏輯聽到“GPIO擴(kuò)展”很多人第一反應(yīng)就是加一顆IO擴(kuò)展芯片。實(shí)際上GPIO不夠用有更樸素的解法只是大家習(xí)慣往復(fù)雜了想。我把常見的思路排了一下每個(gè)方案背后的本質(zhì)邏輯完全不同。第一種是邏輯器件擴(kuò)展。原理特別簡(jiǎn)單用74HC595這種串行移位寄存器把數(shù)據(jù)一位一位送進(jìn)去然后并行輸出??刂?個(gè)引腳就能換來8個(gè)輸出級(jí)聯(lián)以后還能繼續(xù)翻倍。反過來輸入端可以用74HC165把并行的電平一個(gè)一個(gè)讀出來。優(yōu)點(diǎn)是非常便宜一顆595幾毛錢缺點(diǎn)也很明顯想讀輸入就要換芯片想同時(shí)讀又要加邏輯輸出狀態(tài)在上電瞬間是亂的得額外處理。第二種是I2C IO擴(kuò)展。走的是標(biāo)準(zhǔn)通信協(xié)議主控I2C總線上掛一顆從設(shè)備通過寫寄存器來控制引腳。一顆PCF8574有8個(gè)IO地址通過硬件引腳可以拼出8個(gè)地址一條總線上最多掛64個(gè)IO8顆芯片。優(yōu)點(diǎn)是雙向輸入輸出、占用引腳少兩個(gè)引腳SCL/SDA即可、上電狀態(tài)可控、可以直接級(jí)聯(lián)。缺點(diǎn)是有通信時(shí)序的要求軟件上比直接拉引腳多幾行代碼。第三種是SPI IO擴(kuò)展比如MCP23S17。本質(zhì)和I2C一樣但SPI速率高不少適合需要高頻翻轉(zhuǎn)的場(chǎng)景代價(jià)是占用的引腳多一個(gè)至少SCK、MOSI、MISO、CS四個(gè)而且SPI設(shè)備沒有像I2C那樣靈活的地址硬件配置。第四種是模擬開關(guān)/譯碼器用74HC138這種3-8譯碼器組合出多路選擇。這個(gè)方法看著省引腳實(shí)際用起來非常難受因?yàn)檩敵霾绘i存、沒有寄存器概念每一次切換都要重新控制選擇引腳。適合做掃描場(chǎng)景不適合做需要保持狀態(tài)的輸出。我在實(shí)際項(xiàng)目里的取舍邏輯是這樣的純輸出點(diǎn)LED指示、沒有輸入需求、對(duì)成本極其敏感的用595。按鍵掃描、輸入輸出混用、需要保存輸出狀態(tài)的直接上I2C擴(kuò)展。SPI擴(kuò)展芯片除非速率確實(shí)不夠否則不推薦純屬浪費(fèi)引腳。2.2 I2C擴(kuò)展器相對(duì)其他方案的三點(diǎn)優(yōu)勢(shì)I2C IO擴(kuò)展器能夠成為大多數(shù)場(chǎng)景的默認(rèn)選擇不是營銷吹出來的而是三個(gè)硬核優(yōu)勢(shì)拍板的。第一個(gè)優(yōu)勢(shì)是引腳效率極高。整條I2C總線就兩根線SCL、SDA只要地址不沖突想掛幾個(gè)擴(kuò)展器都可以。對(duì)比SPI的4根線以及595的至少3根控制線再加級(jí)聯(lián)邏輯I2C完全是數(shù)量級(jí)的節(jié)省。更妙的是I2C天生支持多設(shè)備共用總線——你如果已經(jīng)有傳感器在總線上擴(kuò)展器就是順路捎帶的事不需要額外占用任何引腳。第二個(gè)優(yōu)勢(shì)是輸入輸出雙向可編程。PCF8574這類芯片雖然簡(jiǎn)單但每個(gè)引腳既可以配置為輸入也可以驅(qū)動(dòng)為輸出這是595做不到的。實(shí)際項(xiàng)目中特別常見的一種需求是“這兩個(gè)引腳平時(shí)當(dāng)輸入用我需要的時(shí)候要能把它拉低”——比方說去控制一個(gè)使能腳又想去檢測(cè)它外部的電平狀態(tài)。I2C擴(kuò)展器一條指令切換方向硬件邏輯上天然支持。第三個(gè)優(yōu)勢(shì)是上電狀態(tài)有保證。595在MCU配置之前輸出是隨機(jī)的可能導(dǎo)致繼電器誤動(dòng)作。而I2C擴(kuò)展器比如MCP23017帶硬件復(fù)位引腳和上電默認(rèn)寄存器值或者PCF8574上電后輸出為高在設(shè)計(jì)電路時(shí)把這些狀態(tài)考慮進(jìn)去系統(tǒng)上電的確定性就高了。這一點(diǎn)在很多工業(yè)控制類產(chǎn)品里是硬性要求。3. 選型前必須搞懂的幾個(gè)核心參數(shù)3.1 地址配置決定一條總線能掛多少芯片I2C通信之所以只需要兩根線靠的是每個(gè)設(shè)備有獨(dú)一無二的地址。IO擴(kuò)展器選型第一個(gè)要關(guān)注的就是地址位寬。PCF8574有A0/A1/A2三個(gè)硬件引腳每個(gè)引腳能接高電平或低電平所以有2的3次方等于8種組合基地址是0x20后面細(xì)講實(shí)際占用0x20到0x27這8個(gè)地址。MCP23017一樣是3個(gè)地址引腳。TCA9535也是這樣。AW9523是4個(gè)地址引腳支持16種地址組合。重點(diǎn)提醒一句看芯片手冊(cè)時(shí)要注意區(qū)分“地址引腳數(shù)量”和“可掛載芯片數(shù)量”可掛載數(shù)量理論上等于2的地址引腳次方但是還要扣除總線上其他設(shè)備的地址占用。比如總線上已經(jīng)有一個(gè)地址為0x20的傳感器那么PCF8574從0x20開始的8個(gè)地址就有一個(gè)被占了實(shí)際最多只能掛7顆。設(shè)計(jì)時(shí)先把總線地址圖列出來再?zèng)Q定選幾顆芯片避免做到一半發(fā)現(xiàn)地址不夠用只能改板。3.2 輸出結(jié)構(gòu)與驅(qū)動(dòng)能力不是所有引腳都能推挽輸出這是一個(gè)非常多新手栽跟頭的地方。PCF8574的輸出結(jié)構(gòu)是開漏引腳內(nèi)部沒有推挽驅(qū)動(dòng)只能拉低或者釋放。釋放以后靠外部上拉電阻把電平拉高。這意味著兩件事第一引腳輸出高電平的驅(qū)動(dòng)能力取決于上拉電阻阻值想驅(qū)動(dòng)LED必須外部加上拉電阻并且計(jì)算電流第二開漏結(jié)構(gòu)天然適合“線與”多個(gè)引腳可以直接并聯(lián)做邏輯或這在某些特殊電路里反而是個(gè)優(yōu)勢(shì)。MCP23017則不同它的輸出寄存器默認(rèn)是推挽輸出可以直接推高和拉低驅(qū)動(dòng)能力也更強(qiáng)單引腳能到25mA具體看電壓帶LED完全不需要外部上拉。TCA9535又回到了開漏結(jié)構(gòu)。AW9523是這幾顆里比較特殊的存在它支持推挽輸出模式每個(gè)引腳可以通過寄存器配置為推挽或開漏。默認(rèn)是開漏但改一個(gè)bit就能變推挽對(duì)驅(qū)動(dòng)LED、繼電器這種負(fù)載非常友好。而且AW9523內(nèi)置了LED呼吸燈控制硬件自動(dòng)產(chǎn)生PWM波形軟件寫寄存器就能做呼吸效果不用MCU軟件模擬。選擇邏輯很簡(jiǎn)單要驅(qū)動(dòng)LED燈板、數(shù)碼管段位選推挽輸出或者開漏外部上拉的方案要接I2C總線做電平匹配開漏反而更方便。3.3 中斷能力輪詢還是等中斷直接影響系統(tǒng)功耗很多人選IO擴(kuò)展器只關(guān)心IO數(shù)量和地址完全忽略中斷引腳。等到實(shí)際做低功耗項(xiàng)目的時(shí)候才后悔設(shè)備睡眠狀態(tài)下IO擴(kuò)展器檢測(cè)到按鍵動(dòng)作主控還在睡按鍵事件丟失。PCF8574是靠讀引腳電平來感知外部變化的想檢測(cè)按鍵必須不停輪詢或者用一個(gè)獨(dú)立的IO口同時(shí)接按鍵和擴(kuò)展器。MCP23017帶了INTA/INTB兩個(gè)中斷輸出引腳當(dāng)配置為輸入的引腳電平發(fā)生變化時(shí)中斷引腳會(huì)拉低主控可以從睡眠中喚醒再通過I2C讀具體是哪個(gè)引腳變化了。TCA9535也是類似設(shè)計(jì)。AW9523的中斷設(shè)計(jì)更靈活每個(gè)引腳可以獨(dú)立使能中斷并且支持邊沿觸發(fā)和電平觸發(fā)。實(shí)際做低功耗產(chǎn)品時(shí)把擴(kuò)展器所有輸入引腳的中斷都打開主控平時(shí)進(jìn)入睡眠有外部事件通過INT引腳喚醒再讀寄存器知道哪個(gè)按鍵觸發(fā)整機(jī)功耗能壓得很低。我建議只要目標(biāo)產(chǎn)品要考慮電池供電或者待機(jī)功耗就直接選帶中斷的型號(hào)。哪怕第一版用不到多這個(gè)功能也不多花錢后續(xù)升級(jí)固件就能用上。3.4 速率等級(jí)與總線上拉電阻穩(wěn)定性隱患從這里出I2C協(xié)議有標(biāo)準(zhǔn)模式100kHz、快速模式400kHz、快速模式1MHz這些等級(jí)。多數(shù)IO擴(kuò)展器支持到400kHz看起來隨便夠用但很多人忽略了一個(gè)重要細(xì)節(jié)總線上拉電阻的取值和總線上掛的設(shè)備數(shù)量直接相關(guān)??偩€電容越大上拉電阻就要越小否則信號(hào)上升沿太慢通信會(huì)出現(xiàn)隨機(jī)錯(cuò)誤。幾個(gè)設(shè)備的電容疊加起來總線可能就不達(dá)標(biāo)了。我做過多設(shè)備掛載的項(xiàng)目總線上掛了2顆PCF8574、1顆BH1750光照傳感器、1顆EEPROM上拉電阻用的是4.7k總線速率跑到400kHz就偶爾出錯(cuò)換到2.2k才穩(wěn)定。后來查了總線電容計(jì)算公式總線上掛的設(shè)備越多上拉電阻確實(shí)需要相應(yīng)減小。需要注意是上拉電阻太小了會(huì)增大靜態(tài)電流IO擴(kuò)展器的輸出低電平驅(qū)動(dòng)能力有限如果上拉電阻太小引腳拉低時(shí)電流太大同樣會(huì)導(dǎo)致通信失敗。工程實(shí)踐建議掛載設(shè)備少2~3個(gè)、總線長度短10cm以內(nèi)用4.7k沒問題設(shè)備多、走線長的用2.2k試極端情況可以上1k此時(shí)注意確認(rèn)芯片輸出低電平時(shí)的灌電流能力在規(guī)格書范圍內(nèi)。3.5 特殊功能是不是有“隱藏加分項(xiàng)”除了基礎(chǔ)的IO讀寫現(xiàn)在新出的IO擴(kuò)展器開始卷內(nèi)置功能。AW9523的LED呼吸燈就是典型代表芯片內(nèi)部有PWM模塊可以獨(dú)立控制每個(gè)引腳的呼吸頻率和占空比。對(duì)于做氛圍燈、跑馬燈、鍵盤背光的項(xiàng)目這個(gè)功能能把MCU從軟件模擬PWM中解放出來一個(gè)寄存器指令就搞定了。還有一類加分項(xiàng)是I2C地址可編程范圍和兩種供電域支持。AW9523支持1.8V到5V供電邏輯電平也可以單獨(dú)匹配這樣兩邊電壓不一樣也能直接用。選型時(shí)多翻幾頁手冊(cè)的特殊功能章節(jié)經(jīng)常能發(fā)現(xiàn)一些小驚喜。4. 五款主流I2C IO擴(kuò)展芯片橫向?qū)Ρ葦?shù)據(jù)手冊(cè)的參數(shù)比較枯燥我整理了一張表把目前市面上最常遇到的幾款芯片放在一起方便快速定位。芯片型號(hào)IO數(shù)量輸出結(jié)構(gòu)地址數(shù)中斷最大IO速率典型驅(qū)動(dòng)能力特色功能典型價(jià)格區(qū)間PCF85748開漏8無100k/400k準(zhǔn)雙向灌電流約20mA最經(jīng)典資料最多0.5~1.5元MCP2301716推挽8有1.7MHz約100k/400k兼容單引腳25mA輸入極性可配置內(nèi)部上拉可選3~6元TCA953516推挽準(zhǔn)雙向8有400k單引腳約10mATI主流低靜態(tài)功耗2~5元AW952316推挽/開漏可配16有400k單引腳約20mALED呼吸燈/PWM電壓范圍寬2~4元PCA955516推挽8有400k單引腳約10mA老牌經(jīng)典替代型號(hào)多2~5元選型的時(shí)候我一般這么走只做簡(jiǎn)單輸出和少量輸入、預(yù)算敏感選PCF8574成本最低代碼網(wǎng)上滿天飛IO需求超過8個(gè)、且要中斷推挽看MCP23017和PCA9555MCP23017的資料和庫更多做LED燈效類的優(yōu)先考慮AW9523呼吸燈功能省掉大量軟件工作功耗敏感、電池供電優(yōu)先考慮TCA9535靜態(tài)電流更低。實(shí)際項(xiàng)目中我用的最多的是PCF8574和AW9523前者純打雜后者是后來發(fā)現(xiàn)的“真香”芯片。5. 實(shí)操演示PCF8574從硬件連接到驅(qū)動(dòng)代碼5.1 硬件連接與地址計(jì)算以STM32F103的主控為例I2C1的PB6連SCLPB7連SDA接PCF8574。SCL和SDA各接一顆4.7k上拉電阻到3.3V這是I2C標(biāo)準(zhǔn)接法不管芯片供電是3.3還是5V都要有上拉。PCF8574的供電接3.3V還是5V取決于后級(jí)負(fù)載的電平要求如果只控制LED和讀取按鍵3.3V完全夠用。A0/A1/A2三個(gè)腳決定從機(jī)地址接地時(shí)全部為0。PCF8574的7位地址是0100 000寫操作時(shí)最低位為0所以完整寫地址是0x40讀地址是0x41。很多人的代碼里寫X0x20那是7位地址左移一位后的寫法兩者等價(jià)但要注意驅(qū)動(dòng)庫到底用的是7位地址還是8位地址。STM32標(biāo)準(zhǔn)庫的I2C從機(jī)地址參數(shù)要去掉最低位所以填0x20有些封裝好的Arduino庫內(nèi)部會(huì)自動(dòng)左移填0x20它會(huì)再移一次結(jié)果就變成0x40了導(dǎo)致通信失敗。這一點(diǎn)是新手最容易迷糊的地方。地址配置示例A21、A10、A01時(shí)7位地址是0100 101即0x25讀寫地址分別是0x4A和0x4B。5.2 代碼實(shí)現(xiàn)先搞懂寄存器再寫讀寫函數(shù)PCF8574只有一個(gè)8位寄存器往里面寫0x00就是所有引腳拉低輸出低電平寫0xFF就是所有引腳釋放開漏輸出高外部上拉生效。讀它的時(shí)候引腳的當(dāng)前電平會(huì)以8位數(shù)據(jù)的形式返回。先看寫操作代碼我用的是STM32標(biāo)準(zhǔn)庫風(fēng)格的偽代碼方便各種主控的朋友理解核心邏輯// 向PCF8574寫數(shù)據(jù)控制8個(gè)IO輸出 void PCF8574_Write(uint8_t devAddr, uint8_t data) { I2C_Start(); I2C_SendByte(devAddr 1 | 0); // 7位地址左移一位最低位寫方向0 I2C_WaitAck(); I2C_SendByte(data); // 寫入8位IO狀態(tài) I2C_WaitAck(); I2C_Stop(); }讀操作需要注意一個(gè)細(xì)節(jié)讀數(shù)據(jù)之前必須先把寄存器寫成0xFF把所有引腳釋放成輸入狀態(tài)否則引腳如果之前被鎖存為低電平讀回來的永遠(yuǎn)是0。很多人在讀按鍵的時(shí)候卡住就是這個(gè)原因。// 從PCF8574讀數(shù)據(jù)讀取輸入引腳電平 uint8_t PCF8574_Read(uint8_t devAddr) { uint8_t data; PCF8574_Write(devAddr, 0xFF); // 關(guān)鍵先釋放引腳才能正確讀取外部電平 I2C_Start(); I2C_SendByte(devAddr 1 | 1); // 7位地址左移一位最低位寫方向1讀 I2C_WaitAck(); data I2C_ReadByte(); // 讀取8位IO狀態(tài) I2C_SendNack(); // 讀最后一字節(jié)回NACK I2C_Stop(); return data; }實(shí)際用的時(shí)候PCF8574的輸入輸出是準(zhǔn)雙向的寫0x00引腳拉低輸出寫0xFF引腳釋放變成輸入。如果想某個(gè)引腳既當(dāng)輸入又當(dāng)輸出只能靠程序頻繁切換這是開漏結(jié)構(gòu)的局限設(shè)計(jì)時(shí)要想清楚哪些引腳固定輸入、哪些固定輸出。5.3 按鍵輸入的消抖與中斷替代方案PCF8574沒有中斷引腳按鍵檢測(cè)只能輪詢。實(shí)測(cè)中輪詢頻率設(shè)在10~20ms就夠過高浪費(fèi)CPU過低則按鍵手感遲鈍。按鍵消抖用軟件延時(shí)或定時(shí)器實(shí)現(xiàn)狀態(tài)機(jī)處理按下和釋放兩個(gè)沿。我在實(shí)際項(xiàng)目中的做法是用一個(gè)1ms的定時(shí)器每次進(jìn)入中斷掃描一次PCF8574把掃描結(jié)果存入全局變量主循環(huán)里做狀態(tài)機(jī)判斷。這樣子按鍵響應(yīng)時(shí)間1~5ms可調(diào)比較平滑。如果按鍵數(shù)量多且需要睡眠喚醒還是建議換到MCP23017或者AW9523靠外部INT引腳喚醒主控效率和功耗完全不是一個(gè)級(jí)別。6. AW9523進(jìn)階玩法一顆芯片解決LED燈效和按鍵輸入6.1 為什么我會(huì)在項(xiàng)目中轉(zhuǎn)投AW9523最開始用PCF8574做了一批樣機(jī)功能沒問題但客戶提了新需求按鍵要多幾個(gè)LED要做成呼吸效果。用PCF8574做呼吸燈只能在MCU里用PWM模擬8個(gè)LED就要8路PWMMCU的硬件定時(shí)器壓根不夠用。翻資料的時(shí)候看到AW9523發(fā)現(xiàn)它專門為這類場(chǎng)景設(shè)計(jì)內(nèi)部有LED驅(qū)動(dòng)模塊每個(gè)引腳都可以獨(dú)立配置PWM呼吸效果。從項(xiàng)目角度算了一筆賬PCF8574加8路PWM占用的MCU資源、代碼復(fù)雜度、調(diào)試時(shí)間比起AW9523多出來的兩塊多成本完全不劃算。這個(gè)案例也讓我認(rèn)識(shí)到選型不能只看單價(jià)要把整個(gè)BOM成本、開發(fā)工時(shí)、調(diào)試風(fēng)險(xiǎn)全都算進(jìn)去。6.2 AW9523關(guān)鍵寄存器速覽與配置流程AW9523的寄存器映射比PCF8574復(fù)雜但常用也就那么幾個(gè)。重點(diǎn)提兩個(gè)一個(gè)是0x00的GCRGlobal Control Registerbit0是SWRST軟件復(fù)位另一個(gè)是0x11到0x12的LED模式寄存器把對(duì)應(yīng)位置1后引腳進(jìn)入LED模式此時(shí)輸出由PWM寄存器控制。配置一個(gè)引腳為推挽輸出并做呼吸燈效果的流程如下// 1. 軟件復(fù)位 AW9523_Write(0x00, 0x01); // GCR寫0x01觸發(fā)軟復(fù)位 delay_ms(5); // 2. 配置引腳方向P0_0為輸出 AW9523_Write(0x02, 0xFE); // 方向寄存器1為輸入0為輸出 // 3. 使能P0_0的LED模式 AW9523_Write(0x11, 0x01); // LED模式寄存器bit0對(duì)應(yīng)P0_0 // 4. 設(shè)置呼吸頻率和占空比 AW9523_Write(0x20, 0x80); // 呼吸頻率控制 AW9523_Write(0x21, 0xFF); // 最大電流配置完以后引腳的呼吸效果由硬件自動(dòng)產(chǎn)生MCU只需要在需要改變亮度或頻率時(shí)才寫一次寄存器。我做項(xiàng)目時(shí)一共控制了12路呼吸燈MCU負(fù)載幾乎沒有增加。6.3 AW9523實(shí)際項(xiàng)目中的注意事項(xiàng)AW9523有幾個(gè)坑必須提醒。第一是默認(rèn)狀態(tài)不是推挽。芯片上電后是開漏模式直接驅(qū)動(dòng)LED會(huì)發(fā)現(xiàn)亮度不對(duì)勁或者干脆不亮一定要按上面的配置流程把LED模式打開。第二是中斷腳要加外部上拉。INT引腳是開漏輸出必須接上拉電阻到供電電壓否則電平不確定。我第一次畫板子就忽略了這一點(diǎn)中斷偶爾觸發(fā)偶爾不觸發(fā)排查了半天。第三是地址引腳不能懸空。AW9523有4個(gè)地址引腳數(shù)據(jù)手冊(cè)要求必須接高或接低懸空會(huì)導(dǎo)致地址不穩(wěn)。而PCF8574的地址引腳可以懸空默認(rèn)有內(nèi)部下拉習(xí)慣畫PCB的人容易想當(dāng)然。7. Linux和軟件I2C場(chǎng)景下的擴(kuò)展器調(diào)試技巧7.1 在Linux用戶態(tài)直接操作IO擴(kuò)展器不少嵌入式Linux項(xiàng)目也面臨GPIO不夠用的問題比如RK3229這種主控芯片原生的GPIO被系統(tǒng)占用了一堆想多控制幾個(gè)設(shè)備還得靠擴(kuò)展器。Linux內(nèi)核里已經(jīng)有PCF857x、MCP23017等驅(qū)動(dòng)設(shè)備樹配置好之后擴(kuò)展器引腳會(huì)直接映射成gpiochip應(yīng)用層用libgpiod操作即可。調(diào)試階段最實(shí)用的是i2c-tools工具包里的i2cdetect掃描總線上掛載的設(shè)備地址i2cdetect -y 1輸出如下說明0x20地址上有PCF85740 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --遇到掃描不到設(shè)備的情況優(yōu)先檢查上拉電阻是否焊接以及阻值大小SCL和SDA是否接反地址引腳配置是否和代碼一致目標(biāo)設(shè)備供電是否正常。7.2 軟件模擬I2C的時(shí)序要點(diǎn)很多低成本方案用GPIO模擬I2C尤其是BH1750這類對(duì)時(shí)序要求不高的傳感器配合軟件I2C跑得很順。但用軟件模擬I2C驅(qū)動(dòng)PCF8574這類擴(kuò)展器時(shí)時(shí)延參數(shù)特別關(guān)鍵。I2C協(xié)議中起始條件要求SCL高電平時(shí)SDA拉低然后SCL再拉低時(shí)鐘高電平的保持時(shí)間、數(shù)據(jù)建立時(shí)間都有最小要求。如果用GPIO模擬且不加延時(shí)時(shí)鐘頻率可能沖到1MHz以上部分?jǐn)U展器跟不上數(shù)據(jù)出錯(cuò)。實(shí)測(cè)下來軟件模擬I2C的GPIO翻轉(zhuǎn)之間建議加至少1us的延時(shí)總體時(shí)鐘頻率控制在200kHz以內(nèi)穩(wěn)定性和摸查成本都比較好。注意GPIO配置為開漏輸出模式并且在外部加上拉電阻不要用推挽模式去模擬I2C——否則多個(gè)設(shè)備掛同一總線時(shí)電平?jīng)_突會(huì)損壞端口。7.3 快速排查I2C總線被拉死怎么辦實(shí)際調(diào)試中最高頻的故障是總線被拉死現(xiàn)象是SDA或者SCL始終為低電平i2cdetect直接報(bào)總線錯(cuò)誤。原因通常是以下幾種某個(gè)從設(shè)備地址沖突同時(shí)響應(yīng)導(dǎo)致總線混亂設(shè)備供電異常從設(shè)備閂鎖進(jìn)入異常狀態(tài)把SDA拉低通信過程中主控復(fù)位I2C時(shí)序停在半截從設(shè)備在等待后續(xù)時(shí)鐘。解決辦法排優(yōu)先級(jí)來試先把所有從設(shè)備斷開只留擴(kuò)展器看總線是否恢復(fù)再檢查每個(gè)設(shè)備的上拉電阻確保所有上拉都接到電源最后如果主控支持時(shí)鐘恢復(fù)發(fā)9個(gè)SCL脈沖把所有從設(shè)備的狀態(tài)機(jī)復(fù)位。軟件上還有一個(gè)臨時(shí)辦法每包數(shù)據(jù)發(fā)送前先把SDA和SCL都設(shè)置為輸出高手動(dòng)產(chǎn)生幾個(gè)脈沖把從設(shè)備狀態(tài)機(jī)踢回IDLE狀態(tài)。這在Linux和裸機(jī)代碼里都適用。8. 選型決策樹與常見問題速查表8.1 按項(xiàng)目需求快速定位芯片我把這幾年總結(jié)的選型邏輯整理成一套決策判斷鏈拿去套用基本不會(huì)跑偏。先看功能需求需要輸出大于8路且同時(shí)有輸入需求選擇IO擴(kuò)展器。然后看是否有LED呼吸、PWM調(diào)光需求有則優(yōu)先AW9523省MCU資源。如果沒有特殊需求再看是否需要中斷喚醒需要?jiǎng)t選MCP23017或TCA9535不需要?jiǎng)tPCF8574夠用。最后看IO總數(shù)超過16個(gè)IO需求就評(píng)估多顆擴(kuò)展器方案或者換更大引腳的主控。因?yàn)樾酒旧韱蝺r(jià)差異不大MCP23017裸片價(jià)通常也就PCF8574的三四倍但開發(fā)工時(shí)、調(diào)試難度的差別遠(yuǎn)比芯片差價(jià)大。關(guān)鍵還是一句話優(yōu)先把方案做簡(jiǎn)單。8.2 問題排查速查表實(shí)際項(xiàng)目中踩過的坑整理成表格方便現(xiàn)場(chǎng)排查時(shí)對(duì)照故障現(xiàn)象可能原因排查思路與解決方案i2cdetect掃描不到設(shè)備上拉電阻沒焊接或阻值過大檢查SCL/SDA對(duì)電源的4.7k~10k電阻示波器看SDA/SCL波形地址對(duì)了但讀寫無響應(yīng)地址引腳接錯(cuò)或懸空用萬用表量A0/A1/A2的電平確保和軟件配置一致讀按鍵返回值恒為0讀之前沒寫0xFF釋放引腳在讀操作前先寫0xFF把手動(dòng)輸出配置排除掉數(shù)據(jù)偶爾錯(cuò)一兩個(gè)bit總線電容過大、上拉電阻太大換2.2k或1k上拉降低I2C速率到100kHz驗(yàn)證擴(kuò)展器引腳輸出高電平異常開漏結(jié)構(gòu)沒加上拉或上拉阻值大推挽輸出芯片檢查方向寄存器開漏芯片補(bǔ)外部上拉中斷不觸發(fā)中斷腳上拉缺失或中斷寄存器沒使能檢查INT引腳外部上拉逐個(gè)核對(duì)中斷使能寄存器睡眠功耗偏高上拉電阻太小導(dǎo)致靜態(tài)電流過大總線空閑時(shí)關(guān)閉I2C、引腳輸出高優(yōu)化整機(jī)功耗總線上多個(gè)設(shè)備互相干擾從機(jī)地址重疊列出總線地址分配表逐顆核對(duì)地址引腳組合8.3 關(guān)于電平匹配擴(kuò)展器供電3.3V時(shí)IO輸出高電平為3.3V。如果后級(jí)負(fù)載需要5V電平不能直接驅(qū)動(dòng)TCA9535這類芯片雖然供電電壓范圍寬但I(xiàn)O高電平不會(huì)超過供電電壓。做法是輸出控制的負(fù)載如果兼容3.3V邏輯就直接接不兼容就加三極管或MOS管做電平轉(zhuǎn)換。很多人在這里翻了車3.3V供電的PCF8574拉高LED是沒問題的LED壓降1.8V加上限流電阻3.3V減去后還有幾毫安的亮度但用同樣的接法驅(qū)動(dòng)5V繼電器就不行——繼電器線圈需要5V驅(qū)動(dòng)3.3V可能不夠??刂七@類負(fù)載建議改輸出開漏外部上拉到5V的方式或者直接換5V供電的擴(kuò)展器但要注意此時(shí)I2C總線上拉也要接到5V而主控是3.3V的話要把I2C做電平轉(zhuǎn)換。9. 從擴(kuò)展器到整個(gè)GPIO資源規(guī)劃的思路項(xiàng)目做多了以后我發(fā)現(xiàn)擴(kuò)展器只是手段真正的核心是資源規(guī)劃。畫原理圖之前先把整板所有需要控制的信號(hào)列個(gè)清單按性質(zhì)分類哪些是固定輸出LED、繼電器、使能腳哪些是固定輸入按鍵、撥碼開關(guān)、傳感器狀態(tài)哪些是雙向且需要頻繁切換數(shù)據(jù)/控制復(fù)用腳。分類之后先用主控的原生GPIO去匹配那些時(shí)序敏感的、需要中斷的、需要模擬特殊協(xié)議的信號(hào)把類型固定、數(shù)量大的用擴(kuò)展器解決這樣主控GPIO的壓力會(huì)小很多。再一個(gè)經(jīng)驗(yàn)是別把擴(kuò)展器放在I2C總線的末端如果總線上還有需要高速通信的傳感器擴(kuò)展器這種低速設(shè)備放在總線的中間或者靠近主控一端總線的電容分布會(huì)更均勻信號(hào)質(zhì)量更好。我以前在畫ESP32的開發(fā)板時(shí)就吃過虧把兩顆PCF8574掛在總線最遠(yuǎn)端總線上還有一個(gè)IMU結(jié)果IMU的400kHz數(shù)據(jù)偶爾被擴(kuò)展器拉歪后來把擴(kuò)展器移到總線上部問題消失。10. 一個(gè)實(shí)際案例ESP32上的I2C IO擴(kuò)展實(shí)戰(zhàn)記錄光說理論顯得虛分享一個(gè)最近給客戶做的實(shí)際項(xiàng)目??蛻粜枰鲆粔K控制板主控是ESP32IO要控制3路步進(jìn)電機(jī)驅(qū)動(dòng)器的方向/使能腳6個(gè)輸出、4路按鍵輸入、2路LED指示外加一個(gè)OLED顯示屏。原生GPIO只有十幾個(gè)上面需求一共占了12個(gè)還要留4個(gè)給下載和通訊徹底不夠。方案OLED走硬件I2C總線的0x3C地址擴(kuò)展器掛兩顆PCF8574第一顆地址0x20管按鍵和LED第二顆地址0x21管電機(jī)驅(qū)動(dòng)器控制腳。實(shí)際運(yùn)作中有一個(gè)細(xì)節(jié)值得分享電機(jī)驅(qū)動(dòng)器控制腳在系統(tǒng)初始化時(shí)必須拉到確定電平比如使能為低但PCF8574上電默認(rèn)全高所以電路上我把使能腳設(shè)計(jì)成低電平有效PCF8574默認(rèn)高電平正好讓電機(jī)驅(qū)動(dòng)器使能腳處于禁止?fàn)顟B(tài)避免了上電瞬間電機(jī)亂動(dòng)。這就是前面說的“利用上電默認(rèn)狀態(tài)做安全設(shè)計(jì)”選型時(shí)就要想清楚。ESP32這邊Arduino環(huán)境直接能用Adafruit的PCF8574庫初始化后就是一個(gè)digitalRead/digitalWrite的透明接口。實(shí)際測(cè)試延時(shí)大概在幾十微秒級(jí)別對(duì)低速控制完全夠用。如果要用ESP32的硬件I2C記得查一下自己的板子用的Wire.begin的引腳編號(hào)。有些老代碼里寫Wire.begin(4, 5)但新版Arduino-ESP32的引腳分配可能不是這個(gè)接錯(cuò)了總線直接掃不到設(shè)備。11. 最后再聊幾句體己話最開始做擴(kuò)展器選型時(shí)我也被五花八門的型號(hào)搞暈過后來定了一個(gè)原則選最成熟的不選最新的。PCF8574技術(shù)老、資料全、生態(tài)大什么問題都能搜到答案。AWS邏輯里那些新功能是加分項(xiàng)但加分項(xiàng)只有在基礎(chǔ)需求滿足之后才有意義。還有一點(diǎn)是調(diào)試順序。焊接完板子不要急著寫驅(qū)動(dòng)第零步永遠(yuǎn)是裸板量硬件通上電用萬用表量擴(kuò)展器VCC和GND確認(rèn)SCL/SDA的電壓都在高電平一般3.3V或5V然后示波器點(diǎn)一下擴(kuò)展器SCL引腳和主控發(fā)出數(shù)據(jù)時(shí)是否有波形。這一步?jīng)]問題了再跑軟件掃描。希望大家做完這個(gè)項(xiàng)目不只是拿到一塊能用的板子而是真正把I2C這套總線協(xié)議、擴(kuò)展器選型邏輯和調(diào)試方法沉淀下來。以后不管是I2C擴(kuò)展器還是別的I2C從設(shè)備只要總線通信有問題都能靠這套思路自己去定位而不至于到處搜帖子看代碼。12. 擴(kuò)展器常見參數(shù)對(duì)比表匯總把目前最常用的幾款I(lǐng)o擴(kuò)展器再匯總成一張表方便畫板前對(duì)照查閱。參數(shù)PCF8574MCP23017TCA9535AW9523I2C地址范圍0x20~0x270x20~0x270x20~0x270x40~0x4F16個(gè)組合輸出模式開漏推挽推挽推挽/開漏可選中斷引腳無2個(gè)2個(gè)1個(gè)輸入內(nèi)部上拉無有可配置無有可配置LED驅(qū)動(dòng)無需外接限流電阻無但灌電流能力強(qiáng)無有內(nèi)置PWM呼吸燈電壓范圍2.5V~5.5V1.8V~5.5V1.65V~5.5V1.8V~5V常用封裝SOIC-16/TSSOP-16SOIC-28/SSOP-28SOIC-16/TSSOP-16QFN-24選型時(shí)先把這張表存下來對(duì)照自己的需求圈定1~2款再去看完整的數(shù)據(jù)手冊(cè)。13. 關(guān)于驅(qū)動(dòng)庫與代碼移植的補(bǔ)充很多朋友會(huì)問要不要用現(xiàn)成的驅(qū)動(dòng)庫。我的建議如果是快速原型驗(yàn)證用現(xiàn)成的庫完全沒問題省時(shí)間如果是做量產(chǎn)產(chǎn)品驅(qū)動(dòng)代碼建議自己寫因?yàn)楝F(xiàn)有庫通常做了太多兼容判斷效率不高而且有些庫的接口和硬件平臺(tái)綁定移植到新主控反而處處受限。自己寫I2C擴(kuò)展器驅(qū)動(dòng)其實(shí)很薄很薄。以PCF8574為例核心就兩個(gè)函數(shù)寫一個(gè)字節(jié)、讀一個(gè)字節(jié)。底層I2C如果自己的工程里已經(jīng)有穩(wěn)定驅(qū)動(dòng)那擴(kuò)展器驅(qū)動(dòng)就是上面代碼里的幾行而已。與其花時(shí)間去理解一個(gè)幾百行的庫不如看手冊(cè)搞明白芯片內(nèi)部寄存器自己動(dòng)手寫20分鐘就搞定。另外提醒一下用HAL庫的朋友STM32CubeMX生成的I2C代碼默認(rèn)是輪詢模式配合擴(kuò)展器讀寫沒問題但禁止在中斷回調(diào)函數(shù)里直接調(diào)用HAL_I2C_Master_TransmitI2C通信時(shí)序會(huì)被中斷搶斷導(dǎo)致錯(cuò)誤。我自己遇到過幾次HAL庫標(biāo)志位卡死的情況換為定時(shí)器輪詢方式之后世界清凈了。寫到最后還是那句話工具是拿來用的不是拿來供的。I2C IO擴(kuò)展器很簡(jiǎn)單但用好的前提是對(duì)芯片特性、總線機(jī)制和你的應(yīng)用場(chǎng)景都心里有數(shù)。希望大家看完這篇文章能少踩幾個(gè)我當(dāng)年踩過的坑做板子順順利利。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文精品少妇天堂| 欧美欧美啪啪视频| 青娱乐国产剧情av一区| 99精品无码| 欧美91色| 黄色网址在线免费观看| 九九色热| 久久人爽| 亚洲天堂中文字| 厕所偷拍在线| 欧美色亚洲色| 丁香婷婷大香蕉| 加勒比综合九九99视频在线播放| 麻豆色99999| 亚洲天堂综合AV| 五月丁香六月婷| 91九九九馒头| 60秒免费小视频| 欧美视频一| av黄图片在线观看| 欧美色偷拍| 久久内射| 国产精品女同| 成人线上超碰| 国产夫妻一区二区| 啊啊啊啊嗯嗯在线久久久| 日本高清有码网址视频| 99这里都是精品| 影音先锋少妇| 人人妻天天做天天爽| 操逼无码操逼| 99999精品成人| 伊人网在线视频| 丰满人妻-区二区三区免费看 | 免费97视频| AV无码久久久精品| 91麻豆天美| 久热伊人| 欧美日韩另类激情图片| 探花一区二区三| 2017大香蕉国产精品久久| 两女互慰AV高潮喷水在线观看| 欧美亚洲丝袜美女电影| 午夜精品久久久99| 爱爱啊啊啊| 大香蕉久| 密臀视频一区二区三区| 亚洲第一精品在线视频| 午夜福利免费福利视频| 偷拍亚洲视频一区二区三区四区| 噜噜吧,噜噜色,噜噜| 国产99999久久精品| 高清国产无码av| 亚洲欧美国产日本一区二区三区| 五月天人妻综合| 超碰美女97| 中文AV制服乱伦| 91精品国产91熟女| 香蕉综合网| 91中出在线| www.色五月| 国产丝袜啪啪| 一区二区三区成人| 黄色AAAAA欧美| 色婷婷一区二区三区久久午夜成人不| 97国产精品国| 免费啪啪一级视频| 亚洲欧美综合| 极品色电影院| 日本精品第一视频在'| 欧美九九九九九| 天天操女人| 国产92麻豆天美精品色欲5| 少妇与黑人高潮在线| 欧美日本中字另类在线| 大象AV在线| 午夜后入| www.天天干| 成人小说视频在线精品欧美| 加勒比综合网| 另类视频在线| 欧美亚洲中文字幕| 丰满熟女一区二区三区在线播放| 屁股久久久久久久久| 大香蕉免费乱伦视频| 中文字幕日韩情色| 97这里都是精品| 日韩免费三级黄片电影| 香蕉国产精品麻豆亚洲欧美日韩 | 黄久久| 999精品女人| 99亚洲精品| 丰满岳乱妇一区二区三区| 熟女AV一区| 99热在线播放| 国产高清亚洲日韩一区| 久都青青视频| 亚洲无码国产精品久久| 91观看 国产白丝| 最新中文字幕av| 国产AV久久久蜜爱影集| 俄罗斯一区二区视频在线观看| 啊啊啊快操我视频| 91AV老熟女视频| 亚洲国产一区二区三区四区国产| 看免费的黄片| 综合另类| 搡老女人老91二区| 欧美色图自拍| 亚洲天天影视色综合| 香一区二区三区| 人妻激情偷乱视三区频一区二区| 一级性爱网| 久操视频在线| 欧美熟女逼久久久久久| 高潮嗯啊性感美女久久久| 天天干天天爽| 欧美午夜精品久久久久久超碰| 国产又大又硬又长又粗| 围产精品一区二区三区视频播放| 无码人妻精品一区二区中文| 久久黄色性爱视频| 最新岛国大片| 精品丝袜无码一区二区三APP| 国产性爱欧美性爱在线| 极品AV网站在线观看| 亚洲一二三精品久久网| 二区熟妇韩日| 超碰97玖玖爱| 国产精品不卡一区二区三区| 中文字幕88av在线| 东京热大香焦| 欧美最大综合网| 日韩在线97| 人人做人人妻人人夜视频| 无码137片内射在线影院| 老熟女综合网 | 青青草国产亚洲精品久久 | 欧美国产伊人久久久久| 翔田千里Av在线| 亚洲视频精选| 国产农村妇女精品| 大香蕉一级黄色片久久| 欧美操人视频| 人人操我人人干| 天堂69亚洲精品中文字| 粉嫩粉嫩一区性色AV片| 手机在线视频国内精品| 91干熟女| 色五月综合| 91精品国产日韩欧美综合| 亚洲精品一区二区精华| 秋霞一集毛片观看| 天天激清| 中文字幕123| 无码操逼视频一下| 国产高清自拍| PMv在线观看| 神马麻豆福利院 | 欧美色涩| 亚洲二区精品在线观看| 蜜桃成人1区2区3区| 大香蕉 222| 天天综合网1| 丰满熟女人妻一区二区三五十一路| 中文字幕无码不卡啪啪| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 变态另类专区| 亚洲AV无码乱码在线观看性色| 欧美综合91| 黄色一级视| 色情婷婷| 青青草视频久久久久| 一牛一区二区三区久久| 日韩无码服务区| 国产精品久久久亚洲第一牛牛_在线观看| 2024人人操人人摸| 狠狠热这里都是精品| 日本丝袜美腿人妻九九| 五月天精品| 国产夫妻一区二区| 亚洲AV色图一区| 啊啊啊啊好爽好舒服一区二区易域| 秋霞色色影院| 天天操人人操狠狠插| www.男人天堂| 蜜臀AV成人精品蜜臀| 天美一二三在线观看Av| 婷婷AV一区二区三区| 欧美黑人猛交春色影视大全| 成人黄页| 肏逼视频日本| 四色永久成人网站| 人妻 欧美 中文| 99少妇内射| 内射小黄片| 国产亚洲日本精品在线| 精品国产一区二区三区久久久蜜臀| 男人的天堂久久狠| 嫩草美女久久| 992这里有精品| 亚洲 图片 欧美 色图| 人妻少妇久久| 久久久久久网址| 黄色性爱网网| 欧美亚洲日韩16色| 九九久精品| 99老司机精品视频在线观看| 啊啊啊啊啊在线观看网址 | 亚洲和欧美裸体美女双飞视频| 97在线观看免费| 成年人网站在线免费观看| 人、人、摸,人、人、草| 丰满精品人妻少妇久久字幕| 电家庭影院午夜69久久夜色精品国产69乱| 99久久久久久久久| 国产SV一线| 天天亚洲| 99视频精品| 蜜臀久久精品久久久久视频| 亚洲天堂另类| 女人双腿搬开让男人桶| A男人的天堂| 成·人免费午夜在线观看| 国产91会所女技师在线观看| 熟妇在线视频一区二区| 深夜激情 | 99热婷婷一区二区三| 91黑丝操| yazhouzaixian| 夜夜一区二区| 日本人妻伦在线中文字幕| 75大香蕉| 婷婷丁香五月激情啪啪| 中文字幕乱亚洲美女精品一区| 嫖老熟女A片一二三区| 久久久一区二区三区三州| 日本人妻A片成人免费看片| 国内毛片欧美香蕉精品| 丁香五月婷婷基地| 综合性视频99| 天美传媒精品久久视频| 日本啊啊啊啊啊视频| 国产无马在线| 96久久久精品| 亚州九九九精品视频| 亚洲污一污二| 亚洲自拍偷拍视频在线| 亚洲一区二区三区麻豆传媒| 成 人片 黄色大片| m欧洲一级午老| 久久久久久九九九九九| 污啪啪啪视频| 欧美第一页| 夜夜操夜夜爽夜夜高潮| 亚洲无码电影久久久| 在线性黄高清免费视频| 综合网少妇| 五月婷色| 久久久四区| 九九玖玖精品| 成人日韩3| 超碰 国产熟女精品一区| 黄色片大香蕉| 欧美色综合网| 男人的天堂亚洲| 国产美女91| 五月丁香久久| 中文字幕少妇色| 综合五月天| 亚洲综合影视| 亚洲97久久精品亚洲| 久久中出在线| 人干人人人操人人摸| 人妻天天爽夜夜爽精品2| 一区二区三区视频| 欧美白嫩女HD| 欧美亚洲自拍另类人妻| SS久久| 69视频入口| 国产激情综合五月久久| 94色色电影网| 香蕉一区二区三区在线视频| 国产精品永久免费10000| 男人的天堂日本东京热| 天天弄天天操| 午夜无遮挡男女啪啪视频| 天堂亚洲精品久久老牛| 台湾佬激情综合| 曰韩操B| 91麻豆天美国产欧美高潮| 无码不卡亚洲成?人片| 美女被啪到深处抽搐视频| 久久鲁夜| 亚洲欧洲av影音| 亚洲无码视频免费在线观看网址! J?P?NESEHD熟女熟妇伦 | 97干色| 欧美色一二三| 色五月婷婷网| 中文字幕一区二区在线日韩精品| 2017天天插| 熟妇人妻一区二区三在线| 五月天开心网| 久操网线| 五月丁香黄色网| 丰满熟妇大乳做爰| 日韩欧美水蜜桃人妻| www.色婷婷| 亚洲欧美高清无码| 啊啊啊啊好多水| A男人的天堂| 十八禁网站在线| 国产精品一区二区 尿失禁| 日韩欧美日韩| 91精品国产一区三一| 91欧美综合在线| 奸色色 男人天堂 天天射| 一区二区三区黄色片a| 精品免费囯产一区二区三区| 天天情欲宗合网| 台湾大香蕉99热| 国产激情久久久| 操婢日韩| 久久在线观看免费视频| 清纯唯美综合| 亚洲自拍小说| 91neishe| 色香色香欲天天天影视综合网| 成人性爱美曰韩| 亚洲国产一级黄色视频| 激情文学小说一区二区| 国产地址二三| 好好的日:com久久九九| 亚洲欧美九九| 青青草操逼逼视频| 午夜免费视频1000| 影音先锋国产精品| 久久精品国产亚洲AV片多多| 精品国产91av一区二区三区| 八戒无码国产午夜福利| 美女天天干| 四虎av在线| 激情四射婷婷六月天| 伦在线97| 人妻黑丝袜电影| 东北老女人的激情视频| 人人天天欧洲| 丝袜六区| 日韩精品三区四区| 美女黄页| 啊啊啊啊啊操我视频| 欧美久久九九| 精品久久視頻在线| 日韩熟妇二区| 后入 亚洲 美女 射| 99精品无码| 99自拍视频在线| 久久久国产成人一区二区三区在线| 超碰在线香蕉| 国产色精品午夜大片| 在线观看色视频| 激情五月综合开心五月| 欧美1区二区三区公司| 国产精品不卡一区二区三区av| 9色国产精品一区粉嫩| 亚州91| 日本操逼视频在线| 亚洲精品乱码线路中文字幕| 亚洲综合电影| 强奸乱伦AV一天堂网| 嫩草美女久久| 国产欧美一级在线观看| 日韩精品永久在线观看| 五月综合久久| 97超碰色屌| 99re95| 我中文字幕6区| 日本熟妇色熟妇在线视频播放| 亚洲码和欧洲精品激情系列| 嗯阿好爽好紧| 日韩欧美中文字| 超碰到97情色| 资源新线在线天堂| 国产美女销魂在线观看不卡| 欧美亚洲另类在线蜜桃| 日本福利二区视频| 欧美人妻精品| 亚洲人久久久网| 中国91AV| 精品久久无码午夜福利| 亚洲暴力强奸AV| 丁香婷婷九月| 精品视频97| 激情小说亚洲视频| 午夜美女福利视频| 中文字幕在线观看二区三区| 欧洲综合视频| 欧美第二页午夜| 东京热av影院| 内射小黄片| 日韩去日本高清在| 中文字幕91综合| 久久夜精品一区二区三区| 可乐操亚洲蜜911| 欧美传媒| 日本一区二区三区四区免费观看| 亚洲有码 欧美精品| 久久久久ab| 国产丁香精品露脸视频| 精品久久久久久无码| 欧美日韩日产免费网站看| 亚洲日韩精品在线播放| 97爱爱影院| 国产中文字幕在线| 中文字幕AV乱伦| 丁香五月性| 国产欧美一区二区| 色网亚洲人| 亚洲,日韩,欧美,成人播放 | 91干熟女| 九九九九九九九九九九精品视频| 亚洲综合色图欧美| AV不卡在线| 97干日韩| 久久成人东京热人妻| 国产亚洲深夜激情| 久操大香蕉手机视频在线看| 婷婷综合网| 欧美视频激情久久久久久| 久久99久久99精品天美传媒棢·纸:. | 91成人无码| 国产精品69人妻无码久久久| 午夜福利久久久噜久噜久久综合| 懂色Av一区二区三区| 人人干黄色| 亚洲国产欧美日韩人妻日中文| 色香综合天天影视综合 | 亚洲AV无码AV吞精久久久久| 真实高潮91| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 91亚州欧美| 偷拍盗拍亚洲色图图片| 亚洲成人美女无吗| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 日韩三级性| 级做a爱无码性色永久免费| 99热免费| 青青青青青手机视频| 精品日韩中文在线| 日本大香蕉| 激情黄色片在线观看| 天天干少妇| 亚洲成成熟女人综合一区二区| 黑人嘿嘿嘿超爽免费视频| 久草资源在线视频官方总站日韩丝袜美腿 | 免费观看日本操逼视频| 久久99热这里只频精品6学生| 久热网| 国产精品99久久久www| 土豪酒店各种姿势玩弄极品幼稚| 国产精品黄色三级av| 粉嫩AV一区夜夜嗨| 女同女同恋久久级三级| 亚洲免费精品一区| 国产精品一区二区亚洲人成毛片| 亚洲瓯美色图| 国产精品99精品视频网站| 亚洲国产一区二区三区在线| 九九免费影片| 午夜一区| 狠狠爱大香蕉| 亚洲熟妇乱女区二区三区| 欧美综合91| 丁香六月综合激情| 亚洲激情综合另类| 综合色久| 人妻第一页| 26uuu欧美| 天天综合官网| 东京成人一区| 欧美十八禁导航成人| 天天综合网~91综合网| 日本免费一级AAA大片器| 小骚逼被操的爽不爽| 美女一区二区国产精品| 亚洲综合伊人无码久久| 亚洲春色激情小说| 最近2018中文字幕在线高清第一页| 青久操| 日韩亚洲精品一区二区| 天堂综合| 人妻天堂综合网| 国产无马在线| 免费97视频| 久久久爆乳翘臀一线天伦理视频| 久96热在线观看视频| 欧洲亚洲人妻无码中字久久三区四区| 亚洲 日韩 丝袜 熟女 变态| 天天综合91入口| 久久色人体 | AV天天在线观看| 国产男女边吃边摸视频网站| 蜜臀久久99'精品久久久| 久热9| 午夜性刺激视频免费观看| 好好的日:com久久九九| 国产亚洲国产超碰| 色吧5亚洲| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 国产丝袜美女在线一区| 亚洲交换| 特级大荫道BBwBBwBBW| 51一区二区三区| 超碰九7免费| 日本三级小说中文字幕| 搡老熟女老女人老熟妇免费视频| 曰本特级特黄特色黄色A级网站高清在线免费看| 激情看片网站| 伊人专区一区二区三区| 91美女精品| 超碰激情808| 久久精品91| 在线观看黄色电话| 亚洲色图欧美一区二区不卡| 色偷偷人人玩人人舔人人操人人摸人人爽 | 无码137片内射在线影院| 中文久久一区| 99热这里只有精| 欧美福利视频啊啊啊啊| 欧美亚州色的图| 69av一区二区三区| 国产午夜福利合集| 欧美综合站| 丁香六月东京热| 欧美性性性| 亚洲系列欧美| 日本日日色视频| 五月丁香成人网| 91精品人| 久久99国产精品| 精人妻无码一区二区三区伊人直播| 99久久无色码| 日韩欧美女优电影| 久久 国产精品 一区| 看免费的黄片| 中文?日韩?免费?精品| 99日免费视频中文字幕| 丰满搜索结果 -第18页- 久久高清无码| 日韩在线观看中文字幕视频| 中文字幕日韩专区精品系列| 97亚洲精品| 婷婷激情五月| 亚洲天堂东京热| 日韩91网站| 十八禁电影伊人网| 都市激情人妻一区二区青青操视频| 日本在线视频导航| 国产成人欧美一区二区三区的国产| 欧美色图色综合| 欧美劲爆第一页| 深喉吞精| 一本色道熟妇| 97色欧洲| 亚洲性刺激| 91亚.色| 91色s| 内射黑丝袜| 97色碰| 免费黄色视频网址| 日本性爱少妇| 激情接吻视频久久久久久| 欧美不卡二区| 黄色小视频日本txt| 在线A日本| av网站在线观看了| 色狠狠 - 百度| 亚欧成人综合影院| 午夜福利精品| 无码在线亚洲| 天天精品| 五月婷婷色| 久久久草成人网站久久久草成人久久久草久久久 | 91人妻最真实刺激绿帽| 免费日韩黄片| 日本三级一区二区 在线| 女人被男人桶爽视频网站| 国产午夜在线观看视频| 秋霞久久亚洲精品成人| 成人网站 免费观看| 尤物黄色在线观看网站| 丁香六月激情| 亚洲另类小说卡通动漫| av网站免费看| 懂色中文一区二区三区 | 亚洲高清在线| 蜜乳AV网址| 996热| 中国黑人三级片网站上区| 国产无码精品成人| 国产在线观看91精品一区| 国产在线强奸视频| 国产伦乱91| 亚洲欧美精品一区天堂久久| 日韩精品免费高清视频在线| 亚一综合久久久久久久久久| 无码天堂| 亚洲精品乱码线路中文字幕| 把腿张开老子CAO烂你| 中文字幕123| 色色色99| 一本道综合色图| 920日本午夜免费| 99天天超碰| 超碰精品人妻狠狠干| 99re黄| 91视频综合网| 韩国一级AAA| 99久久99久久综合| 啊好爽受不了无码| 五月天亚洲网| 日韩啊V| 亚洲色 国产 欧美 日韩| 自拍鲍鱼一区在线高清观看免费| 国产高清1234区| 中文字幕人乱码中文字的预防方法 | 在线只有精品| 国产青视频| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 精品蜜乳AV免费观看| 操逼片国产| 欧洲色色| 欧美久久人妻少妇一区二区| 国产久久天堂资源| 欧美性生活免费网| 97最新在线播放视频| 久久这里精品国产99丫e6| 欧美亚洲综合999| 国产成人欧美精品在线| 亚洲性爱电影| 九九久久九九久久| 久久宗合亚洲| 欧美 精品国产制服第一页 | 成人欧美一区二区三区黑人一| 亚洲天堂情色| 加勒比伊人| 9999免费精彩视频| 欲射影视| 91综合色噜噜| 99久久婷婷| 加勒比伊人综合| 日韩国产精品人妻无码久久久| 欧美性爱三区二区| 99热自拍| 2020中文字幕在线| 色婷婷六月丁香七月婷婷| 乱伦av.com| 精品大久久| 久久精品国产亚洲AV无码电影| 偷拍 精品另类 凸凹了四区| 一区二区不卡免费| 久久天天艹| 亚洲成人美女无吗| 天天插夜夜爽| 青娱乐老司机视频| 玖玖97综合 | 国产精品久久久久久夜夜夜| 亚洲性高潮| 日韩激情啪啪| 国产第二页| 久久久蜜桃臀无码视频| 久热9| 青青操日韩| 亚洲国产成人7777| 黑丝91视频| 天天日夜干| 亚洲 日本 一 二 三| 亚洲熟久久| 日逼视频日本| com 首页 18岁 禁区 女优 免费 精选 同城 | 91l欧美在线| 无遮挡男女激烈动态图| 天天做天天爱天天高潮| 人人澡综合涩| 亚洲AV秘无码一区..| 91黑丝少妇| 91综合网| 亚洲城人男人的天堂| 亚洲天堂男人的天堂| 操操AV电影| 久热最新在线杭州| 91在线页| 26uuu最新| 熟妇亚洲一区二区三区| 欧美成熟性爱精品| 97久久精品亚洲中六字幕| 欧州一区二区三区四区| 91在线视频免费中出| 亚欧高清| 天堂在线一区二区| 久久国产热视频97电影| 五月天亚洲网| 亚洲高清无码免费观看视频| 2017天天操天天日| 人妻少妇一区二区| 国产免费内射视频| 日本天天吊| 欧美综合自拍| 精品97久久综合| 亚洲高清无码在线桃色| 国产精品第一页国产大屁股视频免费区i | 麻豆精品天美| 综合欧美激情网| 色97国产69香蕉| 色综合久| 超碰美国| 求求你操操我| 亚洲一区二区精品福利| 日韩内| 中文一区二区婷婷视频| 亚洲国产91精品一区二区久久| 无码操逼天堂| 99re在线观看| 伊人骚琪琪亚洲天堂网站| AV天天在线观看| 以及麻豆国产入口在线观看免费| 中出789在线视频| 久精品无码av一区二免费国产在线观看| 久久99久久99精品天美传媒棢·纸:. | 91狠狠色丁香婷婷综合久久精品| 亚州中文字幕超碰97| 美女尤物人人操| 色97国产69香蕉| 亚洲一本色道中文无码aV天美| 91黑丝操| 亚洲熟妇自偷自拍另欧美| 女欧美一区二三区| 狠操91,com| 啊啊啊啊一区| 亚洲天堂AV在线播放| 嗯嗯啊啊啊啊轻点视频| 小少妇| AAAAAAAAA黄片| 97碰碰色| 亚洲熟女乱色一区二区三区久久久 | 国产13区| 麻豆国产96在线| 26uuu最新| 影音资源男人日韩| 国产性感骚丝袜在线| 中文字幕狠狠玩| 男人女人18禁片免费看网站| 青青草AV色| 九九成人精品| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 国产亚洲欧洲在线观看| 久久露脸国产老熟女| www亚洲免费| 青草精品视频-日本久久久久网站| 97色涩| 超碰99在线| 乱伦av.com| 青草综合| 欧美高清16| 日本不卡免费二区| 青青欧洲黑| 久久的网站啊啊啊啊啊| 麻豆人妻精品一区二区| 黄色毛片A片| 国内毛片无遮挡国产| 囯产精品久久久久久久久久二区三区| 国产精品久久久午夜夜伦鲁鲁| 亚洲综合九| 欧美熟女激情| 大香蕉碰碰| 少妇高潮喷水无套久久久久久| 日韩av性爱在线播放| 97在线视频免费看| 欧美精品系列| 亚洲,欧美,综合网| 欧美aⅴ99久久黑人专区| 啊啊啊好湿久久| 天天狠| 婷婷色一区| 色优久久| 激情婷婷| 日韩人妻少妇 一区二区三区| 天天日天天干天天摸天天操| 热热色AV| 超碰97综合网| 国产精品69久久久久久久| 亚洲欧美国产va在线| 青青草在线视频欧美| 熟妇艹鸡八| 天天综合色电影| 亚洲中文字幕噜噜噜久久久| 蜜桃久久一区二区三区| 亚洲综合五月天| 激情五月综合| 懂色AV蜜臀无码精品APP| 成人 日本A片无码8888| 欧美高清无码免费视频高清版| 97日韩超碰超碰中文字幕| 人妻蜜桃臀| 1024精品在线| 久草成人| 99久久精品国产系列| 欧美精品三级黄片| 立川理惠被中出无码| TS人妖另类精品视频系列| 国产一级高清免费观看| 国产激情在线| 狼人狠干| 人人操人人爽人人操人人| 久久久久亚洲熟妇熟女| 国产隔壁老王影院在线| 天天草夜夜草高潮片| 美国人人操人人操| 韩国三级理论在线| 爱我干综合| 可以免费观看的av| 99精品在线播放| 中文AV制服乱伦| 十八禁黄色成人网站观看| 国产人妻精品久久久一区二区三区| 中文字幕在线播放2中文字幕在线观看2| 久久精品人体| 精彩国产视频播放1区2区| 天天干一区二区| 超碰精品| 国产日韩中文字幕欧美| 99re黄| 天天日天天干天天操| 日本成人免费一区二区三区| 91午夜无码| 人人操人人摸人| 98一区二区精品| 大香蕉99热| 夜夜做夜夜爽精品视频| 9久热这里只有精品| 一区二区中文| 四虎影视永久在线免费| 欧美精品日韩一区二区| 鲁鲁色综合网| 国产欧美后入| 久久久偷拍| 亚洲国产97| 97在线精品观看视频| 大香蕉九九| 99抽插| 91 亚欧| 国产白丝精品在线观看| 91在线视频观看国产| 在线观看亚洲成人精品| 日韩性爱视频免费在线| 欧美亚洲激情小说| 日韩av电影网站| 日韩大香蕉| 中日韩久久久| 人妻天堂综合网| 亚洲s在线观看| wuyechaopeng| 日韩日本欧美在线观看| 成人八戒网站| 91亚·色| 日本免费二区三区| 97超碰磁| 人妻少妇久久久| 久艹伊人精品综合在线| 97久操| 夜夜天天噜狠狠爱2021| 久草视频分类在线| 97亚洲资源| 欧美激情专区| 亚洲古典另类欧美在线| 中文字幕一区二区三区人妻少妇在线| 亚洲青色欧美| 日韩成年人性爱视频| 精品伊人久久久大香线蕉小说| 欧美日韩国产中文精品字幕自在自线,| 蜜桃狠狠色伊人亚洲综合| 国产 日韩,欧美 自拍| 人、人、摸,人、人、草| 国产精品午夜成人福利| 欲香欲色综合天天伊人| 极品欧美一区二区三区| 中文字幕,人妻,日韩| 丁香五月成人| 国产吹潮女在线观看| 久久免费99精品久久久久久| 98一区二区精品| 亚洲骚男同com| 久久丁香久草综合网| 五月天成人综合| 91色综合色| 欧美一区二区福利在线| 欧美 亚洲 制服 精品| 国产熟码AV| 无码高清国产AV| 欧美色图亚州激情| 亚洲有薄码区久久在线一区| 国产精品97超碰| 日韩 欧美 另类 人妻| 欧美色997| 久久AV无码AV| 天天日天天插| 色九九九综合| 熟妇人妻精品一区二区| 日韩欧美午夜视频在线| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 日韩性爱长视频免费| 久久这里是精品| 亚洲男人的天堂一区二区| 九九九热| www.99热| 97在线视频免费看| 狠狠色综合网| 国产91丝袜 在线播放| www.91逼逼.com| 国产免费久久精品99re韩国| 久久久一区二区三区三州| 亚洲第一页欧美| 亚洲婷婷综合网| 成人女人国产| 亚洲成人精品在线一区| 啊啊啊啊啊操我视频| 色综合一本| 中文字幕加勒比海高清无码免费视频 | 日韩综合无码一区久久92| 欧美1727免费观看视频| 男人的天堂va在线| 亚洲日本成人动漫| 九月伊人中文字幕| 丁香五月婷婷基地| 美女主播色欲91抠b在线播放| 日本伦乱九九九综合| 亚洲成人一二三区| 91成人18| 天天弄欧美| 日韩无码精品综合久久| 久久久久密臀视频| 干婷婷综合网| 亚洲天堂男| 91蜜臀在线久久久久| 呦呦影院| 天堂伊人久久| 成人精品一区二区91毛片不卡| 天天影视网综合少妇| www欧美91| www.狠狠干.coom | 另类图片五月天| 综合网亚洲| 日韩99神马视频片| 家庭乱伦性爱av| 国产AB视频| 91碰碰碰| 日本一级真人黄色性爱视频| 国产精品视频播放| 伊人久操| 97亚洲精品超碰| 日日黄色三级网站| 亚洲精品啪视频| 女优大全 - 91n| 九九热超碰97亚洲最新香蕉| 亚洲成人日韩小说| 青青五月天| 蜜臀精品1区2区| 色在线亚洲视频www| 欧美激情亚洲| 91美女在线精品视频| 国产精品毛片?v一区二区三区 | 国产精品久久久久久高清无码免费看| 大香蕉综合在线| 97色碰| 91精品人| 激情婷婷丁香| 九九人人操| 日韩成人高清一区二区| 熟女网站最新| 综合一区中亚洲国产成人综合精品| 欧美91变态| 黄色不卡视频| 九九综合久久| 岛国激情视频软件| 久久蜜桃一区二区| 97色色国产视频| 91久热| 欧美性爱第一页久久| 欧美体内射精| 久久久久久夜夜夜夜夜| 无套内射人妻在线播放| 热热色中文无码| 日韩少妇在线视频| 欧美 亚洲 综合 制服| 国产最新小视频在线播放下载 | 啊啊在线| 色偷偷色偷偷欧美日韩| 亚洲 欧美 手机在线观看| 婷婷涩嫩草鲁丝久久午夜精品| 亚洲综合夜色| 玖玖爱综合| 韩国黄色片精品久久久| 国产精品久久天天干| 噜噜噜久久亚洲精品色情| 午夜天堂精品久久久久91| 日本高清_区二区三区| 97干97色| 久久久久深夜无码| 色九九九综合| 婷婷五月天补不补| 另类小色呦| 亚洲有薄码区久久在线一区| 中文字幕88av在线| 日韩精品 资源| 多乙久久久久久| 天天日天天干天天色| 2017天天插| 96精品久久久| 99999这里都精品| 99re只有精品| 国产欧美伊人| 日本岛国黄色网址 | 伊人久久大香线蕉无码| 日本国产亚洲一区在线观看| 夜夜免费视频| 天天α片| 四虎AV无码| 色999五月色| 久久精品国产亚洲AV嘿嘿| 97色伦97色伦国产欧美| 思思热一热婷婷热一热| 色天天野狼综合社区| 超碰在线97国产| 久久亚洲天天做| 92福利社视频| 久久久久久国产精品| 亚洲自拍天堂| 中文字幕激情小说| 中出在线视频| 久久久久久久9最新免费视频观看| 91久久久视| 又大又白奶子| 日本操色导航| 97人人夜夜精品视频| 国产偷拍网站| 9久久久久| 久久伊人影院| 密臀在线一区尤物| 97chaopengongkai| 麻豆av一区二区| 亚洲另类色综合网站| 狠插 制服 自拍| 插老姨肥穴| 91色噜噜狠狠| 伊人影院中文字幕| 天天躁日日躁AAA片李宗瑞| 日韩av在线免费网站| 午夜影美女日鸡鸡天天视频国产| 久草免费福利在线播放| 亚洲色色探花| 女人被男人桶爽视频网站| 密乳无码| 玖玖爱免费观看视频| 亚洲一卡2卡3卡4卡乱码网站| 无码日韩人妻av一| 在免费jIzzjIzz在线视频| 久久久精品视频免费观看| 亚洲av无码成电影在线播放| 本道综合精品| 天天噜| 人妻性爱一区二区| 不卡av在线中文字幕| 国产97亚洲| 亚洲国产成人7777| 91午夜无码| 免费A V在线播放| 五月丁香成人网| 99无码| 欧美日韩人人精品| 天美传媒AV国产在线| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 按摩中文字幕| 久久夜夜夜夜| 夜夜免费视频| 99精品九九九九九九| 欧美黑人熟妇精品91| 亚洲欧美色图小说| 精品国产人成在线| 91日韩在线| 久久国产精品一级二级三级| 亚洲网自拍| 大色网久久| 91麻豆天美| 曰韩操B| 91久久久久久久| 亚州成人A√| 日韩不卡码| 在线二区不卡| 国产精品蜜臀久久久久无码AV| 丰满熟女一区二区三区在线播放| 日韩熟女乱伦中出| 亚洲激情AV| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 一区二区三区美女超清| 国产强上视频在线观看| 操久久久久久| 色狠狠色| 天天舔九色婷婷| 青青草乱入乱欲视频在线观看| 亚州精品人妻一二三区| 亚洲视频中文一区| 日韩不卡一二三四| 男人的天堂三级| 性综合网| 色成人Www精品永久观看| 色综合九九| 欧美日韩情色一区二区| 99re69| 欧美,日韩,中文,另类| 中文字幕三四五区| 中文字幕人成乱码熟女香港| 近亲乱伦一区二区| **一级毛片国产| 久无码| 91艹| 黄色大片视频在线免费看| 91强热人妻| 二对二中文字幕。| 国产97/欧美| se吧提供91精品国产91久久久久久| av一区二区三区 中文| 亚洲 欧美 另类 日韩 人妻一区| 黑人在线91| 亚洲成人无码影院| 国产精品制服丝袜中文字幕日韩一区二区三区| 欧洲亚洲人人爽爽视频| 成人精品无码| 国产 三级自拍| 91挑色欧美| 欲香欲色| 一区二区娱乐网站| 97色涩| 黄色大片视频在线免费看| 亚洲欧洲综合视频在线| 欧美日韩人妻婷婷一区| 亚洲不卡三级手机播放| 婷婷五月天社区| 99re综合伊人| 淫荡少妇免费| 午夜欧美J进J出白浆流出久久久| 日本一二区不卡| 亚洲欧美日韩综合在线尤物 | 日韩国产中文字幕| 成人热久久精品| av亚欧| 91色综| 操久久久久| 十八禁视频网站| 91色人| 亚洲成人福利电影免费|