久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6194|回復: 0
打印 上一主題 下一主題
收起左側

Nucleo-L031K6評測 硬件和軟件實驗

[復制鏈接]
跳轉到指定樓層
樓主
昨天收到蘇柚的評測通知,想必將要收到的板子應該是NUCLEO-L031K6吧。昨天找到nucleo-L031的官網,下了幾個資料。【NUCLEO-L031K6官網頁面】個人在意的有幾個資料:
1、【硬件手冊】 只有看懂硬件連接,才能更好的理解板子的設計和引腳的目的。
2、【Bom表】更簡潔的告訴板子中涉及的芯片
3、【STM32L0系列產品列表】這個表告訴你一些事實就是L0X1的產品不帶USB等,稍后我再說明。
4、【L31K6芯片主頁】請瀏覽這個主頁下載相關手冊,比如這個【芯片數據表】
5、【cubeL0主頁】對于HAL庫編程的用戶cubeL0是必須的。【cubeL0下載頁】
6、【ST-Link V2下載地址】這個想必大家都有


資料準備好,之后又幾個概念需要先Highlight一下:
1、時鐘頻率最大32MHZ,內核M0+
2、芯片封裝是LQFP32,不帶USB接口
3、帶一個LPUART接口,LPTIM接口
4、PA0口是完全的,從PA0-PA15
5、Flash:32K, RAM:8K ,EPROM:1K
6、SPI、I2C、UART、TIM等
7、自帶RTC晶振
8、ST-Link和nucleo64的主芯片毫無差別,還是芯片STM32F103CBT6來一張框圖表示一下這個產品的概況:


關于這個產品,我覺得最可惜的是不帶主芯片USB接口,這個也是幾乎所有nucleo的遺憾。對于nucleo64來說,芯片盡管沒有焊接出USB接口,好歹芯片是支持的。另外這些引腳也引出來了。可是對于這個芯片就很遺憾了。因為根本沒有呀。那么后期有沒有那種可能性來更換測試芯片吶。請看下圖:


和下圖:

再結合我在上面提供的產品列表,你會發現F0522:都有LQFP32 7*7*1.4封裝。估計多數引腳也是兼容的,關于這一點,后期還需要確認一下。
所以應該可以添加USB接口。
但是這仍然不夠完美,如果在后期的產品中不是一味的兼容Arduino的引腳,添加一些STM32真正有優勢的接口,那樣會更好。這是我在nucleo身上一直以來的遺憾。你可能會說,USB有什么大不了的。我告訴你,我本來想用這家伙做個邏輯分析儀和hacker硬件。想一想,把這個設備偽裝成一個USB-HID設備,插到電腦上很easy的做一些操作,那又多酷。哎,只能說: What a pity!
但是沒事,STM32已經給我們準備好了芯片,其它的就靠我們自己了。

在開始之前,硬件手冊需要細細研究一番。但是幸運的是板子小,元件也并不太多。
在電路分許中,我意向的原則是先看電源,再看時鐘和燒錄接口,最后看外圍元件和接口。
這次也不例外,開始了解一下電源吧。我一直認為Nucleo的電源設計堪稱典范。我用簡略的圖示來表示電源的流向。
VIN -->--> E5V -->]       [--->-->+3V3_ST_LINK{ST-Link主芯片U5供電}
                                                ]-->[
                        Vusb-->U5V-->]      [--->----->U5V_ST_LINK--->]
                                                                                                                         ]---> -->VO-->+3V3-->-->VDD-->磁珠->AVDD
                                                                                                             E5V -->]                                                        |
                                                                                                                                                                                 |/[目標芯片U2供電]
因為版面限制沒有提到+5V的位置,但是大家一看原理圖便知。大致可以從這個引腳對外輸出+5V

