在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

W55MH32高性能以太網單片機開發課件 第十四章 ADC(上篇)

W55MH32 ? 來源:W55MH32 ? 作者:W55MH32 ? 2025-05-28 13:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單芯片解決方案,開啟全新體驗——W55MH32 高性能以太網單片機

W55MH32是WIZnet重磅推出的高性能以太網單片機,它為用戶帶來前所未有的集成化體驗。這顆芯片將強大的組件集于一身,具體來說,一顆W55MH32內置高性能Arm? Cortex-M3核心,其主頻最高可達216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲與數據處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協議棧、內置MAC以及PHY,擁有獨立的32KB以太網收發緩存,可供8個獨立硬件socket使用。如此配置,真正實現了All-in-One解決方案,為開發者提供極大便利。

在封裝規格上,W55MH32 提供了兩種選擇:QFN68和QFN100。

W55MH32Q采用QFN68封裝版本,尺寸為8x8mm,它擁有36個GPIO、3個ADC、12通道DMA、17個定時器、2個I2C、3個串口、2個SPI接口(其中1個帶I2S接口復用)、1個CAN以及1個USB2.0。在保持與同系列其他版本一致的核心性能基礎上,僅減少了部分GPIO以及SDIO接口,其他參數保持一致,性價比優勢顯著,尤其適合網關模組等對空間布局要求較高的場景。緊湊的尺寸和精簡化外設配置,使其能夠在有限空間內實現高效的網絡連接與數據交互,成為物聯網網關、邊緣計算節點等緊湊型設備的理想選擇。 同系列還有QFN100封裝的W55MH32L版本,該版本擁有更豐富的外設資源,適用于需要多接口擴展的復雜工控場景,軟件使用方法一致。

此外,本W55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應用,涵蓋TCP SSL、HTTP SSL以及MQTT SSL等,為網絡通信安全再添保障。

為助力開發者快速上手與深入開發,基于W55MH32Q這顆芯片,WIZnet精心打造了配套開發板。開發板集成WIZ-Link芯片,借助一根USB C口數據線,就能輕松實現調試、下載以及串口打印日志等功能。開發板將所有外設全部引出,拓展功能也大幅提升,便于開發者全面評估芯片性能。

wKgZO2gbOfaAVPzkACJSygzv-rI600.png

第十四章 ADC(上篇)

1ADC簡介

12 位 ADC 是一種逐次逼近型模擬數字轉換器。它有多達 18 個通道,可測量 16 個外部和 2 個內部信號源。各通道的 A/D 轉換可以單次、連續、掃描或間斷模式執行。ADC 的結果可以左對齊或右對齊方式存儲在 16 位數據寄存器中。

模擬看門狗特性允許應用程序檢測輸入電壓是否超出用戶定義的高/低閥值。ADC 的輸入時鐘不得超過 14MHz,它是由 PCLK2 經分頻產生。

1.1 ADC主要特征

W55MH32的ADC的主要特征如下:

12 位分辨率

  • ?轉換結束、注入轉換結束和發生模擬看門狗事件時產生中斷
  • ?單次和連續轉換模式
  • ?從通道 0 到通道 n 的自動掃描模式
  • ?自校準
  • ?帶內嵌數據一致性的數據對齊
  • ?采樣間隔可以按通道分別編程
  • ?規則轉換和注入轉換均有外部觸發選項
  • ?間斷模式
  • ?雙重模式(帶 2 個或以上 ADC 的器件)
  • ?ADC 轉換時間:時鐘為 56MHz 時為 1μs(時鐘為 72MHz 為 1.17μs)
  • ?ADC 供電要求:2.4V 到 3.6V
  • ?ADC 輸入范圍:VREF-≤VIN≤VREF+
  • ?規則通道轉換期間有 DMA 請求產生。下圖是 ADC 模塊的方框圖。

注意: 如果有 VREF-引腳,必須和 VSSA 相連接

1.2 ADC功能描述

ADC功能框圖如下:

wKgZPGg2o26ALT6sAAPHsG-Q5qk742.png

單個 ADC 框圖

1.ADC3 的規則轉換和注入轉換觸發與 ADC1 和 ADC2 的不同。

名稱 信號類型 注解
VREF+ 輸入,模擬參考正極 ADC 使用的高端 / 正極參考電壓,2.4V ≤ VREF+ ≤ VDDA
VDDA(*) 輸入,模擬電源 等效于 VDO 的模擬電源:2.4V ≤ VDDA ≤ VDD (3.6V)
VREF- 輸入,模擬參考負極 ADC 使用的低端 / 負極參考電壓,VREF- ≈ VSSA
VSSA(*) 輸入,模擬電源地 等效于 VSS 的模擬電源地
ADC_IN[15:0] 模擬輸入 16 個 ADC 模擬通道

1.VDDA 和 VSSA 應該分別連接到 VDD 和 VSS。

1.3 ADC開關控制

通過設置 ADC_CR2 寄存器的 ADON 位可給 ADC 上電。當第一次設置 ADON 位時,它將 ADC 從斷電狀態下喚醒。ADC 上電延遲一段時間后(tSTAB),再次設置 ADON 位時開始進行轉換。

通過清除 ADON 位可以停止轉換,并將 ADC 置于斷電模式。在這個模式中,ADC 幾乎不耗電(僅幾個μA)。

1.4 ADC時鐘

由時鐘控制器提供的 ADCCLK 時鐘和 PCLK2(APB2 時鐘)同步。RCC 控制器為 ADC 時鐘提供一個專用的可編程預分頻器,詳見第 6 節-復位和時鐘控制(RCC)。

2 模式選擇

2.1 通道選擇

有 16 個多路通道。可以把轉換組織成兩組:規則組和注入組。在任意多個通道上以任意順序進行的一系列轉換構成成組轉換。例如,可以如下順序完成轉換:通道 3、通道 8、通道 2、通道 2、通道 0、通道 2、通道 2、通道 15。

規則組由多達 16 個轉換組成。規則通道和它們的轉換順序在 ADC_SQRx 寄存器中選擇。規則組中轉換的總數應寫入 ADC_SQR1 寄存器的 L[3:0]位中。

