一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

第十五章 DAC (下篇)

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

掃碼添加小助手

加入工程師交流群

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

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

在封裝規(guī)格上,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接口,其他參數(shù)保持一致,性價比優(yōu)勢顯著,尤其適合網(wǎng)關模組等對空間布局要求較高的場景。緊湊的尺寸和精簡化外設配置,使其能夠在有限空間內(nèi)實現(xiàn)高效的網(wǎng)絡連接與數(shù)據(jù)交互,成為物聯(lián)網(wǎng)網(wǎng)關、邊緣計算節(jié)點等緊湊型設備的理想選擇。 同系列還有QFN100封裝的W55MH32L版本,該版本擁有更豐富的外設資源,適用于需要多接口擴展的復雜工控場景,軟件使用方法一致。更多信息和資料請進入http://www.w5500.com/網(wǎng)站或者私信獲取。

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

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

若您想獲取芯片和開發(fā)板的更多詳細信息,包括產(chǎn)品特性、技術參數(shù)以及價格等,歡迎訪問官方網(wǎng)頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。

wKgZO2gbOfaAVPzkACJSygzv-rI600.png

第十五章 DAC (下篇)

1 程序設計

1.1 DAC_OutDMASineWave例程

此例程的主要功能是借助 W55MH32 的 DAC(數(shù)模轉換器)輸出軟件正弦波,并且通過串口輸出系統(tǒng)時鐘信息。下面是其主要工作流程:

1.初始化配置

?使能系統(tǒng)時鐘,配置串口(波特率 115200)輸出調試信息。

?初始化 GPIO、DAC(通道 1/2)、定時器 TIM2(周期 為20個時鐘周期)及 DMA(循環(huán)模式)。

2.正弦波生成

void DMA_Configuration(void)
{
    DMA_InitTypeDef DMA_InitStructure;
    // 使能DMA2時鐘
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);

    // 配置DMA通道4(DAC2)
    DMA_InitStructure.DMA_PeripheralBaseAddr = DAC2_DHR12RD_ADDRESS; // DAC2寄存器地址
    DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&DualSine12bit; // 數(shù)據(jù)源:雙通道數(shù)據(jù)數(shù)組
    DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST; // 內(nèi)存到外設
    DMA_InitStructure.DMA_BufferSize = POINT_NUM; // 傳輸32點
    DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; // 循環(huán)模式,持續(xù)輸出
    DMA_Init(DMA2_Channel4, &DMA_InitStructure);
    DMA_Cmd(DMA2_Channel4, ENABLE);

    // 配置DMA通道3(DAC1,參數(shù)與通道4相同)
    DMA_InitStructure.DMA_PeripheralBaseAddr = DAC1_DHR12RD_ADDRESS;
    DMA_Init(DMA2_Channel3, &DMA_InitStructure);
    DMA_Cmd(DMA2_Channel3, ENABLE);
}

?通過 12 位正弦波數(shù)據(jù)數(shù)組Sine12bit(32 點),生成雙通道 DAC 數(shù)據(jù)DualSine12bit。

3.工作流程

?TIM2 以設定周期觸發(fā) DMA,將正弦波數(shù)據(jù)循環(huán)傳輸至 DAC,驅動模擬輸出。

?主循環(huán)保持運行,實現(xiàn)連續(xù)波形輸出。

4.調試功能

?串口輸出系統(tǒng)各時鐘頻率,便于調試。

1.2 DAC_OutNoiseWave例程

這個例程的主要作用是利用 W55MH32 的 DAC(數(shù)模轉換器)輸出噪聲波信號,同時通過串口輸出系統(tǒng)時鐘信息以方便調試。以下是具體作用的詳細闡述:

1. 系統(tǒng)初始化與信息輸出

?時鐘與延時初始化:開啟 CRC 時鐘,進行延時初始化,為后續(xù)操作提供時鐘基礎。

?串口通信配置:將串口波特率設置為 115200,對 GPIO 和 USART 進行初始化,實現(xiàn)串口通信功能。

?時鐘信息輸出:獲取系統(tǒng)時鐘頻率,把系統(tǒng)時鐘、HCLK、PCLK1、PCLK2 和 ADCCLK 的頻率信息通過串口輸出,方便開發(fā)人員了解系統(tǒng)時鐘狀態(tài)。

2.噪聲波信號輸出

 // GPIO配置函數(shù)(DAC輸出引腳)