通常情況下電源的輸入位VIN和Vusb(micro-usb端口)。當通過ST-LINK調試時由Vusb提供整個片子的電源。也可以從提供外部提供電壓范圍較廣的電源。大致范圍參考LD1117S50TR 可知為。而同樣是是5V轉3.3V卻使用LD39050PU33R和LD3985M33R兩塊芯片。這各種的緣故需要看芯片手冊確定。前者的最大電流是500ma,后者是150ma。像平時我做設計時,一般就選大的。人家這是能省則省,這就是專業精神。當然更有可能是省板子空間吧,哈哈~~~肖特基二極管也使用了兩款:STPS2L30A和BAT60JFILM兩款芯片。應該也是基于電流、耐壓和體積的考量吧。(PS:手冊上的電流很奇怪)
另一點是ST-LINK的主芯片引腳PB15上連接的芯片,這次改變了。之前是個mos管,這次是一款名字為ST890CDR的芯片。這是一款官網稱作1.2 A current limited high side power switch with thermal shutdown的過熱保護電源開關。應該比之前一個簡單的mos管要安全一些。

另外板子上用到的所有芯片(我沒有一個一個查)應該都是ST生產的,這里要給意法半導體豎起大拇指。

這里先簡單的做個大體了解,靜等板子到吧。


一、硬件分析
1.1 老生常談之一觸即發話說三月七號,快遞小哥送來了期待已久的小板子。
這是逛ST論壇近一年收到的第一塊板子,甚是激動。
先上一張為拆裝的圖,盒子還是經典的nucleo塑料盒子的包裝。甚是簡介,可是不知這包裝能不能講解。好歹,咱nucleo也該有幾十萬套發給用戶吧。

包裝的大小相對于傳統的nucleo64沒有太大的變化,后來才發現這樣做的原因可能是為了展示外包裝上的信息吧。
但還好在評測之前已經提前了解了這塊板子,詳見我的上一篇帖子【寫在評測之前】。
這樣我就可以理性的評測這塊板子。首先是看看板子的大小。
有人說這筆arduino的nano還小,不行的是我手邊是一個國產的nano。請看一下大小,不知道官方的大小如何。

但是,老實說nucleo可是提供仿真調試的好吧。nano只有一個ft232虛擬出來的串口,除了能夠燒寫似乎沒什么用處。
從pcb板子的質量上,nucleo的設計制造難度不是一丁點。
在上一張和硬幣比大小的圖片,你就看出到底nucleo有多小

看見沒,比五毛錢小多了。我可沒用什么五毛錢的特效。這是貨真價實的小。
在盒子的包裝上印有mbed或者說arduino nano的接口信息,請看:

我確認是一樣的,所以設計者為了兼容簡單架構的avr也是蠻拼的。但是這里有一個問題是,為什么非要兼容Arduino的nano吶。
如果你注意瞧,你就會發現D0,D1和D3/4/5...什么的不在一起,而且順序是反的。想必這也是當年avr為了兼容之前的做出的妥協。咱完全不用這樣做。畢竟mbed有筆試Arduino,語法的復雜性和易用性都不在一個檔次。
老實說,這些年STM32如果做一個調查就會發現我們使用nucleo板用作mbed的設備比例一定非常少。我們購買或者使用nucleo板子的原因是它便宜,簡單易用。就像Discovery的板子,我們使用所謂的蝴蝶接口多嗎?
所以說我建議ST不放根據自己芯片和引腳的特色,設定一套自己的板子接口。這樣更方便開發者學習和使用。比如nucleo32/64/144的引腳和芯片特點制定三種引腳規則。引腳多的可以兼容引腳少的。使用這樣的方式,沒準能夠更好的讓用戶掌握STM32獨特的接口。怎么使用DMA,怎么使用更復雜的TIM,SDIO,LTDC如何使用。這樣開發者會根據接口安排自己的學習路徑,會不會更好吶?
上面只是我自己的看法,不知道各位蝴蝶粉沒有何看法?
在講L031K6拿出來的時候遇到點小麻煩,據你所知nucleo64板子比較大,靠兩邊的卡扣扣著時很容易就能取下。但是nucleo32卻不是,需要從板子的后邊用力,擠壓包裝后才能取出。為此我擅做主張給Nucleo發了個紅腰帶。見下圖:
     正面                                            


背面
正面是不是也挺好看,背面很實用一拉板子就出來了。【nucleo的設計師別打我】

然后就是連接上電腦了,出現兩個相關的設備枚舉。對了這次nucleo的USB口換成了micro-B的接口,之前的mini的。micro-B接口的線纜想必大家都不少吧,因為智能手機在type C之前主要就是這種標準的線。(Type A to micro-B)