注入組由多達 4 個轉換組成。注入通道和它們的轉換順序在 ADC_JSQR 寄存器中選擇。注入組里的轉換總數目應寫入 ADC_JSQR 寄存器的 L[1:0]位中。

如果 ADC_SQRx 或 ADC_JSQR 寄存器在轉換期間被更改,當前的轉換被清除,一個新的啟動脈沖將發送到 ADC 以轉換新選擇的組。

溫度傳感器/VREFINT 內部通道

溫度傳感器和通道 ADC1_IN16 相連接,內部參照電壓 VREFINT 和 ADC1_IN17 相連接。可以按注入或規則通道對這兩個內部通道進行轉換。

注意:溫度傳感器和 VREFINT 只能出現在主 ADC1 中。

2.2 單次轉換模式

單次轉換模式下,ADC 只執行一次轉換。該模式既可通過設置 ADC_CR2 寄存器的 ADON 位(只適用于規則通道)啟動也可通過外部觸發啟動(適用于規則通道或注入通道),這時 CONT 位為 0。一旦選擇通道的轉換完成:

如果一個規則通道被轉換:轉換數據被儲存在 16 位 ADC_DR 寄存器中EOC(轉換結束)標志被設置如果設置了 EOCIE,則產生中斷。

如果一個注入通道被轉換:轉換數據被儲存在 16 位的 ADC_DRJ1 寄存器中JEOC(注入轉換結束)標志被設置如果設置了 JEOCIE 位,則產生中斷。然后 ADC 停止。

2.3 連續轉換模式

在連續轉換模式中,當前面 ADC 轉換一結束馬上就啟動另一次轉換。此模式可通過外部觸發啟動或通過設置 ADC_CR2 寄存器上的 ADON 位啟動,此時 CONT 位是 1。

每個轉換后:如果一個規則通道被轉換:轉換數據被儲存在 16 位的 ADC_DR 寄存器中EOC(轉換結束)標志被設置如果設置了 EOCIE,則產生中斷。

如果設置了 JEOCIE 位,則產生中斷。

2.4 時序圖

如下圖所示,ADC 在開始精確轉換前需要一個穩定時間 tSTAB。在開始 ADC 轉換和 14 個時鐘周期后,EOC 標志被設置,16 位 ADC 數據寄存器包含轉換的結果。

wKgZO2g2o26AAMdgAAGDnDyYmYo539.png

時序圖

2.5 模擬看門狗

如果被 ADC 轉換的模擬電壓低于低閥值或高于高閥值,AWD 模擬看門狗狀態位被設置。閥值位于ADC_HTR 和 ADC_LTR 寄存器的最低 12 個有效位中。通過設置 ADC_CR1 寄存器的 AWDIE 位以允許產生相應中斷。

閥值獨立于由 ADC_CR2 寄存器上的 ALIGN 位選擇的數據對齊模式。通過配置 ADC_CR1 寄存器,模擬看門狗可以作用于 1 個或多個通道。

wKgZPGg2o22AdiKqAABrdqHJvr8824.png

模擬看門狗警戒區

模擬看門狗通道選擇

模擬看門狗警戒的通道 ADC_CR1 寄存器控制位
AWDSGL 位 AWDEN 位 JAWDEN 位
任意值 0 0
所有注入通道 0 0 1
所有規則通道 0 1 0
所有注入和規則通道 0 1 1
單一的 (1) 注入通道 1 0 1
單一的 (1) 規則通道 1 1 0
單一的 (1) 注入或規則通道 1 1 1

2.6 掃描模式

此模式用來掃描一組模擬通道。

掃描模式可通過設置 ADC_CR1 寄存器的 SCAN 位來選擇。一旦這個位被設置,ADC 掃描所有被ADC_SQRX 寄存器(對規則通道)或 ADC_JSQR(對注入通道)選中的所有通道。在每個組的每個通道上執行單次轉換。在每個轉換結束時,同一組的下一個通道被自動轉換。如果設置了 CONT 位,轉換不會在選擇組的最后一個通道上停止,而是再次從選擇組的第一個通道繼續轉換。

如果設置了 DMA 位,在每次 EOC 后,DMA 控制器把規則組通道的轉換數據傳輸到 SRAM 中。而注入通道轉換的數據總是存儲在 ADC_JDRx 寄存器中。

2.7 注入通道管理

觸發注入

清除 ADC_CR1 寄存器的 JAUTO 位,并且設置 SCAN 位,即可使用觸發注入功能。

1. 利用外部觸發或通過設置 ADC_CR2 寄存器的 ADON 位,啟動一組規則通道的轉換。

2. 如果在規則通道轉換期間產生一外部注入觸發,當前轉換被復位,注入通道序列被以單次掃描方式進行轉換。

3. 然后,恢復上次被中斷的規則組通道轉換。如果在注入轉換期間產生一規則事件,注入轉換不會被中斷,但是規則序列將在注入序列結束后被執行。

注: 當使用觸發的注入轉換時,必須保證觸發事件的間隔長于注入序列。例如:序列長度為 28 個ADC 時鐘周期(即 2 個具有 1.5 個時鐘間隔采樣時間的轉換),觸發之間最小的間隔必須是 29 個ADC 時鐘周期。

自動注入

如果設置了 JAUTO 位,在規則組通道之后,注入組通道被自動轉換。這可以用來轉換在ADC_SQRx 和 ADC_JSQR 寄存器中設置的多至 20 個轉換序列。

在此模式里,必須禁止注入通道的外部觸發。

如果除 JAUTO 位外還設置了 CONT 位,規則通道至注入通道的轉換序列被連續執行。對于 ADC 時鐘預分頻系數為 4 至 8 時,當從規則轉換切換到注入序列或從注入轉換切換到規則序列時,會自動插入 1 個 ADC 時鐘間隔;當 ADC 時鐘預分頻系數為 2 時,則有 2 個 ADC 時鐘間隔的延遲。

注意: 不可能同時使用自動注入和間斷模式。

wKgZO2g2o22AD8l6AADHtpO0FYg768.png

注入轉換延時

2.8 間斷模式

