99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

FPGA實(shí)現(xiàn)SPI通信:從時(shí)序細(xì)節(jié)到Verilog代碼實(shí)戰(zhàn)

FPGA實(shí)現(xiàn)SPI通信:從時(shí)序細(xì)節(jié)到Verilog代碼實(shí)戰(zhàn) SPI通信FPGA實(shí)現(xiàn)這個(gè)話題隔三差五就會(huì)在群里被提起來(lái)一次。見得最多的提問是我的SCLK已經(jīng)降到十幾兆了為什么從機(jī)還是收不到數(shù)據(jù)——其實(shí)很多人沒有意識(shí)到SCLK慢不等于時(shí)序?qū)?。FPGA上做SPI的真正難點(diǎn)不在速度而在你是否在正確的邊沿做了正確的事。SPI本身只有四根線SCLK、MOSI、MISO、CS_N全雙工主從結(jié)構(gòu)速度可以拉得很高。FPGA實(shí)現(xiàn)SPI和單片機(jī)不一樣單片機(jī)調(diào)用的SPI外設(shè)已經(jīng)把數(shù)據(jù)移位、邊沿采樣、片選時(shí)序全封裝好了你只需要配寄存器FPGA里一切都回到最底層你得自己盯著每一位數(shù)據(jù)什么時(shí)候放到總線上、什么時(shí)候從總線上取下來(lái)。換個(gè)角度說(shuō)你等于用硬件邏輯重新發(fā)明一個(gè)SPI外設(shè)。這篇文章把協(xié)議拆解、模塊設(shè)計(jì)、仿真聯(lián)調(diào)、Flash讀寫這一整條鏈路都講一遍。適合兩種人看剛學(xué)完Verilog不知道怎么寫第一個(gè)通信模塊的入門者以及已經(jīng)有模塊但總在某些莫名其妙的通信問題上卡殼的開發(fā)者??赐曛骃PI對(duì)你來(lái)說(shuō)就不再是一個(gè)會(huì)讀時(shí)序圖但寫不出代碼的東西了。1. SPI協(xié)議并沒有想象中簡(jiǎn)單四個(gè)信號(hào)背后的時(shí)序細(xì)節(jié)1.1 四個(gè)信號(hào)與主從關(guān)系SPI是典型的Master-Slave結(jié)構(gòu)主機(jī)負(fù)責(zé)產(chǎn)生SCLK和CS_N從機(jī)被動(dòng)響應(yīng)。四條信號(hào)各干各的SCLK串行時(shí)鐘由主機(jī)產(chǎn)生給從機(jī)提供采樣節(jié)奏。MOSIMaster Output Slave Input主機(jī)發(fā)數(shù)據(jù)從機(jī)收數(shù)據(jù)。MISOMaster Input Slave Output從機(jī)發(fā)數(shù)據(jù)主機(jī)收數(shù)據(jù)。CS_N片選低有效主機(jī)控制。CS_N拉低從機(jī)開始工作CS_N拉高從機(jī)進(jìn)入空閑狀態(tài)。這里有個(gè)新手容易忽略的點(diǎn)SPI是同時(shí)收發(fā)。MOSI和MISO在同一個(gè)SCLK周期里各自傳輸一位數(shù)據(jù)所以它天生是全雙工。后面做W25Q64這類SPI Flash讀寫時(shí)你想讀數(shù)據(jù)就必須繼續(xù)給SCLK哪怕主機(jī)沒有數(shù)據(jù)要發(fā)也要假裝發(fā)幾個(gè)空字節(jié)把時(shí)鐘頂出來(lái)。還有一個(gè)關(guān)鍵認(rèn)知SPI協(xié)議本身沒有定義應(yīng)答機(jī)制。主機(jī)發(fā)一個(gè)字節(jié)從機(jī)是否收到、是否正確協(xié)議層完全不知道。所以實(shí)際項(xiàng)目里要么依賴從機(jī)返回的數(shù)據(jù)做校驗(yàn)要么靠CRC、命令應(yīng)答這類應(yīng)用層機(jī)制來(lái)保證可靠性。這一點(diǎn)和I2C的ACK機(jī)制差別很大很多人從I2C轉(zhuǎn)過來(lái)會(huì)不適應(yīng)。1.2 四種工作模式與采樣邊沿SPI模式由CPOL時(shí)鐘極性和CPHA時(shí)鐘相位兩個(gè)參數(shù)決定CPOL決定SCLK空閑電平。CPOL0空閑低CPOL1空閑高。CPHA決定數(shù)據(jù)采樣相位。CPHA0在第一個(gè)時(shí)鐘沿采樣CPHA1在第二個(gè)時(shí)鐘沿采樣。組合起來(lái)就是四種模式模式CPOLCPHA主機(jī)輸出數(shù)據(jù)時(shí)機(jī)主機(jī)采樣數(shù)據(jù)時(shí)機(jī)Mode 000SCLK下降沿SCLK上升沿Mode 101SCLK上升沿SCLK下降沿Mode 210SCLK上升沿SCLK下降沿Mode 311SCLK下降沿SCLK上升沿判斷從機(jī)工作在哪個(gè)模式最好的辦法是打開數(shù)據(jù)手冊(cè)看時(shí)序圖而不是猜。時(shí)序圖上一般會(huì)畫出數(shù)據(jù)變化沿和采樣沿照著比對(duì)就行。比如W25Q64支持Mode 0和Mode 3大部分場(chǎng)景用Mode 0。OLED驅(qū)動(dòng)芯片SSD1306、SD卡、各種傳感器多數(shù)也是默認(rèn)Mode 0或Mode 3所以入門階段把Mode 0吃透已經(jīng)能覆蓋很多從機(jī)了。給新手一個(gè)建議如果從機(jī)手冊(cè)實(shí)在看不懂可以用邏輯分析儀抓主機(jī)一個(gè)已知從機(jī)的波形反推模式。我調(diào)過一塊音頻芯片手冊(cè)上寫的是Mode 0 compatible但用標(biāo)準(zhǔn)Mode 0怎么都讀不到正確寄存器最后抓波形發(fā)現(xiàn)它在SCLK上升沿更新數(shù)據(jù)主機(jī)應(yīng)該在下降沿采樣實(shí)際是Mode 1。所以手冊(cè)最大經(jīng)驗(yàn)次之波形最靠譜。1.3 FPGA實(shí)現(xiàn)SPI和單片機(jī)實(shí)現(xiàn)SPI的本質(zhì)區(qū)別單片機(jī)上的SPI外設(shè)是一個(gè)硬件模塊寄存器配好了硬件自動(dòng)完成移位、采樣的全部過程CPU只需要往數(shù)據(jù)寄存器寫值、讀值。FPGA上沒有這個(gè)現(xiàn)成的外設(shè)你需要用寄存器、狀態(tài)機(jī)、計(jì)數(shù)器和少量組合邏輯自己搭建一條數(shù)據(jù)通路。這里有一個(gè)本質(zhì)區(qū)別單片機(jī)的SPI時(shí)序由硬件固定可配置項(xiàng)也就模式、時(shí)鐘分頻、位序這幾個(gè)FPGA的SPI時(shí)序完全由你的代碼決定你可以隨時(shí)插入等待周期、自定義CS建立時(shí)間、甚至讓同一個(gè)模塊支持多種模式。靈活性高但代價(jià)是每一個(gè)時(shí)序細(xì)節(jié)都要自己負(fù)責(zé)。另一個(gè)區(qū)別是并行性。FPGA里你可以放下多個(gè)SPI控制器實(shí)例同時(shí)驅(qū)動(dòng)不同的從機(jī)互不干擾。單片機(jī)上很多SPI外設(shè)只有一個(gè)或兩個(gè)總線多了就得靠軟件分時(shí)復(fù)用。這也是很多項(xiàng)目選FPGA做傳感器采集板的原因——SPI設(shè)備多、數(shù)據(jù)量大軟件分時(shí)處理容易來(lái)不及。2. 系統(tǒng)架構(gòu)劃分與狀態(tài)機(jī)設(shè)計(jì)SPI Master的核心決策2.1 從頂?shù)降椎哪K劃分寫SPI設(shè)計(jì)前先想清楚系統(tǒng)里有哪些模塊別一上來(lái)就寫時(shí)序邏輯。一個(gè)典型的FPGA SPI系統(tǒng)從上往下大致是層級(jí)模塊職責(zé)應(yīng)用層用戶邏輯產(chǎn)生要發(fā)送的數(shù)據(jù)消費(fèi)接收的數(shù)據(jù)接口層FIFO/寄存器組緩沖數(shù)據(jù)提供握手信號(hào)協(xié)議層SPI Master控制器完成字節(jié)級(jí)時(shí)序產(chǎn)生SCLK/MOSI/CS_N物理層IO約束/電平轉(zhuǎn)換管腳分配電平匹配很多初學(xué)者直接拿一個(gè)always塊邊發(fā)邊收看起來(lái)代碼量小但后續(xù)要加FIFO、要支持多從機(jī)、要切換模式全部堆在一起根本改不動(dòng)。我建議至少拆成兩個(gè)模塊一個(gè)純粹的SPI字節(jié)控制器負(fù)責(zé)把一字節(jié)數(shù)據(jù)按SPI時(shí)序送出去并讀回一字節(jié)另一個(gè)業(yè)務(wù)狀態(tài)機(jī)負(fù)責(zé)按業(yè)務(wù)需求組合多個(gè)字節(jié)的傳輸。SPI控制器對(duì)外接口可以這樣設(shè)計(jì)clk系統(tǒng)時(shí)鐘。rst_n異步復(fù)位低有效。start啟動(dòng)信號(hào)單周期脈沖。tx_data待發(fā)送數(shù)據(jù)。rx_data接收數(shù)據(jù)。done傳輸完成單周期脈沖。busy模塊忙標(biāo)志busy1時(shí)不能再啟動(dòng)新傳輸。這種接口的好處是通用后面不管接Flash、接ADC、接OLED只需要換業(yè)務(wù)狀態(tài)機(jī)SPI控制器可以原樣復(fù)用。2.2 為什么狀態(tài)機(jī)比直接計(jì)數(shù)更適合SPI時(shí)序SPI的每一比特都要經(jīng)歷數(shù)據(jù)建立-采樣-數(shù)據(jù)變化幾個(gè)階段如果只用計(jì)數(shù)器翻轉(zhuǎn)SCLK代碼寫起來(lái)確實(shí)簡(jiǎn)單但遇到下面的場(chǎng)景就會(huì)很難受某些從機(jī)要求CS_N拉低后至少等幾個(gè)時(shí)鐘周期再給SCLK某些從機(jī)要求兩個(gè)字節(jié)之間插入延時(shí)某些從機(jī)要求主機(jī)在采樣前留出額外等待時(shí)間。這些插入等待的需求用純計(jì)數(shù)器也能做但狀態(tài)一多代碼就變成一團(tuán)亂麻。狀態(tài)機(jī)的優(yōu)勢(shì)就在于顯式表達(dá)時(shí)序階段每個(gè)狀態(tài)代表SCLK的一個(gè)半周期或一個(gè)空閑階段狀態(tài)跳轉(zhuǎn)條件就是計(jì)數(shù)到某個(gè)值??创a的人一眼就能知道當(dāng)前處于什么階段后續(xù)加時(shí)序約束也只需要在狀態(tài)機(jī)里加狀態(tài)。而且狀態(tài)機(jī)的輸出邏輯非常自然。比如Mode 0下SCLK空閑為低進(jìn)入第一個(gè)狀態(tài)后保持SCLK為低計(jì)滿半周期后跳到高電平狀態(tài)高電平狀態(tài)再計(jì)滿半周期才采樣。這樣SCLK不是一個(gè)獨(dú)立的自由運(yùn)行時(shí)鐘而是受狀態(tài)機(jī)控制的受控時(shí)鐘CS_N、MOSI的變化時(shí)機(jī)都能和SCLK精確對(duì)齊不會(huì)再出現(xiàn)那種波形看起來(lái)對(duì)實(shí)際上沿的位置差了一拍的問題。2.3 波特率和分頻系數(shù)的取舍SCLK的最高頻率由兩個(gè)東西決定從機(jī)支持的最大SCLK頻率以及FPGA到從機(jī)之間的物理鏈路質(zhì)量。不要一上來(lái)就拉滿工程上合理的選擇是先定一個(gè)穩(wěn)妥的基準(zhǔn)頻率跑通后再慢慢提頻。分頻系數(shù)的計(jì)算很簡(jiǎn)單SCLK頻率等于系統(tǒng)時(shí)鐘頻率除以分頻比。以100MHz系統(tǒng)時(shí)鐘為例想要10MHz的SCLK分頻比就是10半周期就是5個(gè)系統(tǒng)時(shí)鐘周期。如果從機(jī)最高SCLK是40MHz我通常不會(huì)直接用40MHz而是先跑到10MHz把協(xié)議調(diào)通再逐步提到25MHz、30MHz。原因很簡(jiǎn)單高頻下信號(hào)完整性問題、采樣沿余量問題全都會(huì)冒出來(lái)到時(shí)候你分不清是協(xié)議代碼的問題還是硬件鏈路的問題。另外注意一點(diǎn)SCLK低電平時(shí)間和高電平時(shí)間最好對(duì)稱。分頻系數(shù)是偶數(shù)時(shí)天然對(duì)稱奇數(shù)時(shí)會(huì)有高低電平不均的問題。所以參數(shù)化設(shè)計(jì)里HALF_CLK這個(gè)值盡量用偶數(shù)分頻折算哪怕SCLK頻率不是整數(shù)也問題不大通信時(shí)序最重要的是采樣點(diǎn)位置穩(wěn)定而不是頻率剛好卡在整數(shù)兆赫茲。3. 可復(fù)用的Verilog實(shí)現(xiàn)從零手寫一個(gè)Mode 0的SPI Master3.1 核心代碼框架下面是一個(gè)參數(shù)化的SPI Master適用于Mode 0CPOL0CPHA0支持任意字節(jié)寬度時(shí)鐘分頻可配。代碼量不大但把SPI時(shí)序的核心流程完整覆蓋了。module spi_master #( parameter DATA_WIDTH 8, parameter HALF_CLK 5 // 系統(tǒng)時(shí)鐘 / (SCLK * 2) )( input wire clk, input wire rst_n, input wire start, input wire [DATA_WIDTH-1:0] tx_data, output reg [DATA_WIDTH-1:0] rx_data, output reg done, output reg sclk, output reg cs_n, output reg mosi, input wire miso ); localparam IDLE 3d0; localparam CLK_LO 3d1; localparam CLK_HI 3d2; localparam STOP 3d3; reg [2:0] state; reg [DATA_WIDTH-1:0] shift_reg; reg [$clog2(DATA_WIDTH)-1:0] bit_cnt; reg [15:0] hal_cnt; always (posedge clk or negedge rst_n) begin if (!rst_n) begin state IDLE; sclk 1b0; cs_n 1b1; mosi 1b0; done 1b0; rx_data {DATA_WIDTH{1b0}}; end else begin case (state) IDLE: begin done 1b0; cs_n 1b1; sclk 1b0; if (start) begin cs_n 1b0; shift_reg tx_data; mosi tx_data[DATA_WIDTH-1]; bit_cnt 0; hal_cnt 0; state CLK_LO; end end CLK_LO: begin if (hal_cnt HALF_CLK - 1) begin hal_cnt 0; sclk 1b1; state CLK_HI; end else begin hal_cnt hal_cnt 1b1; end end CLK_HI: begin if (hal_cnt HALF_CLK - 1) begin hal_cnt 0; sclk 1b0; rx_data {rx_data[DATA_WIDTH-2:0], miso}; if (bit_cnt DATA_WIDTH - 1) begin state STOP; end else begin bit_cnt bit_cnt 1b1; shift_reg {shift_reg[DATA_WIDTH-2:0], 1b0}; mosi shift_reg[DATA_WIDTH-2]; state CLK_LO; end end else begin hal_cnt hal_cnt 1b1; end end STOP: begin cs_n 1b1; done 1b1; state IDLE; end endcase end end endmodule這段代碼的主體思路是IDLE狀態(tài)等待startCS_N拉低的同時(shí)把待發(fā)送數(shù)據(jù)的最高位放到MOSI上然后進(jìn)入CLK_LO狀態(tài)。CLK_LO保持SCLK低電平半周期結(jié)束后拉高SCLK進(jìn)入CLK_HI。CLK_HI保持SCLK高電平半周期結(jié)束時(shí)采樣MISO、拉低SCLK同時(shí)把下一位數(shù)據(jù)移到MOSI上。循環(huán)8次后進(jìn)入STOP狀態(tài)釋放CS_N并拉高done。3.2 發(fā)送與接收并行處理的關(guān)鍵點(diǎn)很多人第一次寫SPI時(shí)會(huì)問一個(gè)問題發(fā)送和接收是不是要分別寫兩個(gè)計(jì)數(shù)器不需要。SPI是同時(shí)移位的發(fā)送一個(gè)bit的同時(shí)必然接收一個(gè)bit靠同一個(gè)bit_cnt控制就行。注意代碼里發(fā)送和接收的移位方向發(fā)送時(shí)每過一個(gè)周期把shift_reg左移一位新的最高位變成原次高位送出的順序是MSB first接收時(shí)用rx_data {rx_data[DATA_WIDTH-2:0], miso}把采到的bit放到最低位同時(shí)整個(gè)寄存器左移。這樣第一個(gè)采到的bit會(huì)慢慢移動(dòng)到最高位最終rx_data就是標(biāo)準(zhǔn)的MSB first數(shù)據(jù)。這段代碼里采樣點(diǎn)放在CLK_HI結(jié)束前的半周期位置也就是SCLK高電平的末尾。Mode 0下從機(jī)通常是在SCLK下降沿更新MISO所以SCLK高電平期間MISO已經(jīng)穩(wěn)定。在末尾采樣相當(dāng)于給從機(jī)輸出留出了接近一個(gè)半周期的建立時(shí)間比在上升沿瞬間采樣更穩(wěn)。有的FPGA工程師習(xí)慣在上升沿打一拍采樣也能工作但如果從機(jī)輸出延遲較大偶發(fā)MISO采樣錯(cuò)誤就很頭疼。我的做法是優(yōu)先保證建立時(shí)間余量采樣點(diǎn)稍微往后挪一點(diǎn)代價(jià)是SCLK前沿到采樣點(diǎn)之間有一個(gè)半周期的延遲這完全不影響協(xié)議正確性。3.3 從Mode 0擴(kuò)展到Mode 1/2/3的思路上面的代碼默認(rèn)CPOL0、CPHA0想支持其他模式核心就兩個(gè)改動(dòng)SCLK空閑電平以及移位和采樣分別發(fā)生在哪個(gè)沿。CPOL決定空閑電平。Mode 2和Mode 3下IDLE狀態(tài)里SCLK應(yīng)該是高電平STOP之后也要回到高電平。CPHA決定采樣沿。Mode 1里主機(jī)在SCLK上升沿移位、下降沿采樣正好和Mode 0相反。改成參數(shù)化設(shè)計(jì)時(shí)可以加兩個(gè)parameterCPOL和CPHA然后在狀態(tài)機(jī)里根據(jù)參數(shù)決定CLK_LO和CLK_HI時(shí)SCLK的電平以及采樣和移位動(dòng)作放在哪個(gè)狀態(tài)里。不過說(shuō)實(shí)話工程中我更推薦用Vivado或Quartus自帶的SPI IP或者針對(duì)某種模式單獨(dú)寫一個(gè)專用模塊。一個(gè)模塊支持全部四模式代碼可讀性和時(shí)序余量都會(huì)受影響除非項(xiàng)目需求明確否則沒必要把參數(shù)化做得太復(fù)雜。4. 從仿真到上板實(shí)測(cè)過程中才暴露的幾個(gè)坑4.1 Testbench搭建時(shí)一定要模擬真實(shí)從機(jī)行為仿真最大的價(jià)值不是看波形多漂亮而是在上板之前驗(yàn)證協(xié)議的正確性。很多人的Testbench只給SPI Master灌數(shù)據(jù)然后把MISO拉高或拉低這其實(shí)測(cè)不到時(shí)序問題。建議寫一個(gè)簡(jiǎn)單的SPI從機(jī)模型邏輯就是檢測(cè)到CS_N拉低后在每個(gè)SCLK的有效邊沿采樣MOSI存到寄存器并在下一個(gè)邊沿把預(yù)設(shè)數(shù)據(jù)放到MISO上。代碼如下module spi_slave_model #( parameter DATA_WIDTH 8 )( input wire sclk, input wire cs_n, input wire mosi, output reg miso, input wire [DATA_WIDTH-1:0] response ); reg [DATA_WIDTH-1:0] shift; always (posedge sclk or negedge cs_n) begin if (!cs_n) begin miso response[DATA_WIDTH-1]; end else begin miso response[DATA_WIDTH-2:0]; // 這里只是為了仿真不追求完全精確的從機(jī)行為 end end endmoduleTestbench里用always #5 clk ~clk;產(chǎn)生100MHz系統(tǒng)時(shí)鐘start信號(hào)拉高一個(gè)周期然后等待done再比較rx_data和response是否一致。跑通之后再用$display打印每一次收發(fā)的結(jié)果比肉眼看波形高效得多。4.2 仿真沒問題、上板就出錯(cuò)的三個(gè)高頻問題第一個(gè)是start信號(hào)毛刺。如果start來(lái)自按鍵或者跨時(shí)鐘域信號(hào)直接進(jìn)狀態(tài)機(jī)有可能觸發(fā)半路復(fù)位或者狀態(tài)跳飛。解決方法是加兩級(jí)同步器或者做邊沿檢測(cè)確保狀態(tài)機(jī)只在信號(hào)的穩(wěn)定沿觸發(fā)。第二個(gè)是CS_N和SCLK的相位關(guān)系。很多從機(jī)要求CS_N拉低后至少幾微秒才能給SCLK或者CS_N釋放后要等一段才能進(jìn)行下一次傳輸。我的控制器里沒有在IDLE到CLK_LO之間做CSN建立時(shí)間的等待所以如果從機(jī)手冊(cè)里有tCSSN這類參數(shù)你需要在外層狀態(tài)機(jī)里自行控制間隔。最簡(jiǎn)單的方式是在每個(gè)字節(jié)傳輸完成后強(qiáng)制等待幾個(gè)時(shí)鐘周期再發(fā)下一個(gè)字節(jié)。第三個(gè)是MISO沒有做同步處理。雖然SPI時(shí)鐘是FPGA自己產(chǎn)生的但MISO信號(hào)從引腳進(jìn)來(lái)之后相對(duì)系統(tǒng)時(shí)鐘仍然是異步輸入。如果不做任何處理直接采樣極端情況下會(huì)出現(xiàn)亞穩(wěn)態(tài)導(dǎo)致偶發(fā)的一個(gè)bit錯(cuò)誤。穩(wěn)妥的做法是在控制器入口打兩拍同步或者至少在采樣路徑上加一級(jí)寄存器。這個(gè)在上板信號(hào)質(zhì)量差的時(shí)候尤其重要。4.3 用邏輯分析儀看波形時(shí)的一些建議上板調(diào)試時(shí)ILAIntegrated Logic Analyzer是你的眼睛。但很多新手用ILA看SPI抓不到有效數(shù)據(jù)原因往往是觸發(fā)條件沒設(shè)好。建議把采樣時(shí)鐘設(shè)為系統(tǒng)時(shí)鐘不要用SCLK。觸發(fā)條件設(shè)為cs_n 0的下降沿采樣窗口稍微設(shè)大一點(diǎn)保證能抓到CS_N拉低期間的全部SCLK周期。觀察時(shí)重點(diǎn)看四個(gè)要素CS_N拉低后MOSI的第一個(gè)bit是否已經(jīng)穩(wěn)定SCLK上升沿時(shí)MOSI是否處于數(shù)據(jù)窗口內(nèi)SCLK下降沿時(shí)MISO的變化點(diǎn)每個(gè)字節(jié)結(jié)束后CS_N是否及時(shí)拉高。如果發(fā)現(xiàn)MOSI在SCLK有效沿附近變化說(shuō)明移位時(shí)機(jī)太晚了要把移位動(dòng)作往前挪。如果MISO采樣結(jié)果全為1說(shuō)明沒有正確驅(qū)動(dòng)MISO先檢查從機(jī)供電和片選。ILA看到的問題絕大多數(shù)都是時(shí)序相位問題不是頻率問題。5. 多從機(jī)擴(kuò)展和SPI Flash讀寫實(shí)戰(zhàn)5.1 硬件片選與軟件片選怎么選多從機(jī)系統(tǒng)首先要解決片選問題。硬件片選就是每個(gè)從機(jī)單獨(dú)接一根CS_N主機(jī)有多少個(gè)GPIO就能接多少個(gè)從機(jī)簡(jiǎn)單粗暴互不影響。軟件片選則是通過譯碼器或IO擴(kuò)展器用少量GPIO擴(kuò)展出多路片選適合從機(jī)數(shù)量多但GPIO緊張的場(chǎng)景。實(shí)際工程里我強(qiáng)烈建議用硬件片選尤其是從機(jī)MISO不是三態(tài)輸出的情況。SPI總線共享時(shí)如果兩個(gè)從機(jī)的MISO同時(shí)驅(qū)低電平總線就沖突了。硬件片選至少保證同一時(shí)刻只有一個(gè)從機(jī)被激活。還要注意片選的編碼方式。如果設(shè)計(jì)成00選從機(jī)1、01選從機(jī)2、10選從機(jī)3、11選從機(jī)4這種二進(jìn)制的寫法狀態(tài)跳變時(shí)有中間毛刺風(fēng)險(xiǎn)兩個(gè)CS可能瞬間同時(shí)有效。FPGA里最穩(wěn)的寫法是獨(dú)熱碼4b0001選從機(jī)14b0010選從機(jī)2這樣任意時(shí)刻最多只有一個(gè)位為1杜絕競(jìng)爭(zhēng)風(fēng)險(xiǎn)。共享總線的場(chǎng)景比如ESP32用一根SPI同時(shí)接屏幕和SD卡核心也是片選切換。屏幕和SD卡分時(shí)工作同一時(shí)刻只選通一個(gè)。這里真正要注意的是模式兼容性如果屏幕工作在Mode 0而SD卡要求Mode 3那么每次切換設(shè)備都要重新配置SPI模式在FPGA里這就意味著每個(gè)從機(jī)要有獨(dú)立的模式配置寄存器。5.2 用SPI Master讀寫W25Q64的關(guān)鍵流程W25Q64是SPI NOR Flash非常適合用來(lái)驗(yàn)證自研SPI模塊。它支持Mode 0和Mode 3最高SCLK能達(dá)到幾十兆甚至更高。上手第一步不是寫Flash而是讀JEDEC ID確認(rèn)通信鏈路基本正常。讀ID的命令是0x9F。操作流程是CS_N拉低發(fā)送0x9F然后連續(xù)接收3個(gè)字節(jié)接收過程中主機(jī)要給SCLK所以主機(jī)側(cè)要連續(xù)發(fā)起3次空寫。這里暴露了我前面那個(gè)單字節(jié)控制器的一個(gè)問題讀ID要求CS_N在整個(gè)過程中保持低電平不能每個(gè)字節(jié)都拉高。而我的spi_master在每次字節(jié)傳輸結(jié)束后都會(huì)拉高CS_N如果直接用它讀W25Q64一字節(jié)后Flash就認(rèn)為命令結(jié)束了后面根本讀不到ID。解決辦法是給控制器增加一個(gè)last信號(hào)或者在外層用一個(gè)burst狀態(tài)機(jī)把整個(gè)讀ID過程包起來(lái)。更簡(jiǎn)單的做法是寫一個(gè)專門控制W25Q64的頂層狀態(tài)機(jī)里面復(fù)用SPI發(fā)送和接收的移位邏輯// 偽代碼 CS_N 0; send_byte(8h9F); // 發(fā)送命令 dummy send_byte(8h00); // 讀第1字節(jié) mid send_byte(8h00); // 讀第2字節(jié) did send_byte(8h00); // 讀第3字節(jié) CS_N 1;W25Q64的廠商ID是0xEF內(nèi)存類型是0x40容量是0x17。如果讀出這三個(gè)字節(jié)和手冊(cè)一致說(shuō)明你的SPI Master時(shí)序完全正確可以繼續(xù)做頁(yè)編程和讀數(shù)據(jù)。頁(yè)編程一次最多256字節(jié)超過256字節(jié)必須拆成多頁(yè)操作而且每頁(yè)編程前要發(fā)0x06寫使能命令。這些細(xì)節(jié)在Flash手冊(cè)里寫著但真正上手以后你會(huì)發(fā)現(xiàn)FPGA側(cè)最容易出問題的還是CS_N的控制而不是SCLK頻率。5.3 常見故障排查思路調(diào)SPI出問題時(shí)有一個(gè)排查順序可以救命先看CS_N再看SCLK再看模式最后看數(shù)據(jù)?,F(xiàn)象可能原因優(yōu)先排查方向讀回全為0xFFFlash未響應(yīng)或總線浮空CS_N是否正常拉低SPI模式是否匹配讀回?cái)?shù)據(jù)固定錯(cuò)一位采樣沿與從機(jī)輸出沿沖突調(diào)整采樣沿檢查是Mode 0還是Mode 1偶發(fā)錯(cuò)位時(shí)好時(shí)壞MISO未同步或信號(hào)鏈路太長(zhǎng)加同步寄存器降低SCLK頻率多從機(jī)總線數(shù)據(jù)混亂多個(gè)從機(jī)MISO同時(shí)驅(qū)動(dòng)檢查片選是否為獨(dú)熱碼MISO是否三態(tài)命令發(fā)出去沒反應(yīng)CS_N在每個(gè)字節(jié)之間拉高使用burst模式保證CS_N全程低有效這里再?gòu)?qiáng)調(diào)一次很多人遇到通信不穩(wěn)定第一反應(yīng)是把SCLK調(diào)低這只能掩蓋問題不能解決根因。正確做法是用ILA把波形抓出來(lái)對(duì)照從機(jī)手冊(cè)的時(shí)序圖逐項(xiàng)檢查找到真正的相位錯(cuò)誤。調(diào)SPI最有成就感的一刻就是看到ILA里的MISO數(shù)據(jù)和預(yù)期完全一致那一刻你會(huì)發(fā)現(xiàn)自己真正理解了什么叫時(shí)序。這篇文章寫到這里我不打算做什么高屋建瓴的總結(jié)。最后分享一個(gè)我自己的習(xí)慣SPI模塊不要一開始就追求多功能先用Mode 0和最基礎(chǔ)的從機(jī)把鏈路打通再加參數(shù)、加FIFO、加多從機(jī)支持。調(diào)不通的時(shí)候先用低速加長(zhǎng)半周期排除協(xié)議問題再用ILA抓波形確認(rèn)相位。SPI作為FPGA入門最適合練手的串行總線它不復(fù)雜但足夠讓你把時(shí)序這兩個(gè)字刻進(jìn)腦子里。等你真正寫完一個(gè)穩(wěn)定運(yùn)行的SPI Master再回頭去看I2C、UART會(huì)發(fā)現(xiàn)所有串行協(xié)議的本質(zhì)都是相通的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色婷婷激情| 99精彩视频| 色yeye色综合| 欧美日韩99| 中文幕无线码中文字蜜桃| 婷香五月网在线| 国产婷伊人| 精品久久这里热66| 久狠日av| 激情综合六月| 久久HD| 久久aaaaa| 五月丁香天堂网| 欧美日本一区二区三区| 色婷婷欧美在线| 色五月97| 九九精品re免费视频| 天堂久久精品| 第四色大香蕉| 激情五月婷婷五月| 五月天啪啪| 天堂婷婷五月在线| 久久丁香五月婷婷| 五月丁香自拍| 99啪啪网| 久久婷婷内射| 国产性爱一级| 国产精品视频免费看| 9精品久久999| 色情终和网| 五月婷婷啪啪| 可以看的av| 久久综合性| 66精品成人免费网站在线观看| 日韩成人综合网| 五月婷婷黄网站大全| 五月天激情四射| 欧美激情五月天| 色综合久久88色综合中文字幕| 插逼综合网| 色婷婷精| 9精品视频在线| 就去色色五月丁香婷婷久久久| 九九精品热| 久久九区| 色999亚洲人成色| 丁香六月久久| 婷婷五月综合在线| 夜夜操狠狠操| 亚洲愉拍99热成人精品| 99热在线观看成人| 五月婷婷丁香网| 婷婷色五月大香蕉在线| 微拍92| 亚洲精品无码A片一区二区| 97精品人人A片免费看| 色色五月天激情| 丁香色婷婷| 偷偷操99| 91超碰人人操| 色色色五月天婷婷| 草榴视频网| 97超碰色| 亚洲另类在线观看| 丁香五月天五码婷婷| 秋霞午夜理论| 中国激情网| 久久婷婷五月综合色丁香| 91视屏在线观看com.wwwvv| 26uuuavcom| 婷久看人爽| 婷婷深爱五月天在线| 婷五月丁香| 色婷婷五月天成人网| 丁香五月亚洲无码| 五月丁香激情综合网| 日本婷婷| 欧美槡BBBB槡BBB少妇| 99色在线观看| 九九青草热| 六月婷婷综合激情| 另类小说婷婷色| 成人做爰A片免费看视频| 天天久久综合| 人。妻久久| 色婷婷综合视频| 五月亭亭直播| 婷婷五月花| 教师性爱毛片| 丁香五月婷婷啪啪| 天天插综合| 天天色丁香| 精品人妻久久久久久| 91色婷婷综合久久中文字幕二区| www.九月婷婷丁香.com| 五月天婷婷午夜丁香| 久久五月激情网| 色五月婷婷丁香五月| 亚洲乱码在线观看| 亚洲第一成人AV| 丁香六月青青草| 色综合九九| 有码人妻久久| 亚洲中文字幕av| 亚洲愉拍99热成人精品| 五月天激情综合在线| 色五月成人在线| 色婷婷a v| 九九热精品| 欧在线一区| 国产67194| 影音先锋人妻出差| 日日爽夜夜爽| 超碰1999| 日本黄色三级片内射| 色99色| WWW夜夜| 天天做天天爽| 日韩AV一区二区三区| 丁香六月天AV| www超碰| 五月婷婷九九热| 在线视频色五月| 色五月丁香伊人五月| 亚洲成人综合在线| 999婷婷综合| 精品99只有。| 精品9197碰| www.色综合.com| 色婷婷五月天激情综合| 免费观看18视频网站| 婷婷欧美激情综合| 九九九九综合| 日韩综合网络男女香蕉a片| 激情五月天婷婷视频| 丁香六月啪啪| 色五月天.con| 亚洲丁香花色| 狠狠擼综合| 在线日韩视频| 久鲁鲁色网| 激情久久久久久| 婷婷激情综合色五月久久91| 天天做天天爱天天要| 国外亚洲成AV人片在线观看| 综合狠狠五月婷婷| 9视频在线成人网站| 婷婷中文在线| 五月天婷婷香蕉狠狠超碰综合| 久久AAAA片一区二区| 91色五月| 99久久这里只有精品| 超碰av天堂| 婷婷五月另类网站| 91干网站| 99riAV成人在线视频| 中文乱子伦视频| 五月天激情国产综合婷婷婷| 综合五月丁香久久| 婷婷五月天基地| 色婷婷狠| 亭亭五月丁香五月天激情| 丁香五月人妻| 91狠狠综合久久久久久| 精品人妻伦| 久久九九国产精品怡红院| 狼人久草| 五月天久久色| 噜噜狠狠色综无码久久合欧美| 1024AV视频| 成人五月天视频播放| 九九爱激情| 婷婷免费无视频| 黑人巨粗进入警花疼哭A片| 91啪级电影| 色综合77777| 人人视频色| 五月色激情综合网| www.久久久.com| 久久久久9| 夜夜躁爽日日| 婷婷五月图片小说网| 超碰在线个人观看| 五月婷婷激情网| 99热99在线| 停停五月丁香| 久久这里在精品视频| 成人精品在线| 婷婷基地五月色| 五月婷婷久久大片| 国产精品美女| 狠狠香婷婷五月| 在线看的免费网站| 激情综合网五月激情网| 日日日,com| 人人色人人弄人人操| 丁香五月婷在线观看| 婷婷久久色| 婷婷99| 五月天激情网图片 - 百度| 亚洲精品第一国产综合亚AV | 欧美色99| 538在线精品| 五月婷婷激情综合网 | 五月天成人在线视频丁香| 八戒青柠影视剧在线观看| 狠狠五月天婷婷激情网。| 内射综合网| 男人天堂亚洲综合| 五月天婷婷色色| 婷婷五月天性| 精品视频这里只有精品| 伊人大香蕉综合在线| 九九热99视频| 99久久这里只有精品| 欧美激情 日韩无码 婷婷 五月天| www.日日夜夜.com| 六月丁香五月婷婷| 26uuu欧美激情另类| 9久视频| 激情文学综合婷婷五月天丁香花| 任我肏| 国产淫熟妇| 无码yw| 老师的粉嫩小又紧水又多A片视频| 天天日,天天射,天天舔| 极品人妻videosss人妻| 久久网站观看免费欧洲国产| 婷婷五月天成人在线视频| 色婷婷亚洲综合网站| 五月婷婷六月天| 欧美丁香五月夫妻天| 婷婷五月天va| 亚洲 25P| 天天日日人| 激情文学第四色婷婷丁香五月| 五月婷婷深深的爱| www.henhenl| 久久久亚洲成人无码A片| 狠狠色婷婷| 色五月婷婷一二| 天天操夜夜爽| 五月天婷婷开心| 99热欧美在线观看| 青青夜夜狠狠夜夜狠狠| 色六月天天激情综合网| 99热这里只有精品国产免费| 亚洲色色在线| 99热国产国产| 色婷婷丁香五月丁香| 婷婷丁香六月五月天| 欧美图片丁香五月天| 婷婷五月综合丁香久久| 中文字幕欧美精品久久| 99婷婷五月天激情| 久青操| 91pornav在线| 7超碰自拍| 久久婷婷五月综合精品蜜芽| 久久五月天婷婷| 欧洲S级在线观看| 久久久人妻人伦| 天天日天天添| 久久婷婷五月天激情| www色哟哟| 五月天激情美女久久| 99噜噜噜在线播放| 99热超碰人| 色五月婷婷7777| 精品一二三区久久AAA片| 色婷婷影院| 色噜噜婷婷| 人妻丰满精品一区二区A片| 九九热超碰| 九九热最新| 中字幕视频在线永久在线观看免费| 九热视频| 亚洲影院婷婷色| 丁香五月婷婷激情完整版| 性色综合网| 久婷自拍视频| 亚洲精品色色| 欧美综合五月丁香五月天| 婷婷狠狠五月综合| 丁香婷婷色情| 国产毛片精品一区二区色欲黄A片| 免费看欧美成人A片无码| 五月天婷婷基地| 青青草青青草五月天| 久综合4| 精品自拍99| 婷婷五月丁香色综合| 天天搞天天色综合| 亚洲综合丁香五月| www.99日本| 操碰91| 国自产拍偷拍精品啪啪一区二区| 天天网曰日曰夜夜综合永久免费| 2015好吊操| 狠狠干狠狠干狠狠干狠狠干| 狠狠99| 97超碰综合| 五月激情在线| 婷婷色五月激情强奸四射| 婷婷丁香射射| 色噜噜狠狠一区二区三区| 天天色综网| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 91综合在线| 亚洲国产精品SUV| 中文字幕综合色| 激情四射网| 五月丁香久久久日婷婷久久婷婷日| 国产乱妇乱子伦| 九九热中文| 日韩成人影片网站| 激情丁香五月婷| 热99在线| 欧美黄色一级录像| 丁香婷婷精品视频| 99色干| 精品国产一区二区三区四区阿崩| 91碰| 婷婷在线激情| 玖玖九九超碰| 天天色爽| 婷婷丁香五月亚洲| 超碰9| 婷婷五月六月丁香综合| 天天色情站| 丁香婷婷色色| 五月天婷婷在线视频| www五月| 97干视频在线| 女人天堂AV| 涩丁香| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 狠狠狠人妻| 色色com| BBWCUCKOLD精品熟妇 | 超碰在线国产| 嫩草视频观看| 亚洲热综合| 国产AV一区二区三区最新精品| 伊人色综合影院视频| 开心五月婷婷99| 五月丁香婷婷综合网| 成人版视频在线观看| 丁香五月激情图片| 天天日色情| 99热这里只有精品10| 亚洲精品亚洲人成人网| 日韩久久视频| 大香蕉婷婷| 丁香色六月| 九九aV| 亚洲色婷婷五月天| 97碰人人操| 久久日韩婷婷五月| 丁香五月综合激情性爱| 中文字幕AV网址| 韩国激情五月天综合网| 久久婷婷五月综合激情国产| 色婷婷五月色| 深爱五月月天| 国产乱子轮XXX农村| 79亚洲精品少妇| 狠狠干,狠狠操| 人妻22p| 亚洲第一第二网站| 玖玖视频福利| 五月激情婷婷色| 九九碰九九爱97| 天天久久狠狠色综合| 精品人妻久久久久久| 午夜日韩久久久网站| 丁香色五月天| 99re热在线视频| 99久久婷婷国产综合| 任你爽免费视频| 天天搞天天爽| 亚洲色色精品| 99九九热视频| 日日杆天天| 丁香五月在线伊人| 激情五月四色| 热99AV网站| 黑人无码一区| 四色99久久| 激情com| 五月天久久色| 六月 丁香 视频| 熟妇天天综合| 五月天综合久久| www.日本久久videos| 可以直接看的AV| 美女婷婷六月色| 99热国产| 五月丁香六月婷婷亚洲| 五月丁香毛片| 欧美色图天堂网| 丁香五月天在线视频| 亚洲婷婷五月天| 久久伊人日日夜夜| 情一色一乱一伦一91A| 九九这里是免费的视频5| 殴美日比视频| 丁香激情综合| 91丨九色丨熟女丰满| 狠狠综合| 伊久大香蕉| 夜夜撸夜夜骑| 内射丰满人妻| 久艹大香蕉| 99热6这里只有精品| www.色窝| 久99久在线| 欧美大肥婆大肥BBBBB| 六月丁香婷婷在线波多| 婷婷五月激情综合| 亚洲永远av在线播放| 在线成人网址| 99热6这里只有精品| 日日噜狠狠| 欧美丰满熟妇BBB久久久| 妻久久人久久| 五月色情婷婷开心五月色情| WWW99视频| 蜜桃五月天| 性热视频99精品| 色婷婷AV久久| 激情小说婷婷| 色婷婷丁香五月| 五月丁香久久久日婷婷久久婷婷日| 色婷久久| 婷婷五月精品在线| 丁香婷婷久久| 丁香色影院| 99热只有精品在线播放| 亚洲天堂啪啪| 天堂在线观看视频| 丁香五月综合| 一本久道综合色婷婷五月| 成人欧美一区二区三区在线观看 | 夜夜躁爽日日| 天天插天天干| 婷五月天| 激情五月深爱婷婷| 678五月丁香亚洲综合| 最新av在线观看| 日本美女97在线视频| 九月丁香婷婷| 五月丁香黄色视频| 99日本在线| 国产精品色婷婷AV综合色色| 色婷婷丁香香香蕉视频| 狠狠五月天婷婷激情网。| 九九这里只有精品在线视频| www.五月婷婷久久.com| 天天干 夜夜爽| 99惹| 丁香五月AV综合| 久久久999精品| 中文字幕性爱视频| 任你搞在线观看视频| 嘿嘿视频免费看9| 激情内射人妻1区2区3区| www.日日夜夜.com| www.99视频| 欧美激情综合| 99色色网| 大香蕉久久青青| 欧美性猛交 XXXX 乱大交| 五月婷丁香| 99精品热| 公的粗大挺进了我的密道| 亚洲国产99| 99色网站| AA片在线观看视频在线播放| 乱乱av| 在线综合亚洲欧美65| 性生生活大片又黄又| 黑人糟蹋人妻HD中文字幕| 影音先锋女人AA鲁色资源| 色婷婷六月| 996er热| 另类激情首页| 婷婷丁香五月亚洲| 成人无码精品1区2区3区免费看| 色五月天丁香| 99ER热精品视频| 亚洲精品又粗又大又爽A片| 精品久久99| 天天综合网站| 亚洲成AV人片在线观看| www色婷婷com| 亚洲性爱干干| 激情综合色婷婷啪啪六月天| 久久六月综合| 五月婷婷六月色| 少妇出轨做爰高潮A片| 激情五月婷婷综合网| 久久全色| 综合大香蕉| 激情婷婷丁香五月天小说| 五月永久激情| 婷婷五月激情六月| 五月天另类激情在线| 色五月激情五月| 五月丁香亭亭A片| 九热电影av| 婷婷五月成人色综合| 亚洲99视频| 综合久久99| 久久五月综合| 五月丁香直播| 五月天婷婷伊人| 日本猛少妇色XXXXX猛叫| 99色综合久久| 婷婷精品免费久久| www.亭亭五月天| 久久精品9| 亚洲精品V天堂中文字幕| 色色色五月天激情资源| 亚洲国产色婷婷| 色色cOm| 丁香五月婷婷色| 美女久久天堂| 99热乎| 噜噜狠狠色综无码久久合欧美| 日韩aaa| 另类婷婷五月天啪帕帕| 丁香久久AV| 夜夜谢天天干| 久久AV无码精品人妻系列试探| 99九九视频精彩在线| 精品视频99看在线视频| 激情视频综合| 91av色色乱视频| 7月婷婷六月丁香| 日日夜夜狠狠干| 91碰碰| 丁香五月婷婷影院| 五月婷色啪| 三级黄网站| 日韩精品呦呦va| 26uuu亚洲色| 激情综合亚洲| 一起草av在线观看| 欧美成人网99网| 国产人妻777人伦精品HD| 婷婷五月中文字幕| 天天色天天操天天射| 97在线观视频免费观看| 激情丁香五月天综合| 亚洲天天| 99久久偷拍视频| 色婷婷中文字母五月丁香| 开心五月深爱五月| 色色色色色色色色色色色色色色,网站| 日日噜狠狠色综| 婷婷五月天AV在线| 激情九九综合网| 狠狠狠狠狠干| 七七九九色色| 99久re热视频精品98| 五月丁香综合激情网| 亚洲天码视频www蛋播视频| 国产精品久久欧美久久一区| 人妻videos人妻高清| 看片视频在线免费日产在线看| 玖玖99精品视频| 色视频五月天| 色五月婷婷伊人| 操一操| 亚洲欧美成人在线观看| 天天干com| 日韩aⅴ视频| av人人操| 日韩天堂久久| 五月婷婷,狠狠操| 超级碰碰碰91| 亚洲情色一区| 大香蕉久久伊人婷婷五月丁香| 亚洲成人影视在线观看| 一级黄色操B| 噜噜噜久久| 射琪琪| 182TV大香蕉| 黄色激情久久| 丁香色五月 97干| 久久网站免费亚洲| 国产99久久久国产精品免费看| 五月婷婷深深爱爱| 婷婷九月丁香中文| 色五月婷婷九月| 青草五月天| 婷婷黄色| 日本三级日本三级99| 超碰免费成人| 青草性爱视频| 黄色aa观看aaguochan| 99re8在这里只有精品| 九九99男女视频在线观看| 国产avapp 网| 五月花综合网| 婷婷五月天成人视频| 五月天综合视频| 久久久久久97| 久久综合99综合| 常久最新免费的色吊丝| 9999热在线观看| 开心五月深爱五月| 婷婷香五月| 亚洲免费观看高清完整版AV线| www99精品| 五月天久久久| 伦99热| 亚洲另类av| 99re思思热久久| 亚洲人妻五月丁香婷婷| 日本婷久久| 亚洲欧洲另类图片| 国产精品视频| www.五月天性.com| 人妻人人操| 成人.在线日韩| 五月丁香综合激情网| 99热精品10| 99热九九在线| 日木WWW视频| 影视av久久久噜噜噜噜噜三级| 热的国产,热的综合,热的有码| 激情五月瑟瑟| 这里只有精品视频| 婷婷涩涩五月天| 五月色亚洲| 久久久久久久综合狠狠综合| 婷婷丁香五月天熟女丝袜| 激情小说五月天| 九九热视频免费| 性爱动图国产麻豆一区二区三区| ww超碰在线| 996er热| 少妇性按摩无码中文A片| 久久久久综合激动五月天| 精品99在线| 琪琪色五月婷婷老师| 久热综合| 天天干天天拍| 国产VA亚洲VA96| 丁香五月天.com| 九九色情网五月天| 激情人妻蜜夜系列区| 婷婷丁香五月激情| 无码动漫av| 91小黄书网址在线观看| 亚洲色欲欧美一区二区三区| 无码人妻激情| 久久久久久97| 色色色色色五月| 刘玥av在线| 91操碰| 久久综合爱| 五月天婷婷色色网| xxx.色婷婷| 青青草日本亚洲| 色婷婷色五月丁香| 丁香婷婷五月天亚洲| 久久婷婷热| 久久久五月婷婷| 六月婷婷最新网址| www.激情五月天.con| 国内精品99| 日本www免费九九| 九九亚洲| 天天综合网在线| 97香蕉碰碰人妻国产欧美| 五月天激情婷婷| 五月丁香综合中文| 九九热大香蕉| 亚洲欧洲另类| 欧美精品999| 亚洲色频| 丁香五月五月婷婷欧美大香蕉| 久久香蕉网| 九九九激情综合| 亚洲午夜在线视频| 91成人看| 五月婷婷综合社区| 性热视频99精品| 五月婷婷天天色| 99操99| 婷婷99中文字幕| 婷婷五月色影视先锋| 亚洲无码你懂的| 香焦网五月天| 久久三级视频| 激情五月综合色婷婷| 人妻系列久久久久久久久久久| 五月久久五月激情| 激情 婷婷 丁香五月天| 久久人妻视步| 亚洲第一黄网| 伊人久久婷婷| 九九爱精品网站| 91AV视频| 综合久| 色五月婷婷开心| 5月婷婷五月天| 14色综合婷婷| 亚洲综合色网| 日韩有码一区| 热99精品视频五月| 欧美va亚洲va| 9l视频自拍9l九色成人| AAAA亚洲| 五月丁香激情综合久久| 激情av| 四川BBB搡BBB爽爽视频| Caoporn公开| 色五月天堂| 久久久月丁香| 99热色精品| 色色五月婷| 亚州成人综合在线| 激情五月天色| 五月激情久久| 激情六月婷婷| 超碰激情五月| 精品婷婷五| 五月激情天天干| 亚洲成人一区| 久久这里只有精品视频15| 久久免费丁香| 久操大香蕉| 五月丁香花激情综合网| 任你日视频| 综合久久激情久久| 久久99婷婷| 色色色色色网站| 天天搞天天爽| 色婷婷狠狠久久YY| 天天插轮理| 任你爽在线视频| 婷婷在线免费| 色情五月婷婷| 亚洲午夜在线视频| 9色在线| 五月婷婷影| 色噜噜狠狠色综无码久久合欧美| 男人的天堂99| 激情网第四色| 久99久视频| 亚洲视频久久| 99re这里有精品手机在线| 超碰av在线| 中文在线视频久9| 婷婷伊人| 极品另类| 91丨九色丨老熟女激情| 五月天四色房丁香| 五月丁香啪啪啪| 99热青青草| 5月婷婷6月六月丁香| 日本eVa一区=区视频| 玖玖在线视频福利| 综合色99| 偷拍91九色| 五月综合婷婷五月| 岛国资源站| 精品人妻久久久久久久| 亚洲V国产V欧美V久久久久久| 大香蕉五月天婷婷丁香91| 丁香五月人妻| 91主播在线| 国产精品婷婷午夜在线观看| 国产美女无遮挡裸体毛片A片| 色五月综合网| 色色色色五月| 日韩啪啪视频| 丁香婷婷久久| 九九久久五月天| 任你搞网站| 9视频1在线| 丁香五月天婷婷激情| 91九色白丝| 九一99| 五月婷婷欧洲| 五月涩涩网| 日本在线播放97| 天天综合天天玩夜夜玩天天玩夜夜玩| 99只有精品| 丁香五月网络网络| 欧美激情性做爰免费视频| 婷婷五月天中文字幕.| 操操啪| 91热爆在线| 日日操天天操| 丁香五月情| 九九99精品视频| 热九九精品| 色婷婷影院| 色久婷婷网| 国产毛片精品一区二区色欲黄A片| 侠女刀之记忆电影在线看免费| 激情五月影院| 婷婷免费无视频| 婷婷深爱色五月| 人人草人人舔| 五月丁香六月花| 91人无码久久久久久| 久久怕怕视频| 99热综合网| 色婷婷激情| www.五月天婷婷姐姐| 一级视频网址| 天天干天天拍| 综合欧美五月婷婷| 爱99干99| 久re热视频| 丁香五月欧美成人| 丁香六月综合激情| 久久色这里只有精品| 婷婷五月激情的图片| 久久99精品久久只有精品| 激情q青青草在线婷婷| 成人AV片播放| 久色激情| 婷婷五月开心中文字幕色| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 六月丁香婷啪射| 夫妇交换刺激做爰| 婷婷五月亚洲激情| 丁香五月天激情四射网络不好| 精品人妻伦一二三区久久| 99热情这里只有精品在线播放| 欧美 日韩 人妻 高清 中文| 激情五月影院| 丁香婷婷激情综合五月激情| 男同色五月开心五月激情五月| 操操自拍| 狠狠色 综合色区| a在线免费v| 午夜成人片400| 色五月涩涩婷婷| 无码中文一区二区三区| 欧美婷婷九月| 97色婷婷| 亚洲AV成人精品日韩在线播放| 五月丁香黄色| 色婷婷黄色网络| 国产婷婷婷| 99九九热在线观看| 思思热99er在线视频| 成人资源在线| 亚洲情综合五月天| 超碰狠狠操| 天天日天天干天天爽| peg 2区三区四区的| 91婷婷在线观看| 97综合视频在线| 五月综合视频| 人人操AV| 九九亚洲视频| 日韩成人精品一区久久久久| AV操逼网| 婷婷六月综合基地| 熟惀91九色在线| 中文字幕黄色片| 久久激情五月天| 欧美成人色婷婷| 婷婷激情蜜桃玖玖丁香| 色色无码日韩| 97色啪| Caoub青青超碰 | 五月刺激丁香月综合| 熟妇无码乱子成人精品| 99激情在线| 桃色五月天| 国产精品婷婷午夜在线观看| 颜射 精品性爱av| 五月婷婷六月丁香免费| 99热老司机| 亚洲av网址| 激情啪啪五月天| 97超级碰| 超碰天堂网| 亚洲国产精品SUV| 禁欲电影完整版在线播放| 99热日韩| 久久激情综合| 婷婷色色丁香五月天| 99热精品免费| 天天爽夜夜爽夜夜爽精品视频| 凹凸操Av| 狠狠操狠狠干综合| 天天做天天爱天天要| 亚洲中文乱字字幕线在永久| 人妻肉射免费观看| 婷婷玉月丁香五月在线视频| 天天操天天操天天操| www.99热国产| 9999色色色色| 色宗合久久五月婷婷| 五月丁香婷婷人体| 天堂婷婷丁香六月网| 五月丁香六月婷婷亚洲| 婷婷天天综合| 色五月首页| 性生活久久朋友人妻| 丁香六月婷婷色XXXXX| 亚洲热久久| 婷婷色综合av| 日韩av在线电影| 五月丁香久久| 亚洲美女高潮久久久久久69| 婷婷五月色播放| 亚洲人人操| 人妻丰满精品一区二区A片| 九九成人电影婷婷| 欧在线一区| 日熟女| 日本啪啪网| 婷婷久久午夜网| 五月天开心婷婷久久| 六月色丁香中文字幕| 另类激情五月天| 五月婷婷日| 九月丁香| 精品国产乱码久久久久久免费| 日韩一区二区A片免费观看 | 狠狠插狠狠| 青青草成人网| 人妻AV在线观看| 99操逼| 五月成人丁香av91| 久9久成人精品视频| 九月丁香亭亭| 婷婷爱综合| 久久这里只有国产视频| 久久丁香五月天| 久久久婷婷| 五月丁久久| 日本操B片| AV伊人青草丁香六月| 婷婷开心青青草| 五月天婷婷久久| 99色在线视频| 成人五月天。COM| 91精品国产色猫| 91超碰在线观看| 爱婷婷久久视频| 玖玖99免费视频| 午夜天堂一区人妻| 毛v一区二区视频| 丁香婷婷激情五月| 天天插综合| 国产精品色| 日韩精品99久久| 天天日天天摸天天| 狠狠色狠狠操| 日产精品一线二线三线芒果| 99久久婷婷精品视频| 色色色婷婷五月| 人人操A| 六月婷婷综合| 久久婷婷五| 激情丁香五月婷| 色婷婷丁香五月| 久久精品99国产精品日本| 色婷婷丁香综合中文字幕| 六月丁香综合999| 五月婷婷与六月丁香图片激情| 少妇性BBB搡BBB爽爽爽视頻| 丁香花五月天激情| 国熟女视频| 日韩成人av在线| 亚洲第二AV| 五月天无码视屏播放| 色婷婷97| 欧美日韩精品一区二区三区钱| 丁香六月婷婷高清| 久久性视频| WWW·色色色·COM| 久久98| 中文资源在线a | 日韩久久色| 五月天开心激情综合网| 天天激情站| 涩综合在线| 色综合色综合网| 97热精品| 亚洲情综合五月天| 亚洲人妻AV| 五月婷婷之综合激情| 九九爱激情| 人人人人人人人人人草| 99热免费精品| 五月天社区婷婷丁香社区| 婷婷之六月丁香| .精品久久久麻豆国产精品| www.91久久| 9l视频自拍9l九色9l成人| 日日操夜夜操中国无码| 狠狠五月天激情| 91在线操逼视频| 99热在线里有精品| 69精品人人人人| 99er这里只有精品视频| AAA久久| 五月天社区婷婷丁香社区| 激情综合五月开心狠狠| 婷婷激情五月| WWW.天天日| 狠狠干在线| 1024人妻| 色婷婷五月天在线观看| 99久久综合网| 综合网激情| 99九九热在线观看| 91操在线视频| 97精品在线| 9久国产| 天天色播| 夜夜爽天天爽| 婷婷五月蜜桃成人桃色丁香| www.夜夜| 管管補管管紱| 五月天综合在线网| 99热在线观看这里只有精品| 伊综合蕉| 五月天精品视频| 五月婷婷草| 夜夜躁婷婷AV| 内射综合网| 色婷婷色99国产综合精品| 婷婷五月四狠狠| 国产乱子轮XXX农村| 热99国产精品| 另类少妇人与禽zOZZ0性伦| 五月丁香花伦理电影| 日韩在线视频9色| 婷婷五月天激情诱惑| 在线看黄色| 夜夜操天天干| 草婷婷在线| 丁香婷婷综合影院| 玖玖在线| 久久婷婷视频| 亚洲欧美日韩VIP| 欧美在线视频99| 日韩在线看AV| 久久婷婷六月综合综合色| 9l视频自拍九色9l视频在线观看| 日日.c| 久久婷婷欧美| 五月丁香成年黄色| 五月丁香久久| 天天开心AV色综合婷婷五月天| 中文字幕av网站| 玖玖99免费视频| 五月天亚洲最大成人| 无码一区二区三区四区五区91c| 99热国产免费| 怕怕av| 久久33视频| 婷婷久久综合久| 深爱五月日韩| 亚洲操精品| 日韩黄黄| 婷婷五月天桃花网| 日韩久久色| 色婷婷丁香AV综合| 伊人综合色干| 人与禽A片啪啪| 天天操婷婷| 六月婷婷狠狠| 99日精品视频| 99精品成人无码A片观看金桔 | 天天色天天操天天射| 欧美色色色色色色色色色色影视| 另类国产欧美视频| 人妻啪啪啪| 亚洲色五月天| 亚洲色色图片| 超碰爱爱爱| 婷婷婷婷婷婷婷婷婷婷丁香| 日韩啪| 婷婷五月天狠狠| 久久婷婷五月国产色综合激情| 视频在线免费观看欧洲乱码| 日产精品一线二线三线芒果 | 婷婷五月天 丁香五月天 裸体| 丁香五月婷婷丫| 久久久思思热| 狠狠操狠狠色| 色色无码| 99精品无码| 亚洲精品小视频| 九九热色视频| 五月天狠狠色| 亚洲综合视频八| 亚洲视频一区| 亚洲无码成人| 五月久视频| 五月天激情AAAA| www.久久99| 色五月色图| #NAME?| 中文幕无线码中文字蜜桃| 久久久www| 欧美日韩AAAA| 五月色俺婷婷| 激情综合五月| 国产AV不卡福利| 亚洲一区二区 成人网站戴套| 婷婷综合| 九九aV| 亚洲a片免费观看| 久久九九中文字幕| 久久综合55| 乱乱av| 欧美日韩99| 亚洲综合99| 久久久久亚洲AV成人无码电影| 丁香婷婷色五月激情综合| 五月停停激情网| 五月婷婷co.m| 丁香五月色综合色播五月| 丁香五月天激情网址| 亚州操操| 欧美在线看| 久热婷婷在线视频| 九九久久高清| 久久91久久91色欲精品| 百度一下国产精品A| 免费色婷婷| 五月婷婷久久爱| 天堂在线观看视频| 亚洲成人在线电影网站| 婷婷五月天国产性感美女演员久久久久| 五月丁香久久| 亚洲最大成人综合网720P| 久久色亭亭五月天| 欧美超级视频97| 综合啪啪| 久久久久er热| 国产精品久久久久久久久久| 99色视频| 精品影院| 久久综合香蕉国产国产蜜臀AV| 久久免费干| 久久五月丁香综合17C| 天天爱天天做天天日| 99re热精品在线视频| 青青操avbb| 成人婷婷五月天| 欧美日本一区二区三区| 韩国天天婷婷| 我去色色网五雨天| 久热九九| 五月丁香六月婷综合成人综合| 欧美日韩aaa| 五月婷婷香蕉| 91色干| 久久久久久久久99精品| 色一区高清| 欧美Va在线| 色五月丁香伊人五月| 五月婷中文字幕| 久热99| 97搞在线| 色五月婷婷在线| 伊人丁香六月婷婷| 五月天婷婷色播在线网| 91 影音先锋| 国产色色小草视频| 九九色之九九色之88| 六月99天天婷婷激情综合| 开心激情久久久久久久| 久狠日av| 久久综合丁香激情五月| 婷婷五月激情欧美大胆视频| 欧美婷婷丁香五月| site:xiongshengzz.com| 久久这里只有精品视频1| 六月婷婷综合| 青青草免费公开视频| WWW.久久久久久久久久久久久| 碰超99| 这里只有精品69| 五月婷丁香| 婷婷五月花| 9热视频在线观看| 亚洲区,视频区,视频区免费| 99er在线观看| AV在线免费播放| 91精品在线看| 久久99激情五月天| 伊人网欧美在线男人天堂五月丁香 | 婷婷深爱五月| yw.av| 五月色婷婷在线观看| 另类图片婷婷五月天| 大香蕉520| 色yeye欧美| 色婷婷WWW| 激情综合激情综合| 丁香六月综合激情| 亚洲视频无| 色婷婷丁香五月观看| 欧美天堂久久| 涩五月婷婷| 97干婷婷| 久久99成人性爱高清视频| 五月天婷婷久久视频| 97成人视频| 五月丁香综合精品| 欧美婷婷五月丁香| 五月丁香婷婷激情爱爱| 激情五月激情综合俺也去婷婷小说 | 五月丁香啪啪| 婷婷五月综合基地| 激情丁香婷婷六月天| 67194中文字幕| 天堂网亚洲色图| 色五月琪琪| 26uuu国产| 国产首页在线| 色婷綜合网| se99视频| 久久精品五月天| 久久婷婷五月| 五月综合激情图片| 婷婷综合视频| 超碰人人插| 五月丁香婷婷六月天| 色综合99| 秋霞免费三级片| 人人草人人爱| 婷婷狠狠爱| 综合激情五月天六月婷免费视频| 五月大香蕉| 九热久| 色噜噜狠狠色综无码久久合欧美| 日本天堂网站99| 狠狠狠狠狠狠狠狠草| wwwss在线观看| 五月丁香美女| 婷婷五月丁香基地| 婷婷色啪| 人人综合久| 2017人人操| 婷婷五月天视频亚洲| 激情性爱婷婷| 久久色五月天激情小说| 99精品偷自拍| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | wwwwww.色| 国产精产国品一二三在观看| 婷婷五月天日本国产| 国产精品久久久久久妇女6080| 五月香蕉婷婷| 国产99久久久国产精品免费看| 开心四月婷婷在线色播播|