另外在磁盤中添加了一個40kb的空間,應該是從f103片子的flash里面劃出來的。曾經有人寫了一篇如何通過編寫一個類似nucleo這樣的方式燒寫程序的文章,大家可以搜索一下。個人覺得這樣的方式挺好的。在details的文件中還可以看到板子或者固件燒寫的日期。


1.2 板子的設計
下面再來說說板子的設計,老實說我最贊嘆的是布線師的技術。自己平時線一多就選擇自動布線,然后取消布線根據布線的情況調整原件位置。接著再自動布線,如此反復之后。再手動布置一些主要的線,確認設定的規則之后再自動布線,后期對一些過孔和比較奇特的布線手動做一些調整。總感覺這樣的方法很不專業。不知道nucleo的設計師是如何搞得。起初我還以為他們會用六層板什么的,后來才發現他們用的是四層板。在官方的PCB圖紙上給出了明確的解釋,請看。

如果你看原理圖還會發現在電源層還根據電源的不同做出了一些分割。我覺得那些想學習繪制板子的,可以從這張圖開始。
圖紙給的是用Altium Designer繪制的,這也是許多朋友最初學習繪制板子時用的軟件。PCB板子或者說PCB工程做的非常專業,必須多大學老師用的正規的多。這套圖的原理圖分成了三張,第一張是總圖用于將兩塊原理圖連接成一張大的原理圖。同時也讓接口關系更加明顯。
電源的設計也很專業,朋友們注意一下官方對于電源的劃分和規則,在上一篇文章中我做了梳理,希望能幫到你。
另外BOM表原件也很全,官方實際上提供給大家一個設計參考的示例。
這里提供官方資料的下載,為了下到最新的資料,其實建議大家到官方搜索下載,這樣可以download一些自己需要的。
nucleo-32pins_bom.zip (33.55 KB, 下載次數: 13) nucleo-32pins_sch.zip (2.92 MB, 下載次數: 13)

1.3 芯片架構的變化(相對于自己熟悉的F401)
STM32L031K6是Cotex-M0+的架構,而F401是Cotex-M4F架構。兩者有區別是正常的。但是拋開內核不說外圍的變化還是很顯著的。下面提供兩兩張來自官方文檔上的架構圖,你會看出一些明顯的區別。在下面給給出自己看到的區別,朋友們還可以給點指點,讓我們找出一些其它的變化。
F401框圖

F103框圖



L031框圖


仔細觀察三幅框圖會發現GPIOA/B...等幾個接口在三種架構上的位置不同。
F401在AHB1總線上,F103在APB2上,L031在內核上直接相連。這三種連接方式有何區別,請高手給一個解釋。
我猜測直接將L系列單獨將GPIO摘出來是低功耗的考慮。我私下里看了一下L476和L162的框圖,發現這兩者的GPIO端口都很獨特。請高手給指教一下架構設計的要點和作用。

1.3 ADC變化說明在后面的實驗中我會用到ADC來做兩個實驗,所以先要了解一下ADC的架構。忽然發現這里ADC的架構還是有些變化的。
[1> 雙時鐘架構]
在L031中ADC可以配置兩個時鐘,一個來自PCLK,被稱作同步模式,另一個時鐘源來自HSI,稱為異步模式。兩者的時鐘源都可以分頻,見下圖方便理解。

這兩個時鐘源的作用在參考手冊中有介紹,大致的意思是:
1> 同步模式下ADC模塊的時鐘是有APB驅動的,在定時器timer觸發時可以保證時鐘的同步。
2> 異步模式下,不能保證于觸發源時鐘的同步,但是可以獲得更高的時鐘頻率。

1.4 低功耗部分
在外圍接口中有兩個比較明顯的低功耗接口,那就是LPUART和LPTIM接口。此外M0+的多種工作模式也保證了低功耗。
這里列舉一下L031為了保證低功耗采取的策略。
1、采用動態的電壓定標策略:
                                    1> VDD在 [1.71-3.6V] 范圍,CPU運行頻率高達32MHZ
                                    2> VDD在 [full range] 范圍,高達16MHZ頻率
                                    3> VDD在 [full range] 范圍,高達4.2MHZ頻率