規則組

此模式通過設置 ADC_CR1 寄存器上的 DISCEN 位激活。它可以用來執行一個短序列的 n 次轉換(n<=8),此轉換是 ADC_SQRx 寄存器所選擇的轉換序列的一部分。數值 n 由 ADC_CR1 寄存器的DISCNUM[2:0]位給出。

一個外部觸發信號可以啟動 ADC_SQRx 寄存器中描述的下一輪 n 次轉換,直到此序列所有的轉換完成為止。總的序列長度由 ADC_SQR1 寄存器的 L[3:0]定義。

舉例:

n=3,被轉換的通道=0、1、2、3、6、7、9、10

第一次觸發:轉換的序列為 0、1、2

第二次觸發:轉換的序列為 3、6、7

第三次觸發:轉換的序列為 9、10,并產生 EOC 事件

第四次觸發:轉換的序列 0、1、2

注意: 當以間斷模式轉換一個規則組時,轉換序列結束后不自動從頭開始。當所有子組被轉換完成,下一次觸發啟動第一個子組的轉換。在上面的例子中,第四次觸發重新轉換第一子組的通道 0、1 和 2。

注入組

此模式通過設置 ADC_CR1 寄存器的 JDISCEN 位激活。在一個外部觸發事件后,該模式按通道順序逐個轉換 ADC_JSQR 寄存器中選擇的序列。一個外部觸發信號可以啟動 ADC_JSQR 寄存器選擇的下一個通道序列的轉換,直到序列中所有的轉換完成為止。總的序列長度由 ADC_JSQR 寄存器的 JL[1:0]位定義。

舉例:

n=1,被轉換的通道=1、2、3

第一次觸發:通道 1 被轉換

第二次觸發:通道 2 被轉換

第三次觸發:通道 3 被轉換,并且產生 EOC 和 JEOC 事件

第四次觸發:通道 1 被轉換

注意: 1.當完成所有注入通道轉換,下個觸發啟動第 1 個注入通道的轉換。在上述例子中,第四個觸發重新轉換第 1 個注入通道 1。

2.不能同時使用自動注入和間斷模式。

3.必須避免同時為規則和注入組設置間斷模式。間斷模式只能作用于一組轉換。

3 校準

ADC 有一個內置自校準模式。校準可大幅減小因內部電容器組的變化而造成的準精度誤差。在校準期間,在每個電容器上都會計算出一個誤差修正碼(數字值),這個碼用于消除在隨后的轉換中每個電容器上產生的誤差。

通過設置 ADC_CR2 寄存器的 CAL 位啟動校準。一旦校準結束,CAL 位被硬件復位,可以開始正常轉換。建議在上電時執行一次 ADC 校準。校準階段結束后,校準碼儲存在 ADC_DR 中。

注意:1.建議在每次上電后執行一次校準。

2.啟動校準前,ADC 必須處于關電狀態(ADON='0')超過至少兩個 ADC 時鐘周期。

wKgZPGg2o22AcbxgAADWFypERPg273.png

校準時序圖

3.1 數據對齊

ADC_CR2 寄存器中的 ALIGN 位選擇轉換后數據儲存的對齊方式。數據可以左對齊或右對齊,如

wKgZPGg2o26AcFXaAACrhjmYxmU694.pngwKgZO2g2o22AZyOAAACcdanFqp4487.png

注入組通道轉換的數據值已經減去了在 ADC_JOFRx 寄存器中定義的偏移量,因此結果可以是一個負值。SEXT 位是擴展的符號值。

對于規則組通道,不需減去偏移值,因此只有 12 個位有效。

wKgZO2g2o22AbsguAACsfk4V080560.png

數據右對齊

wKgZPGg2o22AXDNZAACcBB163Bg436.png

數據左對齊

3.2 可編程的通道采樣時間

ADC 使用若干個 ADC_CLK 周期對輸入電壓采樣,采樣周期數目可以通過 ADC_SMPR1 和ADC_SMPR2 寄存器SMP[2:0]位更改。每個通道可以分別用不同的時間采樣。

總轉換時間如下計算:

TCONV=采樣時間+12.5 個周期

例如:

當 ADCCLK=14MHz,采樣時間為 1.5 周期

TCONV=1.5+12.5=14 周期=1μs

3.3 外部觸發轉換

轉換可以由外部事件觸發(例如定時器捕獲,EXTI 線)。如果設置了 EXTTRIG 控制位,則外部事件就能夠觸發轉換。EXTSEL[2:0]和 JEXTSEL2:0]控制位允許應用程序選擇 8 個可能的事件中的某一個,可以觸發規則和注入組的采樣。

注意: 當外部觸發信號被選為 ADC 規則或注入轉換時,只有它的上升沿可以啟動轉換。

表 ADC1 和 ADC2 用于規則通道的外部觸發

觸發源 類型 EXTSSEL[2:0]
TIM1_CC1 事件 來自片上定時器的內部信號 000
TIM1_CC2 事件 001
TIM1_CC3 事件 010
TIM2_CC2 事件 011
TIM3_TRGO 事件 100
TIM4_CC4 事件 101
EXTI 線 11/TIM8_TRGO事件(1) 外部引腳/來自片上定時器的內部信號 110
SWSTART 軟件控制位 111

(1)對于規則通道,選中 EXTI 線路 11 或 TIM8_TRGO 作為外部觸發事件,可以分別通過設置 ADC1和 ADC2 的 ADC1_ETRGREG_REMAP 位和 ADC2_ETRGREG_REMAP 位實現。

表 ADC1 和 ADC2 用于注入通道的外部觸發

觸發源 連接類型 JEXTSE[2:0]
TIM1_TRGO 事件 來自片上定時器的內部信號 000
TIM1_CC4 事件 001
TIM2_TRGO 事件 010
TIM2_CC1 事件 011
TIM3_CC4 事件 100
TIM4_TRGO 事件 101
EXTI 線 15/TIM8_CC4 事件(1) 外部引腳 / 來自片上定時器的內部信號 110
SWSTART 軟件控制位 111