void GPIO_Configuration(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;

    // 使能GPIOA時鐘(DAC通道1/2對應PA4/PA5)
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    // 配置PA4和PA5為模擬輸入模式(內(nèi)部連接DAC輸出)
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_4 | GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AIN; // 模擬輸入模式(無需上拉/下拉)
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

// DAC配置函數(shù)(噪聲波模式)
void DAC_Configuration(void)
{
    DAC_InitTypeDef DAC_InitStructure;

    // 使能DAC時鐘(APB1總線)
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

    // 配置DAC通道1和2為噪聲波模式
    DAC_InitStructure.DAC_Trigger                      = DAC_Trigger_Software; // 軟件觸發(fā)(非自動觸發(fā))
    DAC_InitStructure.DAC_WaveGeneration               = DAC_WaveGeneration_Noise; // 啟用噪聲波生成
    DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_4095; // 噪聲波幅度(全范圍)
    DAC_InitStructure.DAC_OutputBuffer                 = DAC_OutputBuffer_Enable; // 使能輸出緩沖(提高驅動能力)

    // 初始化DAC通道1和2
    DAC_Init(DAC_Channel_1, &DAC_InitStructure);
    DAC_Init(DAC_Channel_2, &DAC_InitStructure);

    // 使能DAC通道
    DAC_Cmd(DAC_Channel_1, ENABLE);
    DAC_Cmd(DAC_Channel_2, ENABLE);

    // 設置初始輸出數(shù)據(jù)(12位左對齊,值為0x7FF0,即32784/4096=8.0V?需根據(jù)參考電壓調整)
    DAC_SetChannel1Data(DAC_Align_12b_L, 0x7FF0); // 通道1初始值
    DAC_SetChannel2Data(DAC_Align_12b_L, 0x7FF0); // 通道2初始值
}

 

?GPIO 配置:使能 GPIOA 時鐘,把 PA4 和 PA5 引腳配置成模擬輸入模式,作為 DAC 的輸出引腳。

?DAC 配置:使能 DAC 時鐘,將 DAC 通道 1 和通道 2 配置成軟件觸發(fā)模式,并且設置為噪聲波生成模式。同時,開啟輸出緩沖,把初始數(shù)據(jù)設置為 0x7FF0。

?噪聲波輸出:在主循環(huán)里,持續(xù)對 DAC 通道 1 和通道 2 進行軟件觸發(fā),從而讓 PA4 和 PA5 引腳持續(xù)輸出模擬的噪聲波信號。

3. 輸出重定向

?實現(xiàn)SER_PutChar和fputc函數(shù),把printf函數(shù)的輸出重定向到串口,方便開發(fā)人員通過串口輸出調試信息。

綜上所述,該例程可用于測試和驗證 W55MH32 的 DAC 模塊輸出噪聲波的功能,也可作為開發(fā)基于 DAC 輸出噪聲波應用的基礎代碼。

1.3 DAC_OutTriangleWave例程

該例程通過初始化系統(tǒng)時鐘、串口、GPIO和DAC,利用軟件觸發(fā)DAC生成并輸出雙通道三角波信號,同時將系統(tǒng)時鐘信息通過串口輸出,用于驗證DAC功能和作為信號源開發(fā)基礎。以下是具體作用的詳細闡述:

1.初始化配置

?使能系統(tǒng)時鐘并配置串口(波特率 115200)輸出系統(tǒng)時鐘頻率(SYSCLK/HCLK/PCLK1/PCLK2/ADCCLK)。

?初始化 GPIOA 的 PA4/PA5 為模擬輸入模式,作為 DAC 輸出引腳。

2.三角波生成配置

// DAC配置函數(shù):啟用硬件三角波生成
void DAC_Configuration(void)
{
    DAC_InitTypeDef DAC_InitStructure;
    // 使能DAC時鐘(APB1總線)
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
    
    // 配置DAC為軟件觸發(fā)模式,啟用三角波生成
    DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software; // 軟件觸發(fā)(需手動調用觸發(fā)函數(shù))
    DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_Triangle; // 三角波模式
    DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_2047; // 幅度設置為2047(半滿量程,12位)
    DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; // 使能輸出緩沖(增強驅動能力)
    
    // 初始化DAC通道1和2
    DAC_Init(DAC_Channel_1, &DAC_InitStructure);
    DAC_Init(DAC_Channel_2, &DAC_InitStructure);
    
    // 使能DAC通道
    DAC_Cmd(DAC_Channel_1, ENABLE);
    DAC_Cmd(DAC_Channel_2, ENABLE);
    
    // 設置初始數(shù)據(jù)為0(三角波起點)
    DAC_SetChannel1Data(DAC_Align_12b_L, 0); // 12位左對齊,值為0
    DAC_SetChannel2Data(DAC_Align_12b_L, 0);
}

?DAC 配置為軟件觸發(fā)模式,啟用硬件三角波生成功能。

?設置三角波幅度為 2047(12 位半滿量程,對應約 1.65V 峰峰值),輸出緩沖使能。

?初始通道數(shù)據(jù)設為 0,作為波形起點。

3.工作流程

int main(void)
{
    // ...(初始化代碼略)...
    
    printf("DAC Out Triangle Wave Test.n"); // 打印測試提示
    
    while (1)
    {
        // 軟件觸發(fā)DAC通道1和2轉換(生成三角波)
        DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);
        DAC_SoftwareTriggerCmd(DAC_Channel_2, ENABLE);
        
        // 循環(huán)觸發(fā),頻率由主循環(huán)速度決定(需結合延時調整,當前為無延時快速觸發(fā))
    }
}