2、支持七種低功耗模式:
                                    1> sleep mode :CPU停止,外圍可以繼續工作,也可以喚醒CPU。
                                    2> Low-Power run mode:
                                    3> Low-Power sleep mode:
                                    4> Stop mode with RTC
                                    5> Stop mode without RTC
                                    6> Standby mode with RTC: standby mode是功耗最低的模式
                                    7> Standby mode without RTC
這幾種模式的介紹可以看STML031手冊的第16頁。

再來談一談LPUART和LPTIM吧。首先看上面的框圖可以了解,兩者都掛在APB1上。在這個時鐘源下還掛有RTC和IWDG。
LPUART可以在stop模式下喚醒CPU,在32.768khz時仍然能夠提供高達9600的波特率,這種模式在低功耗通訊時尤其重要。
LPTIM也可以在stop模式下喚醒設備。
其余的不同需要再細細研究一下。
因為本篇篇幅太長,后面還有一篇評測從軟件和實驗上做一些評測。


二、軟件實驗
2.1 ADC讀取實驗
[1   ADC介紹]
[1.1> 讀取的三種模式]
ADC讀取的方式有三種:一種是所謂的連續模式,另一種是不連續模式,還有一種是單次模式。只看上面的名字似乎并不能搞清楚每種都是什么意思。假定我們要使用CH0,3,7這三個通道讀取ADC的數據。在采集過程中采集方向不發生改變,假定是升序采集。我通過軟件觸發或者硬件觸發來啟動ADC轉換,在下面我直接稱這個過程叫做“觸發采集”。
連續模式的意思是,在觸發采集一次之后,ADC模塊自動按照0-3-7-0-3-7的順序循環采集者三個通道的數據。在每個通道采集完觸發EOC事件,每一遍完成之后觸發EOSEQ事件。
單次模式是,觸發采集一次之后,ADC模塊自動按照0-3-7的順序采集三個通道的數據。采集完成之后停止運行,直到才一次觸發采集來引起對ADC的采集。相對于上面的區別是,新的一輪采集需要新的觸發采集事件。
不連續模式下,每次觸發采集動作執行一個通道的觸發。
因此你可以看出ADC的每個通道事實上不能單獨操作的。如果你這段時間使用通道0和1,下一段時間只是用通道2和3.那么你最好是在發生改變的時候重新配置ADC。在這種情況下cubemx就無能為力了,你只能先按照前者配置,在程序中在編寫這部分改變的代碼。
對了每次的EOC和EOSEQ都需要軟件來復位,否則不能執行下一次采集。詳情見參考手冊RM0377中ADC部分.
[1.2> 數據處理的模式]
每一次轉換的結果都存儲在ADC_DR這個16位寄存器里面,因為ADC的分辨率和對齊方向可以配置,所以具體的數據含義可以參考自己的設置。
下圖很形象的給出數據的排列含義:

因為所有通道的數據采集是按照順序執行的,而且數據采集的結果如果不讀取可能會被overwrite或者觸發overrun信號。如果及時的從ADC_DR中讀出數據并放到正確的位置是很重要的。采用DMA是一種方法,當然另一種是不采用DMA。在轉換速度很慢切沒有其他任務需要緊急執行時可以不適用DMA,而是用軟件輪訓的方式來檢測EOC,不過這種方式還是有潛在的overrun的危險。還有一種不用DMA的方式是將OVERMOD設置成1,然后每次讀取ADC_DR里面的數據時只獲取最新的數據,數據的通道可能是轉換序列中的任何一個,這種方式在一些特殊場景中有用。最好用的方式當然是使用DMA了。但是采用DMA的方法技術也稍微復雜,可使用one-shot和circular模式。前者每完成DMA transfer之后就停止ADC的掃描序列等動作,后者則更適合完成一系列的ADC轉換。
[1.3> 時鐘的配置]
在上個帖子中簡單介紹了一下ADC時鐘來源的問題。除了哪里介紹的同步和異步模式外,還需要注意的是:對于STM32L0 ADC模塊的最高時鐘頻率是16MHZ,因此在配置時鐘時無論同步異步在分頻后的頻率一定不能超過這個頻率。那異步模式來說,頻率是由HSI提供的而L031K6的HSI頻率是16MHZ。這個數據時剛好的。當然你還可以2/4/8分頻,至于同步模式就一定要注意分頻的數目。
  1.     /* Blocking mode: Polling */
  2.     HAL_StatusTypeDef    HAL_ADC_Start(ADC_HandleTypeDef* hadc);
  3.     HAL_StatusTypeDef    HAL_ADC_Stop(ADC_HandleTypeDef* hadc);
  4.     HAL_StatusTypeDef    HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);                 
  5.     HAL_StatusTypeDef    HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeout);
  6.                         
  7.     /* Non-blocking mode: Interruption */
  8.     HAL_StatusTypeDef    HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc);
  9.     HAL_StatusTypeDef    HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc);
  10.                         
  11.     /* Non-blocking mode: DMA */
  12.     HAL_StatusTypeDef    HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);
  13.     HAL_StatusTypeDef    HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc);