(2)為注入信道選擇外部觸發器 EXTIline15 或 TIM8-CC4 事件是通過分別為 ADC1 和 ADC2 配置ADC1ETRGINJREMAP 和 ADC2 ETRGINJ·REMAP 來完成的。

表 ADC3 用于規則通道的外部觸發

觸發源 連接類型 EXTSSEL[2:0]
TIM3_CC1 事件 來自片上定時器的內部信號 000
TIM2_CC3 事件 001
TIM1_CC3 事件 010
TIM8_CC1 事件 011
TIM8_TRGO 事件 100
TIM5_CC1 事件 101
TIM5_CC3 事件 110
SWSTART 軟件控制位 111

表 ADC3 用于注入通道的外部觸發

觸發源 連接類型 JEXTSE[2:0]
TIM1_TRGO 事件 來自片上定時器的內部信號 000
TIM1_CC4 事件 001
TIM4_CC3 事件 010
TIM8_CC2 事件 011
TIM8_CC4 事件 100
TIM5_TRGO 事件 101
TIM5_CC4 事件 110
JSWSTART 軟件控制位 111

軟件觸發事件可以通過對寄存器 ADC_CR2 的 SWSTART 或 JSWSTART 位置'1'產生。規則組的轉換可以被注入觸發打斷。

3.4 DMA請求

因為規則通道轉換的值儲存在一個僅有的數據寄存器中,所以當轉換多個規則通道時需要使用DMA,這可以避免丟失已經存儲在 ADC_DR 寄存器中的數據。只有在規則通道的轉換結束時才產生 DMA 請求,并將轉換的數據從 ADC_DR 寄存器傳輸到用戶指定的目的地址。

注: 只有 ADC1 和 ADC3 擁有 DMA 功能。由 ADC2 轉化的數據可以通過雙 ADC 模式,利用 ADC1 的DMA 功能傳輸。

4 雙ADC模式

在有 2 個或以上 ADC 模塊的產品中,可以使用雙 ADC 模式。在雙 ADC 模式里,根據 ADC1_CR1 寄存器中 DUALMOD[2:0]位所選的模式,轉換的啟動可以是ADC1 主和 ADC2 從的交替觸發或同步觸發。

注意: 在雙 ADC 模式里,當轉換配置成由外部事件觸發時,用戶必須將其設置成僅觸發主 ADC,從 ADC設置成軟件觸發,這樣可以防止意外的觸發從轉換。但是,主和從 ADC 的外部觸發必須同時被激活。

共有 6 種可能的模式:

  • ?同步注入模式
  • ?同步規則模式
  • ?快速交叉模式
  • ?慢速交叉模式
  • ?交替觸發模式
  • ?獨立模式

還有可以用下列方式組合使用上面的模式:

  • ?同步注入模式+同步規則模式
  • ?同步規則模式+交替觸發模式
  • ?同步注入模式+交叉模式

注意: 在雙 ADC 模式里,為了在主數據寄存器上讀取從轉換數據,必須使能 DMA 位,即使不使用 DMA傳輸規則通道數據。

wKgZPGg2o2-AcJfyAAO7t802Rp0024.png

雙 ADC 框圖

1.外部觸發信號作用于 ADC2,但在本圖中沒有顯示。

2.在某些雙 ADC 模式中,在完整的 ADC1 數據寄存器(ADC1_DR)中包含了 ADC1 和 ADC2 的規則轉換數據。

4.1 同步注入模式

此模式轉換一個注入通道組。外部觸發來自 ADC1 的注入組多路開關(由 ADC1_CR2 寄存器的JEXTSEL[2:0]選擇),它同時給 ADC2 提供同步觸發。

注意: 不要在 2 個 ADC 上轉換相同的通道(兩個 ADC 在同一個通道上的采樣時間不能重疊)。在 ADC1 或 ADC2 的轉換結束時:

轉換的數據存儲在每個 ADC 接口的 ADC_JDRx 寄存器中。

當所有 ADC1/ADC2 注入通道都被轉換時,產生 JEOC 中斷(若任一 ADC 接口開放了中斷)。

注: 在同步模式中,必須轉換具有相同時間長度的序列,或保證觸發的間隔比 2 個序列中較長的序列長,否則當較長序列的轉換還未完成時,具有較短序列的 ADC 轉換可能會被重啟。

wKgZO2g2o22AY13wAADmyXUIpIQ016.png

在 4 個通道上的同步注入模式

4.2 同步規則模式

此模式在規則通道組上執行。外部觸發來自 ADC1 的規則組多路開關(由 ADC1_CR2 寄存器的EXTSEL[2:0]選擇),它同時給 ADC2 提供同步觸發。

