單芯片解決方案,開啟全新體驗——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版本,該版本擁有更豐富的外設資源,適用于需要多接口擴展的復雜工控場景,軟件使用方法一致。更多信息和資料請進入http://www.w5500.com/網站或者私信獲取。
此外,本W55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應用,涵蓋TCP SSL、HTTP SSL以及MQTT SSL等,為網絡通信安全再添保障。
為助力開發者快速上手與深入開發,基于W55MH32Q這顆芯片,WIZnet精心打造了配套開發板。開發板集成WIZ-Link芯片,借助一根USB C口數據線,就能輕松實現調試、下載以及串口打印日志等功能。開發板將所有外設全部引出,拓展功能也大幅提升,便于開發者全面評估芯片性能。
若您想獲取芯片和開發板的更多詳細信息,包括產品特性、技術參數以及價格等,歡迎訪問官方網頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。
第十五章 DAC (下篇)
1 程序設計
1.1 DAC_OutDMASineWave例程
此例程的主要功能是借助 W55MH32 的 DAC(數模轉換器)輸出軟件正弦波,并且通過串口輸出系統時鐘信息。下面是其主要工作流程:
1.初始化配置
?使能系統時鐘,配置串口(波特率 115200)輸出調試信息。
?初始化 GPIO、DAC(通道 1/2)、定時器 TIM2(周期 為20個時鐘周期)及 DMA(循環模式)。
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; // 數據源:雙通道數據數組 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST; // 內存到外設 DMA_InitStructure.DMA_BufferSize = POINT_NUM; // 傳輸32點 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; // 循環模式,持續輸出 DMA_Init(DMA2_Channel4, &DMA_InitStructure); DMA_Cmd(DMA2_Channel4, ENABLE); // 配置DMA通道3(DAC1,參數與通道4相同) DMA_InitStructure.DMA_PeripheralBaseAddr = DAC1_DHR12RD_ADDRESS; DMA_Init(DMA2_Channel3, &DMA_InitStructure); DMA_Cmd(DMA2_Channel3, ENABLE); }
?通過 12 位正弦波數據數組Sine12bit(32 點),生成雙通道 DAC 數據DualSine12bit。
3.工作流程
?TIM2 以設定周期觸發 DMA,將正弦波數據循環傳輸至 DAC,驅動模擬輸出。
?主循環保持運行,實現連續波形輸出。
4.調試功能
?串口輸出系統各時鐘頻率,便于調試。
1.2 DAC_OutNoiseWave例程
這個例程的主要作用是利用 W55MH32 的 DAC(數模轉換器)輸出噪聲波信號,同時通過串口輸出系統時鐘信息以方便調試。以下是具體作用的詳細闡述:
1. 系統初始化與信息輸出
?時鐘與延時初始化:開啟 CRC 時鐘,進行延時初始化,為后續操作提供時鐘基礎。
?串口通信配置:將串口波特率設置為 115200,對 GPIO 和 USART 進行初始化,實現串口通信功能。
?時鐘信息輸出:獲取系統時鐘頻率,把系統時鐘、HCLK、PCLK1、PCLK2 和 ADCCLK 的頻率信息通過串口輸出,方便開發人員了解系統時鐘狀態。
2.噪聲波信號輸出
// GPIO配置函數(DAC輸出引腳) void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIOA時鐘(DAC通道1/2對應PA4/PA5) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 配置PA4和PA5為模擬輸入模式(內部連接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配置函數(噪聲波模式) 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; // 軟件觸發(非自動觸發) 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); // 設置初始輸出數據(12位左對齊,值為0x7FF0,即32784/4096=8.0V?需根據參考電壓調整) 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 配置成軟件觸發模式,并且設置為噪聲波生成模式。同時,開啟輸出緩沖,把初始數據設置為 0x7FF0。
?噪聲波輸出:在主循環里,持續對 DAC 通道 1 和通道 2 進行軟件觸發,從而讓 PA4 和 PA5 引腳持續輸出模擬的噪聲波信號。
3. 輸出重定向
?實現SER_PutChar和fputc函數,把printf函數的輸出重定向到串口,方便開發人員通過串口輸出調試信息。
綜上所述,該例程可用于測試和驗證 W55MH32 的 DAC 模塊輸出噪聲波的功能,也可作為開發基于 DAC 輸出噪聲波應用的基礎代碼。
1.3 DAC_OutTriangleWave例程
該例程通過初始化系統時鐘、串口、GPIO和DAC,利用軟件觸發DAC生成并輸出雙通道三角波信號,同時將系統時鐘信息通過串口輸出,用于驗證DAC功能和作為信號源開發基礎。以下是具體作用的詳細闡述:
1.初始化配置
?使能系統時鐘并配置串口(波特率 115200)輸出系統時鐘頻率(SYSCLK/HCLK/PCLK1/PCLK2/ADCCLK)。
?初始化 GPIOA 的 PA4/PA5 為模擬輸入模式,作為 DAC 輸出引腳。
2.三角波生成配置
// DAC配置函數:啟用硬件三角波生成 void DAC_Configuration(void) { DAC_InitTypeDef DAC_InitStructure; // 使能DAC時鐘(APB1總線) RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); // 配置DAC為軟件觸發模式,啟用三角波生成 DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software; // 軟件觸發(需手動調用觸發函數) 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); // 設置初始數據為0(三角波起點) DAC_SetChannel1Data(DAC_Align_12b_L, 0); // 12位左對齊,值為0 DAC_SetChannel2Data(DAC_Align_12b_L, 0); }
?DAC 配置為軟件觸發模式,啟用硬件三角波生成功能。
?設置三角波幅度為 2047(12 位半滿量程,對應約 1.65V 峰峰值),輸出緩沖使能。
?初始通道數據設為 0,作為波形起點。
3.工作流程
int main(void) { // ...(初始化代碼略)... printf("DAC Out Triangle Wave Test.n"); // 打印測試提示 while (1) { // 軟件觸發DAC通道1和2轉換(生成三角波) DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE); DAC_SoftwareTriggerCmd(DAC_Channel_2, ENABLE); // 循環觸發,頻率由主循環速度決定(需結合延時調整,當前為無延時快速觸發) } }
?主循環無限觸發 DAC 軟件轉換,PA4/PA5 引腳輸出連續三角波信號(0→2047→0 循環)。
?三角波頻率由軟件觸發速率決定,需通過示波器觀察波形。
4.調試功能
?串口輸出系統時鐘信息,便于驗證硬件配置。
2 下載驗證
1.1 DAC_OutDMASineWave例程
程序運行后,首先會通過串口輸出系統時鐘相關頻率信息,告知用戶SYSCLK、HCLK、PCLK1、PCLK2和ADCCLK的頻率,同時提示“DAC Out Software Sine Wave Test.”信息:
接著,GPIO、DAC、定時器和DMA完成配置,定時器TIM2按照設定的周期觸發,借助DMA將正弦波數據循環傳輸到DAC通道1和通道2,使PA4和PA5引腳持續輸出模擬的正弦波信號,之后程序進入無限循環以維持正弦波的穩定輸出:
1.2 DAC_OutNoiseWave例程
程序運行后,首先通過串口輸出系統各時鐘頻率信息(如SYSCLK、HCLK等),并提示“DAC Out Noise Wave Test.”:
隨后,PA4和PA5引腳持續輸出由DAC內部LFSR生成的12位隨機噪聲波信號,電壓值在0-3.3V范圍內無規律波動。主循環通過軟件觸發DAC連續轉換,保持波形輸出,需通過示波器觀察模擬信號變化:
1.3 DAC_OutTriangleWave例程
程序運行后,首先通過串口輸出系統時鐘頻率信息,包SYSCLK、HCLK、PCLK1、PCLK2和ADCCLK的頻率,同時提示進行DAC輸出三角波測試:
之后,GPIO和DAC完成配置,主循環中持續對DAC通道1和通道2進行軟件觸發,使得PA4和PA5引腳持續輸出模擬三角波信號,該信號幅度為2047(對應12位),并以初始值0為起點進行周期性的上升和下降變化,可使用示波器觀察到該連續穩定的三角波波形:
WIZnet 是一家無晶圓廠半導體公司,成立于 1998 年。產品包括互聯網處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術,基于獨特的專利全硬連線 TCP/IP。iMCU? 面向各種應用中的嵌入式互聯網設備。
WIZnet 在全球擁有 70 多家分銷商,在香港、韓國、美國設有辦事處,提供技術支持和產品營銷。
香港辦事處管理的區域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。
審核編輯 黃宇
-
單片機
+關注
關注
6061文章
44910瀏覽量
646508 -
物聯網
+關注
關注
2927文章
45842瀏覽量
387552 -
dac
+關注
關注
43文章
2376瀏覽量
192982
發布評論請先 登錄
第十五章 DAC (上篇)

《DNK210使用指南 -CanMV版 V1.0》第十五章 按鍵中斷實驗
視頻詳解:上海尤老師verilog入門到實戰第十五課
基于RFID和MySQL實現小區門禁系統
「正點原子Linux連載」第十五章按鍵輸入試驗
第十五屆智能車入門淺談 精選資料分享
第十五講 組合邏輯電路的分析方法和設計方法

【正點原子FPGA連載】第二十五章HDMI方塊移動實驗 -摘自【正點原子】新起點之FPGA開發指南_V2.1

第十五屆智能車入門淺談

【正點原子FPGA連載】第三十五章高速AD/DA實驗 -摘自【正點原子】新起點之FPGA開發指南_V2.1

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

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

評論