復制代碼
上面是stm32Ll0xx_hal_adc.h中的一部分代碼。上面介紹了三種讀取方式。一種是堵塞式的,另外兩種是非堵塞式的。堵塞式的顧名思義是ADC讀取完之后返回讀取的數據。非堵塞式的就是發送讀取命令之后,等待讀取完成將數據返回給你。非堵塞式的也分為兩類。一種是中斷式的,另一種是DMA方式。這就涉及到處理完成之后如何得到數據。

[2   實驗介紹]
我比較喜歡使用HAL變成,因為ST的新硬件都是以HAL作為主要的驅動平臺。ADC的使用除了按照我上面的介紹來設置外,還需要對API做一些簡單的了解。稍后可以看我在cube里面的配置,但是程序對其配置有些修改。在實驗時遇到了一些問題。在下面的介紹中做了詳細介紹。
首先,我在PA1、PA3上接上搖桿的XY軸電位器,另外打開了溫度采集通道。當然其它硬件連接也就緒了。通過UART2輸出信息,但是因為SB3沒有接上0歐姆電阻所以通過STlink的USB并不能輸出直接輸出信息。所以如果需要開通ST-Link的VCP通道需要焊接SB3上的電阻。具體可以看原理圖。
下面是連接的硬件,硬件原理圖可以看下一個實驗的文檔,因為硬件連接差別不大。
實驗內容就是通過串口將ADC的數據輸出,ADC采樣通過DMA循環采樣,但是UART輸出和LD3閃動同步,大約200毫秒輸出一次。下面是實驗場景圖



這里說明一下實驗過程中遇到的幾個問題。第一個問題是溫度的ADC數據采集之后如何處理成溫度。第二個是DMA的數據如何接受,還有就是實驗結束的標志是什么。本實驗沒有用到,按道理應該是我需要的數據轉換結束后,通過中斷來調用ADC顯示任務。第三個問題是ADC影響HAL_Delay()。第四個是ADC的串擾問題。前兩個問題不涉及具體實驗現象問題,可以通過搜索RM文檔找相關關鍵字找到解決辦法。這里具體講后兩個問題。
第三個問題起初的原因是這樣的我的配置打開了ADC的continuous模式,就是說我的ADC是采集完一輪之后再去轉換。DMA的優先級我設置的比systick中斷高.ADC的一直運行,ADC轉換的結果一直調用DMA處理新數據。所以Systick一直來不及處理Systick的中斷處理函數。所以最終的現象是我的LED一直處于亮起的狀態,而不閃動。在檢查代碼是我發現程序一直回調Delay的函數。解決辦法就是我在閃動一次LED時采集一次,然后顯示。當然這樣做只是為了測試ADC,后期我上RTOS的時候再設計一種更好的調用方式。
第三個問題是第二路ADC對溫度采集有串擾。具體表現是第一路搖桿左右移動時,不影響第二路輸出,本身正常。但是第二路在前后移動時,影響溫度傳感器的輸出值,而且變化很大。我之前在用Arduino時遇到過這種問題,但是沒有遇到過只是其中一路對下一路影響的。但是還是決定是串擾問題,我自己也嘗試修改采樣時間,但改動不大,溫度的輸出值變化還是有。直到我找到官方的一篇文章介紹之后,才發現自己的設置還是太小。
我將文檔上傳,請看: 掃描模式下 ADC 發生通道間串擾.pdf (148.99 KB, 下載次數: 5)
除了修改采樣時間還可以修改時鐘,我最早是DIV1的現在改成DIV8,采樣時間不用太大也可以。具體看代碼。
然后我懷疑STM32內部的溫度傳感器內阻太大,而我外部的搖桿采樣內阻很小,所以就產生了這種現象。