注意: 不要在 2 個 ADC 上轉換相同的通道((兩個 ADC 在同一個通道上的采樣時間不能重疊)。在 ADC1 或 ADC2 的轉換結束時:

產生一個 32 位 DMA 傳輸請求(如果設置了 DMA 位),32 位的 ADC1_DR 寄存器內容傳輸到SRAM 中,它上半個字包含 ADC2 的轉換數據,低半個字包含 ADC1 的轉換數據。

當所有 ADC1/ADC2 規則通道都被轉換完時,產生 EOC 中斷(若任一 ADC 接口開放了中斷)。

注: 在同步規則模式中,必須轉換具有相同時間長度的序列,或保證觸發的間隔比 2 個序列中較長的序列長,否則當較長序列的轉換還未完成時,具有較短序列的 ADC 轉換可能會被重啟。

wKgZO2g2o22AJz7OAAD7UzgNulE580.png

在 16 個通道上的同步規則模式

4.3 快速交叉模式

此模式只適用于規則通道組(通常為一個通道)。外部觸發來自 ADC1 的規則通道多路開關。外部觸發產生后:

ADC2 立即啟動并且ADC1 在延遲 7 個 ADC 時鐘周期后啟動如果同時設置了 ADC1 和 ADC2 的 CONT 位,所選的兩個 ADC 規則通道將被連續地轉換。ADC1產生一個EOC中斷后(由EOCIE使能),產生一個32位的DMA傳輸請求(如果設置了DMA位),ADC1_DR 寄存器的 32 位數據被傳輸到 SRAM,ADC1_DR 的上半個字包含 ADC2 的轉換數據,低半個字包含 ADC1 的轉換數據。

注意: 最大允許采樣時間<7 個 ADCCLK 周期,避免 ADC1 和 ADC2 轉換相同通道時發生兩個采樣周期的重疊。

wKgZPGg2o22AahdEAAB-m0JhyGA126.png

在 1 個通道上連續轉換模式下的快速交叉模式

4.4 慢速交叉模式

此模式只適用于規則通道組(只能為一個通道)。外部觸發來自 ADC1 的規則通道多路開關。外部觸發產生后:

ADC2 立即啟動并且 ADC1 在延遲 14 個 ADC 時鐘周期后啟動在延遲第二次 14 個 ADC 周期后 ADC2 再次啟動,如此循環。

注意: 最大允許采樣時間<14 個 ADCCLK 周期,以避免和下個轉換重疊。ADC1產生一個EOC中斷后(由EOCIE使能),產生一個32位的DMA傳輸請求(如果設置了DMA位),ADC1_DR 寄存器的 32 位數據被傳輸到 SRAM,ADC1_DR 的上半個字包含 ADC2 的轉換數據,低半個字包含 ADC1 的轉換數據。在 28 個 ADC 時鐘周期后自動啟動新的 ADC2 轉換。在這個模式下不能設置 CONT 位,因為它將連續轉換所選擇的規則通道。

注意: 應用程序必須確保當使用交叉模式時,不能有注入通道的外部觸發產生。

wKgZPGg2o26ABbltAACZxm0I7DA136.png

在 1 個通道上的慢速交叉模式

4.5 交替觸發模式

此模式只適用于注入通道組。外部觸發源來自 ADC1 的注入通道多路開關。

當第一個觸發產生時,ADC1 上的所有注入組通道被轉換。

當第二個觸發到達時,ADC2 上的所有注入組通道被轉換。

如此循環……

如果允許產生 JEOC 中斷,在所有 ADC1 注入組通道轉換后產生一個 JEOC 中斷。如果允許產生JEOC 中斷,在所有 ADC2 注入組通道轉換后產生一個 JEOC 中斷。當所有注入組通道都轉換完后,如果又有另一個外部觸發,交替觸發處理從轉換 ADC1 注入組通道重新開始。

wKgZPGg2o26Ac38uAADEnSM_uIo908.png

交替觸發:每個 ADC1 的注入通道組

如果 ADC1 和 ADC2 上同時使用了注入間斷模式:

當第一個觸發產生時,ADC1 上的第一個注入通道被轉換。

當第二個觸發到達時,ADC2 上的第一個注入通道被轉換。

如此循環……

如果允許產生 JEOC 中斷,在所有 ADC1 注入組通道轉換后產生一個 JEOC 中斷。如果允許產生JEOC 中斷,在所有 ADC2 注入組通道轉換后產生一個 JEOC 中斷。

當所有注入組通道都轉換完后,如果又有另一個外部觸發,則重新開始交替觸發過程。

wKgZO2g2o26AAWmCAAC2wp1qPpc953.png

交替觸發:在間斷模式下每個 ADC 上的 4 個注入通道

4.6 獨立模式

此模式里,雙 ADC 同步不工作,每個 ADC 接口獨立工作。

5 混合的規則

5.1 混合的規則/注入同步模式

規則組同步轉換可以被中斷,以啟動注入組的同步轉換。

注: 在混合的規則/注入同步模式中,必須轉換具有相同時間長度的序列,或保證觸發的間隔比 2 個序列中較長的序列長,否則當較長序列的轉換還未完成時,具有較短序列的 ADC 轉換可能會被重啟。

5.2 混合的同步規則+交替觸發模式

規則組同步轉換可以被中斷,以啟動注入組交替觸發轉換。圖 顯示了一個規則同步轉換被交替觸發所中斷。注入交替轉換在注入事件到達后立即啟動。如果規則轉換已經在運行,為了在注入轉換后確保同步,所有的 ADC(主和從)的規則轉換被停止,并在注入轉換結束時同步恢復。

注: 在混合的同步規則+交替觸發模式中,必須轉換具有相同時間長度的序列,或保證觸發的間隔比 2個序列中較長的序列長,否則當較長序列的轉換還未完成時,具有較短序列的 ADC 轉換可能會被重啟。

wKgZO2g2o26AaNxQAADiRbJNp7c554.png

交替+規則同步

如果觸發事件發生在一個中斷了規則轉換的注入轉換期間,這個觸發事件將被忽略。下圖示出了這種情況的操作(第 2 個觸發被忽略)。

wKgZPGg2o26AeD7kAAD3zl1DeAU889.png

觸發事件發生在注入轉換期間

5.3 混合同步注入+交叉模式

一個注入事件可以中斷一個交叉轉換。這種情況下,交叉轉換被中斷,注入轉換被啟動,在注入序列轉換結束時,交叉轉換被恢復。下圖是這種情況的一個例子。

注: 當 ADC 時鐘預分頻系數設置為 4 時,交叉模式恢復后不會均勻地分配采樣時間,采樣間隔是 8 個ADC 時鐘周期與 6 個 ADC 時鐘周期輪替,而不是均勻的 7 個 ADC 時鐘周期。

wKgZPGg2o26AB2gCAACTlXjiFkU407.png

交叉的單通道轉換被注入序列 CH11 和 CH12 中斷

6 溫度傳感器

溫度傳感器可以用來測量器件周圍的溫度(TA)。

溫度傳感器在內部和 ADC1_IN16 輸入通道相連接,此通道把傳感器輸出的電壓轉換成數字值。溫度傳感器模擬輸入推薦采樣時間是 17.1μs。當沒有被使用時,傳感器可以置于關電模式。

注意: 必須設置 TSVREFE 位激活內部通道:ADC1_IN16(溫度傳感器)和 ADC1_IN17(VREFINT)的轉換。溫度傳感器輸出電壓隨溫度線性變化,由于生產過程的變化,溫度變化曲線的偏移在不同芯片上會有不同(最多相差 45°C)。

內部溫度傳感器更適合于檢測溫度的變化,而不是測量絕對的溫度。如果需要測量精確的溫度,應該使用一個外置的溫度傳感器。

wKgZO2g2o26AKwRfAAC3DLM_-Fo048.png

溫度傳感器和 VREFINT 通道框圖

讀溫度

為使用傳感器:

1. 選擇 ADC1_IN16 輸入通道

2. 選擇采樣時間為 17.1μs

3. 設置 ADC 控制寄存器 2(ADC_CR2)的 TSVREFE 位,以喚醒關電模式下的溫度傳感器

4. 通過設置 ADON 位啟動 ADC 轉換(或用外部觸發)

5. 讀 ADC 數據寄存器上的 VSENSE 數據結果

6. 利用下列公式得出溫度

溫度(°C)={(V25-VSENSE)/Avg_Slope}+25

這里:

V25=VSENSE 在 25°C 時的數值

Avg_Slope=溫度與 VSENSE 曲線的平均斜率(單位為 mV/°C 或μV/°C)參考數據手冊的電氣

特性章節中 V25 和 Avg_Slope 的實際值。

注意: 傳感器從關電模式喚醒后到可以輸出正確水平的 VSENSE 前,有一個建立時間。ADC 在上電后也有一個建立時間,因此為了縮短延時,應該同時設置 ADON 和 TSVREFE 位

7 ADC中斷

規則和注入組轉換結束時能產生中斷,當模擬看門狗狀態位被設置時也能產生中斷。它們都有獨立的中斷使能位。

注: ADC1 和 ADC2 的中斷映射在同一個中斷向量上,而 ADC3 的中斷有自己的中斷向量

ADC_SR 寄存器中有 2 個其他標志,但是它們沒有相關聯的中斷:

JSTRT(注入組通道轉換的啟動)

STRT(規則組通道轉換的啟動)

中斷事件 事件標志 使能控制位
規則組轉換結束 EOC EOCIE
注入組轉換結束 JEOC JEOCIE
設置了模擬看門狗狀態位 AWD AWDIE

8 例程設計

8.1 ADC_AnalogWatchdog例程

1.初始化部分

// 延時函數初始化(由delay.h提供)
delay_init();

// UART配置函數
void UART_Configuration(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
    USART_InitTypeDef USART_InitStructure;

    // 使能USART1和GPIOA時鐘
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);

    // 配置TX引腳(PA9)為復用推挽輸出
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // 配置RX引腳(PA10)為浮空輸入
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // 配置串口參數:115200bps, 8位數據, 1位停止位, 無校驗
    USART_InitStructure.USART_BaudRate            = 115200;
    USART_InitStructure.USART_WordLength          = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits            = USART_StopBits_1;
    USART_InitStructure.USART_Parity              = USART_Parity_No;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode                = USART_Mode_Rx | USART_Mode_Tx;

    USART_Init(USART1, &USART_InitStructure);
    USART_Cmd(USART1, ENABLE);
}