?主循環(huán)無限觸發(fā) DAC 軟件轉換,PA4/PA5 引腳輸出連續(xù)三角波信號(0→2047→0 循環(huán))。

?三角波頻率由軟件觸發(fā)速率決定,需通過示波器觀察波形。

4.調試功能

?串口輸出系統(tǒng)時鐘信息,便于驗證硬件配置。

2 下載驗證

1.1 DAC_OutDMASineWave例程

程序運行后,首先會通過串口輸出系統(tǒng)時鐘相關頻率信息,告知用戶SYSCLK、HCLK、PCLK1、PCLK2和ADCCLK的頻率,同時提示“DAC Out Software Sine Wave Test.”信息:

wKgZPGg2uY2AGfApAAByEj1jhyI665.png

接著,GPIO、DAC、定時器和DMA完成配置,定時器TIM2按照設定的周期觸發(fā),借助DMA將正弦波數(shù)據(jù)循環(huán)傳輸?shù)紻AC通道1和通道2,使PA4和PA5引腳持續(xù)輸出模擬的正弦波信號,之后程序進入無限循環(huán)以維持正弦波的穩(wěn)定輸出:

wKgZPGg2uYiAL8B3AAC3EVCdbM8239.png

1.2 DAC_OutNoiseWave例程

程序運行后,首先通過串口輸出系統(tǒng)各時鐘頻率信息(如SYSCLK、HCLK等),并提示“DAC Out Noise Wave Test.”:

wKgZPGg2uYiAdgu5AABvhHBXtf4279.png

隨后,PA4和PA5引腳持續(xù)輸出由DAC內(nèi)部LFSR生成的12位隨機噪聲波信號,電壓值在0-3.3V范圍內(nèi)無規(guī)律波動。主循環(huán)通過軟件觸發(fā)DAC連續(xù)轉換,保持波形輸出,需通過示波器觀察模擬信號變化:

1.3 DAC_OutTriangleWave例程

程序運行后,首先通過串口輸出系統(tǒng)時鐘頻率信息,包SYSCLK、HCLK、PCLK1、PCLK2和ADCCLK的頻率,同時提示進行DAC輸出三角波測試:

wKgZO2g2uYiAIlBNAABq_mdlROg668.png

之后,GPIO和DAC完成配置,主循環(huán)中持續(xù)對DAC通道1和通道2進行軟件觸發(fā),使得PA4和PA5引腳持續(xù)輸出模擬三角波信號,該信號幅度為2047(對應12位),并以初始值0為起點進行周期性的上升和下降變化,可使用示波器觀察到該連續(xù)穩(wěn)定的三角波波形:

wKgZO2g2uYiAXETWAACzxvRRJ44191.png

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

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

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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6067

    文章

    44992

    瀏覽量

    650505
  • 物聯(lián)網(wǎng)

    關注

    2931

    文章

    46251

    瀏覽量

    392599
  • dac
    dac
    +關注

    關注

    44

    文章

    2411

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    第十五章 DMA

    本章介紹DMA(直接存儲器存?。?,其可在不占用CPU的情況下搬數(shù)據(jù),支持多種傳輸方向,含控制器、通道等配置及相關實驗代碼。
    的頭像 發(fā)表于 06-14 16:32 ?640次閱讀
    <b class='flag-5'>第十五章</b> DMA

    第十五章 DAC (上篇)

    文章介紹了基于W55MH32的DAC(數(shù)字/模擬轉換器)上篇內(nèi)容,其為12位轉換器,有2通道,支持8/12位模式、DMA等,具噪聲和三角波生成等功能,還介紹了DAC_OutAudio例程的配置與驗證。
    的頭像 發(fā)表于 05-28 15:07 ?501次閱讀
    <b class='flag-5'>第十五章</b> <b class='flag-5'>DAC</b> (上篇)

    《DNK210使用指南 -CanMV版 V1.0》第十五章 按鍵中斷實驗

    第十五章 按鍵中斷實驗 本章實驗將介紹如何使用CanMV讓Kendryte K210通過中斷的方式獲取板載按鍵的狀態(tài)。通過本章的學習,讀者將學習到在CanMV下Kendryte K210的GPIO
    發(fā)表于 10-12 09:20

    至芯科技之a(chǎn)ltera 系列FPGA教程 第十五篇 安裝驅動

    至芯科技之a(chǎn)ltera 系列FPGA教程 第十五篇 安裝驅動
    發(fā)表于 08-11 03:34

    視頻詳解:上海尤老師verilog入門到實戰(zhàn)第十五

    本帖最后由 春哥哥 于 2016-10-10 17:48 編輯 上海尤老師verilog入門到實戰(zhàn)第十五課——無線通信中的升采樣過程中的頻譜搬遷過程;百度云網(wǎng)盤鏈接后綴:/s/1i5kCpXb,加群討論252520964,307510678
    發(fā)表于 10-10 10:42

    基于RFID和MySQL實現(xiàn)小區(qū)門禁系統(tǒng)

    第十五章 用RFID+MySQL實現(xiàn)小區(qū)門禁系統(tǒng)(RFID522+ESP8266-12N+1602LCD)(Arduino邊做邊學:從點亮Led到物聯(lián)網(wǎng))
    發(fā)表于 06-24 08:26

    「正點原子Linux連載」第十五章按鍵輸入試驗

    1)實驗平臺:正點原子Linux開發(fā)板2)摘自《正點原子I.MX6U嵌入式Linux驅動開發(fā)指南》關注官方微信號公眾號,獲取更多資料:正點原子第十五章按鍵輸入試驗 前面幾章試驗都是講解
    發(fā)表于 12-21 12:11

    第十五屆智能車入門淺談 精選資料分享

    @TOC第十五屆智能車入門淺談寫博客原因這次第十五屆全國智能車大賽已經(jīng)結束了,對于我而言,確實是我大學中一個不可多得的經(jīng)歷,我希望我的這段經(jīng)歷可以保存下來通過博客的形式,同時可以對于其他人有幫助
    發(fā)表于 07-28 06:02

    第十五講 組合邏輯電路的分析方法和設計方法

    第十五講 組合邏輯電路的分析方法和設計方法 6.1概述組合邏輯電路:定義構成電路特點6.2.1組合邏輯電路的分析方法
    發(fā)表于 03-30 16:21 ?4980次閱讀
    <b class='flag-5'>第十五</b>講 組合邏輯電路的分析方法和設計方法

    模擬電路網(wǎng)絡課件 第十五節(jié):單級放大電路的瞬態(tài)響應

    模擬電路網(wǎng)絡課件 第十五節(jié):單級放大電路的瞬態(tài)響應 3.8 單級放大電路的瞬態(tài)響應
    發(fā)表于 09-17 10:18 ?912次閱讀
    模擬電路網(wǎng)絡課件 <b class='flag-5'>第十五</b>節(jié):單級放大電路的瞬態(tài)響應

    第十五屆全國大學生機器人大賽ROBOCON比賽規(guī)則

    第十五屆全國大學生機器人大賽ROBOCON比賽規(guī)則,參加機器人的看看
    發(fā)表于 06-08 15:30 ?0次下載

    第十五屆智能車入門淺談

    @TOC第十五屆智能車入門淺談寫博客原因這次第十五屆全國智能車大賽已經(jīng)結束了,對于我而言,確實是我大學中一個不可多得的經(jīng)歷,我希望我的這段經(jīng)歷可以保存下來通過博客的形式,同時可以對于其他人有幫助
    發(fā)表于 11-26 12:36 ?16次下載
    <b class='flag-5'>第十五</b>屆智能車入門淺談

    【正點原子FPGA連載】第十五章 窗口門狗(WWDG)實驗 -摘自【正點原子】新起點之FPGA開發(fā)指南_V2.1

    【正點原子FPGA連載】第十五章 窗口門狗(WWDG)實驗 -摘自【正點原子】新起點之FPGA開發(fā)指南_V2.1
    發(fā)表于 12-05 11:21 ?12次下載
    【正點原子FPGA連載】<b class='flag-5'>第十五章</b> 窗口門狗(WWDG)實驗 -摘自【正點原子】新起點之FPGA開發(fā)指南_V2.1

    深度參與,共話未來 —— 吹田電氣亮相第十五屆亞洲電源技術發(fā)展論壇

    在這個金秋時節(jié),吹田電氣帶著對電源技術的無限熱愛與追求,我們啟程前往第十五屆亞洲電源技術發(fā)展論壇的盛會。在這場匯聚了行業(yè)精英、學者與前沿技術的盛會中,我們不僅僅見證了電源技術的最新進展,更與眾多同行
    的頭像 發(fā)表于 12-09 16:58 ?755次閱讀
    深度參與,共話未來 —— 吹田電氣亮相<b class='flag-5'>第十五</b>屆亞洲電源技術發(fā)展論壇

    銳馳智光亮相第十五屆交博會

    2025年4月23日,第十五屆中國國際道路交通安全博覽會(以下簡稱“交博會”)在武漢國際博覽中心盛大啟幕。
    的頭像 發(fā)表于 04-24 17:12 ?471次閱讀