對了這是代碼: ADC_DMA_T1.7z (1.03 MB, 下載次數: 8)

2.2 freeRTOS實驗
[1    freeRTOS實驗]
[1.1> 實驗描述]下面是用CAD繪制的硬件連接圖,分圖層。為了方便沒有CAD的朋友,我轉成了PDF格式,用adobe reader可以關閉和打開圖層。
先上兩張樣圖,然后附上PDF和CAD 的附件。這兩張樣圖分別提供了mbed接口和引腳連接信號圖。在提供的PDF和CAD中都有圖層的概念,你可以通過選擇開關圖層。
      
PDF文件
L032KG-Model.pdf (116.81 KB, 下載次數: 5)
CAD文件,2013版本的。因為格式問題,故封裝成壓縮包格式。
L032KG.rar (43.11 KB, 下載次數: 5)


[1.2> 線程及通訊描述]
這個上系統的變成重點是安排線程中斷和各種數據結構,思想是重要的。平臺有時候沒有那么具有特定性,畢竟當前的RTOS系統說到底性能也許有差別,但是通常支持的技術是一致的。對于編程者來講,思想是更重要的。所以我們才會看到ARM設法用CMSIS-RTOS來統一化各個操作系統的接口。從長期來看,我是看好這種變化的,但是目前選定一種RTOS是很有必要的,畢竟工作有時是需要熟練應用所學的技術的。好了廢話不多說,看看我的線程調度和安排吧。
-

[2    RTX實驗對比] (保留篇幅,之后再添加)

[3    freeRTOS不用CMSIS-RTOS會不會更合理] (保留篇幅,之后再添加)

2.2 低功耗模式實驗(保留篇幅,之后再添加)


其實這篇幾天前就也開始寫了,但是因為白天要去面試,所以斷斷續續。中途還去ST深圳參加了藍牙的培訓。和一起培訓的小伙伴聊天。他說之前的培訓都是ST自己辦的,干貨較多沒有板子送。可是這次是聚碼的小哥講的,送了塊板子,干貨很少,因為他不愿意講怎么用st的blueNRG,只是簡單講了自己的API怎么用。
不過感謝ST了,學習還要靠自己

評分

參與人數 1黑幣 +5 收起 理由
luy3728000 + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费视频 | www.久久99 | 国产精品久久久av | 欧美久久电影 | 在线观看免费av片 | 欧美精品在线一区二区三区 | 欧美一级免费 | 一区二区三区四区免费视频 | 日韩视频一区在线观看 | 欧美日韩一区二区三区四区 | 亚洲国产精品成人 | 国产不卡一 | 日本aa毛片a级毛片免费观看 | 亚洲第一福利网 | 久久国产精品久久久久 | 永久精品 | 午夜视频在线免费观看 | 国产免费va | 国产偷录叫床高潮录音 | 亚洲精品一区二区三区四区高清 | 中文字幕高清一区 | 国产一级在线观看 | 国产九九精品视频 | 自拍视频网| 国产欧美久久精品 | 国产视频1区 | 狠狠色狠狠色综合日日92 | 国产精品福利网站 | 天天操天天射综合网 | 精品久久久久久亚洲综合网 | 欧美va大片| 久草视频在线播放 | 国产欧美日韩综合精品一区二区 | 四虎av电影 | 午夜av免费 | 国产精品视频观看 | 午夜精品一区 | 免费视频99 | 成人影院午夜 | 欧美老少妇一级特黄一片 | 日韩精品成人一区二区三区视频 |