// ADC配置函數
void ADC_Configuration(void)
{
    ADC_InitTypeDef  ADC_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;

    // 使能GPIOA和ADC1時鐘
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1, ENABLE);
    RCC_ADCCLKConfig(RCC_PCLK2_Div8);  // ADC時鐘=PCLK2/8(假設PCLK2=72MHz,ADC時鐘=9MHz)

    ADC_DeInit(ADC1);  // 復位ADC1配置

    // 配置ADC為獨立模式,單通道單次轉換
    ADC_InitStructure.ADC_Mode               = ADC_Mode_Independent;
    ADC_InitStructure.ADC_ScanConvMode       = DISABLE;  // 非掃描模式
    ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;  // 單次轉換模式
    ADC_InitStructure.ADC_ExternalTrigConv   = ADC_ExternalTrigConv_None;  // 軟件觸發
    ADC_InitStructure.ADC_DataAlign          = ADC_DataAlign_Right;  // 右對齊
    ADC_InitStructure.ADC_NbrOfChannel       = 1;  // 轉換通道數1
    ADC_Init(ADC1, &ADC_InitStructure);

    ADC_Cmd(ADC1, ENABLE);  // 使能ADC1

    // 配置NVIC中斷優先級
    NVIC_InitStructure.NVIC_IRQChannel                   = ADC1_2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  // 最高搶占優先級
    NVIC_InitStructure.NVIC_IRQChannelSubPriority        = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd                = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    // 配置ADC通道10(PA0),采樣時間239.5周期
    ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_239Cycles5);

    // 配置模擬看門狗:監測通道10,閾值范圍1024~2048(對應電壓0.825V~1.65V,假設VREF=3.3V)
    ADC_AnalogWatchdogSingleChannelConfig(ADC1, ADC_Channel_10);
    ADC_AnalogWatchdogThresholdsConfig(ADC1, 2048, 1024);
    ADC_AnalogWatchdogCmd(ADC1, ADC_AnalogWatchdog_SingleRegEnable);  // 使能單通道看門狗

    ADC_ITConfig(ADC1, ADC_IT_AWD, ENABLE);  // 使能模擬看門狗中斷

    // ADC校準(關鍵步驟,確保轉換精度)
    ADC_ResetCalibration(ADC1);
    while (ADC_GetResetCalibrationStatus(ADC1));
    ADC_StartCalibration(ADC1);
    while (ADC_GetCalibrationStatus(ADC1));
}
  • ?延時函數初始化:調用delay_init()函數,為后續的延時操作做準備。
  • ?UART 配置:UART_Configuration()函數用于配置 USART1,包含使能時鐘、設置 GPIO 引腳、初始化串口參數(如波特率、數據位、停止位等),并且使能串口。
  • ?ADC 配置:ADC_Configuration()函數對 ADC1 進行配置,具體操作有使能時鐘、設置 ADC 時鐘分頻、初始化 ADC 參數(如工作模式、轉換模式等)、配置模擬看門狗(設定監測通道和閾值)、使能模擬看門狗中斷以及進行 ADC 校準。

2.主循環部分

int main(void)
{
    RCC_ClocksTypeDef clocks;
    delay_init();

    UART_Configuration();
    ADC_Configuration();

    RCC_GetClocksFreq(&clocks);
    // 打印系統時鐘信息
    printf("n");
    printf("SYSCLK: %3.1fMhz, HCLK: %3.1fMhz, PCLK1: %3.1fMhz, PCLK2: %3.1fMhz, ADCCLK: %3.1fMhzn",
           (float)clocks.SYSCLK_Frequency / 1000000, (float)clocks.HCLK_Frequency / 1000000,
           (float)clocks.PCLK1_Frequency / 1000000, (float)clocks.PCLK2_Frequency / 1000000, (float)clocks.ADCCLK_Frequency / 1000000);

    printf("ADC Analog Watchdog Testn");
    printf("LTR: 1024, HTR: 2048n");

    // 主循環:周期性觸發ADC轉換
    while (1)
    {
        ADC_SoftwareStartConvCmd(ADC1, ENABLE);  // 軟件觸發ADC轉換
        delay_ms(200);  // 等待轉換完成并延時200ms
    }
}

在main函數的無限循環里,每隔 200ms 啟動一次 ADC 轉換。這樣做的目的是周期性地對 ADC 通道進行采樣。

3.中斷處理部分

// 模擬看門狗中斷處理函數
void ADC1_2_IRQHandler(void)
{
    ADC_ITConfig(ADC1, ADC_IT_AWD, DISABLE);  // 臨時禁用中斷,避免重復觸發

    if (SET == ADC_GetFlagStatus(ADC1, ADC_FLAG_AWD))  // 檢查模擬看門狗標志
    {
        ADC_ClearFlag(ADC1, ADC_FLAG_AWD);  // 清除中斷標志
        ADC_ClearITPendingBit(ADC1, ADC_IT_AWD);  // 清除中斷掛起位

        // 打印觸發中斷的ADC值(12位精度,范圍0~4095)
        printf("ADC Awd is Happened. Code Value = %d rn", ADC1->DR);
    }

    ADC_ITConfig(ADC1, ADC_IT_AWD, ENABLE);  // 重新使能中斷
}

ADC1_2_IRQHandler函數作為模擬看門狗中斷的處理函數。當 ADC 值超出預設的閾值范圍時,會觸發該中斷。在中斷處理過程中,先禁用中斷,接著清除中斷標志和掛起位,然后打印出觸發中斷時的 ADC 值,最后重新使能中斷。

9 下載驗證

9.1 ADC_AnalogWatchdog例程

實驗現象分析

系統啟動信息: 系統啟動后,會在串口輸出系統時鐘頻率信息,同時顯示正在進行 ADC 模擬看門狗測試以及預設的下限和上限。

ADC 轉換: 系統會每隔 200ms 啟動一次 ADC 轉換。若輸入到 ADC 通道 10 的電壓值處于 1024 - 2048 的范圍內,不會有額外信息輸出。

模擬看門狗觸發:當輸入到 ADC 通道 10 的電壓值超出 1024 - 2048 的范圍時,會觸發模擬看門狗中斷,在串口輸出觸發中斷時的 ADC 值。

持續運行: 系統會持續運行,不斷進行 ADC 轉換,并在需要時觸發模擬看門狗中斷。

wKgZO2g2o26AAj7GAAL8sp2RBFE327.png

WIZnet 是一家無晶圓廠半導體公司,成立于 1998 年。產品包括互聯網處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術,基于獨特的專利全硬連線 TCP/IP。iMCU? 面向各種應用中的嵌入式互聯網設備。

WIZnet 在全球擁有 70 多家分銷商,在香港、韓國、美國設有辦事處,提供技術支持和產品營銷。

香港辦事處管理的區域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2565

    文章

    52880

    瀏覽量

    766496
  • 單片機
    +關注

    關注

    6067

    文章

    44969

    瀏覽量

    649738
  • 以太網
    +關注

    關注

    41

    文章

    5628

    瀏覽量

    175682
  • adc
    adc
    +關注

    關注

    99

    文章

    6681

    瀏覽量

    548976
  • 數字轉換器
    +關注

    關注

    0

    文章

    239

    瀏覽量

    28084
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    第十W55MH32中斷應用概覽

    本章講述了W55MH32中斷應用,涵蓋異常類型、NVIC介紹、優先級定義與分組,闡述中斷編程三要點(使能中斷、配置 NVIC、編寫服務函數),并強調優先級分組設置注意事項。
    的頭像 發表于 05-22 17:07 ?979次閱讀
    <b class='flag-5'>第十</b>章 <b class='flag-5'>W55MH32</b>中斷應用概覽

    第十四章 USART——串口通訊

    本章介紹了USART串口通訊,含物理層(RS-232、TTL電平)、協議層(波特率、數據幀),及W55MH32的USART功能與應用。
    的頭像 發表于 06-14 16:30 ?908次閱讀
    <b class='flag-5'>第十四章</b> USART——串口通訊

    軟件定義無線電手冊,第十四

    軟件定義無線電手冊,第十四版。pentek公司出的資料。
    發表于 02-18 09:52

    基于AVR高性能單片機以太網接口設計

    隨著internet的發展和應用,嵌入式系統在網絡方面的應用技術也逐漸成熟。針對目前大量使用8位微控制器的嵌入式系統,采用ATMEL公司的高性能單片機ATMEGA64和10MB/S以太網控制芯片RTL8
    發表于 12-30 09:42 ?43次下載

    W5100在單片機實現以太網通信中的應用

    在此介紹了一種基于單片機W5100組合實現以太網通信的設計方法。采用以TCPdP協議為基礎的網絡解決方案。W5100是嵌入式以太網硬件協議
    發表于 04-24 15:13 ?153次下載
    <b class='flag-5'>W</b>5100在<b class='flag-5'>單片機</b>實現<b class='flag-5'>以太網</b>通信中的應用

    視頻_高速放大器設計指南 第十四

    視頻_高速放大器設計指南 第十四
    發表于 03-05 15:34 ?0次下載

    高性能單片機Mega64和10Mb/s以太網控制芯片,實現以太網接口設計方案

    微控制器選用高性能的AVR單片機Mega64,AVR是ATMEL公司結合了成熟的51系列和PIC系列單片機的優點而推出的高性能8位單片機,具
    發表于 09-29 16:25 ?5045次閱讀
    <b class='flag-5'>高性能</b><b class='flag-5'>單片機</b>Mega64和10Mb/s<b class='flag-5'>以太網</b>控制芯片,實現<b class='flag-5'>以太網</b>接口設計方案

    WIZnet高性能以太網單片機W55MH32重磅發布!

    WIZnet高性能以太網單片機W55MH32重磅發布!本文詳細解析了W55MH32芯片的高性能網絡處理能力與硬件資源,以及兩款
    的頭像 發表于 05-07 16:17 ?357次閱讀
    WIZnet<b class='flag-5'>高性能以太網</b><b class='flag-5'>單片機</b><b class='flag-5'>W55MH32</b>重磅發布!

    即刻啟程,踏上W55MH32高性能以太網單片機學習之路!

    即刻啟程,踏上W55MH32高性能以太網單片機學習之路!即刻開啟W55MH32學習之旅!本教系列程配套官方手冊與W55MH32L
    的頭像 發表于 05-07 18:51 ?322次閱讀
    即刻啟程,踏上<b class='flag-5'>W55MH32</b><b class='flag-5'>高性能以太網</b><b class='flag-5'>單片機</b>學習之路!

    第一章 W55MH32 高性能以太網單片機的學習方法概述

    本章介紹W55MH32的學習方法,建議先了解硬件資源,按基礎篇、入門篇循序漸進學習。參考兩份手冊,提供例程資料,還給出官、github 等學習資料查找渠道。讓我們一起踏上W55MH32高性能
    的頭像 發表于 05-26 09:07 ?62次閱讀
    第一章 <b class='flag-5'>W55MH32</b> <b class='flag-5'>高性能以太網</b><b class='flag-5'>單片機</b>的學習方法概述

    第二章 開發板與芯片介紹 詳解W55MH32芯片及開發

    本章介紹了W55MH32芯片及開發板。該芯片采用Cortex-M3內核,主頻216MHz,集成以太網功能,有L和Q兩種型號。配套開發板L-EVB功能豐富、Q-EVB為最小系統板,均含仿
    的頭像 發表于 05-26 09:19 ?351次閱讀
    第二章 <b class='flag-5'>開發</b>板與芯片介紹  詳解<b class='flag-5'>W55MH32</b>芯片及<b class='flag-5'>開發</b>板

    W55MH32高性能以太網單片機教程 第九章 窗口看門狗(WWDG)

    本章介紹了W55MH32的窗口看門狗(WWDG),其用于監測軟件故障,具可編程遞減計數器等特性。從寄存器、中斷喂狗和復位測試兩個程序例程進行講解。
    的頭像 發表于 05-27 10:26 ?308次閱讀
    <b class='flag-5'>W55MH32</b><b class='flag-5'>高性能以太網</b><b class='flag-5'>單片機</b>教程 第九章 窗口看門狗(WWDG)

    WIZnet W55MH32以太網單片機開發教程 第十一章 通用定時器(上篇

    本章介紹了W55MH32的通用定時器TIM2~TIM5,其由 16 位計數器等構成,具輸入捕獲等功能,有多種計數模式及時鐘選擇。對例程進行了講解并下載驗證,TIM9~14功能類似,詳見《W55MH32參考手冊》。
    的頭像 發表于 05-28 10:12 ?310次閱讀
    WIZnet <b class='flag-5'>W55MH32</b><b class='flag-5'>以太網</b><b class='flag-5'>單片機</b><b class='flag-5'>開發</b>教程 <b class='flag-5'>第十</b>一章 通用定時器(<b class='flag-5'>上篇</b>)

    WIZnet W55MH32以太網單片機開發教程第十一章 通用定時器(下篇)

    本章為W55MH32通用定時器的下篇,介紹了TIM_InputCapture 等 4 個程序設計例程,涉及輸入捕獲、PWM 輸出、中斷測試、觸摸檢測等功能和例程下載驗證情況,如串口輸出、波形檢測等。
    的頭像 發表于 05-28 10:48 ?341次閱讀
    WIZnet <b class='flag-5'>W55MH32</b><b class='flag-5'>以太網</b><b class='flag-5'>單片機</b><b class='flag-5'>開發</b>教程<b class='flag-5'>第十</b>一章 通用定時器(下篇)

    第十四章 ADC(下篇)

    文章介紹了基于W55MH32的三個ADC例程:ADC_Double雙模式同步采樣兩通道,ADC_Single單通道采樣,ADC_Vrefin
    的頭像 發表于 05-29 17:48 ?319次閱讀
    <b class='flag-5'>第十四章</b> <b class='flag-5'>ADC</b>(下篇)
    主站蜘蛛池模板: 欧美中出 | 自拍偷拍福利视频 | 婷婷激情亚洲 | 亚洲理论在线观看 | 天天色天天摸 | 中国业余老太性视频 | 久久男人视频 | 亚洲图片欧美色图 | 成人精品视频在线观看播放 | 日韩免费毛片全部不收费 | 欧美啪啪精品 | 狠狠色噜噜狠狠狠狠91 | 狠狠色噜噜狠狠狠狠 | 全部免费特黄特色大片农村 | 国产一区中文字幕 | 国产成人毛片亚洲精品不卡 | 亚洲第一区精品日韩在线播放 | 日本污视频 | 日韩一区二区在线观看 | 午夜黄色网 | 亚在线| 亚洲天天操 | 日本视频一区二区三区 | 每日最新avhd101天天看新片 | 四虎hu| 手机在线观看国产精选免费 | 欧美日操| 亚洲不卡在线播放 | 国产精品女丝袜白丝袜 | 久久天天躁狠狠躁夜夜2020一 | 一区二区三区视频 | 日本亚洲精品成人 | l欧美18一19sex性 | 免费两性的视频网站 | 手机看片神马午夜 | 婷婷中文字幕 | 一级一黄在线观看视频免费 | 狠狠干夜夜草 | 久久婷婷综合五月一区二区 | 欧美午夜在线观看 | 永久免费视频 |