單芯片解決方案,開(kāi)啟全新體驗(yàn)——W55MH32 高性能以太網(wǎng)單片機(jī)
W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機(jī),它為用戶(hù)帶來(lái)前所未有的集成化體驗(yàn)。這顆芯片將強(qiáng)大的組件集于一身,具體來(lái)說(shuō),一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)216MHz;配備1024KB FLASH與96KB SRAM,滿(mǎn)足存儲(chǔ)與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨(dú)立的32KB以太網(wǎng)收發(fā)緩存,可供8個(gè)獨(dú)立硬件socket使用。如此配置,真正實(shí)現(xiàn)了All-in-One解決方案,為開(kāi)發(fā)者提供極大便利。
在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN68和QFN100。
W55MH32Q采用QFN68封裝版本,尺寸為8x8mm,它擁有36個(gè)GPIO、3個(gè)ADC、12通道DMA、17個(gè)定時(shí)器、2個(gè)I2C、3個(gè)串口、2個(gè)SPI接口(其中1個(gè)帶I2S接口復(fù)用)、1個(gè)CAN以及1個(gè)USB2.0。在保持與同系列其他版本一致的核心性能基礎(chǔ)上,僅減少了部分GPIO以及SDIO接口,其他參數(shù)保持一致,性?xún)r(jià)比優(yōu)勢(shì)顯著,尤其適合網(wǎng)關(guān)模組等對(duì)空間布局要求較高的場(chǎng)景。緊湊的尺寸和精簡(jiǎn)化外設(shè)配置,使其能夠在有限空間內(nèi)實(shí)現(xiàn)高效的網(wǎng)絡(luò)連接與數(shù)據(jù)交互,成為物聯(lián)網(wǎng)網(wǎng)關(guān)、邊緣計(jì)算節(jié)點(diǎn)等緊湊型設(shè)備的理想選擇。 同系列還有QFN100封裝的W55MH32L版本,該版本擁有更豐富的外設(shè)資源,適用于需要多接口擴(kuò)展的復(fù)雜工控場(chǎng)景,軟件使用方法一致。更多信息和資料請(qǐng)進(jìn)入http://www.w5500.com/網(wǎng)站或者私信獲取。
此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。
為助力開(kāi)發(fā)者快速上手與深入開(kāi)發(fā),基于W55MH32Q這顆芯片,WIZnet精心打造了配套開(kāi)發(fā)板。開(kāi)發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實(shí)現(xiàn)調(diào)試、下載以及串口打印日志等功能。開(kāi)發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開(kāi)發(fā)者全面評(píng)估芯片性能。
若您想獲取芯片和開(kāi)發(fā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價(jià)格等,歡迎訪問(wèn)官方網(wǎng)頁(yè):http://www.w5500.com/,我們期待與您共同探索W55MH32的無(wú)限可能。
第十五章 DAC (下篇)
1 程序設(shè)計(jì)
1.1 DAC_OutDMASineWave例程
此例程的主要功能是借助 W55MH32 的 DAC(數(shù)模轉(zhuǎn)換器)輸出軟件正弦波,并且通過(guò)串口輸出系統(tǒng)時(shí)鐘信息。下面是其主要工作流程:
1.初始化配置
?使能系統(tǒng)時(shí)鐘,配置串口(波特率 115200)輸出調(diào)試信息。
?初始化 GPIO、DAC(通道 1/2)、定時(shí)器 TIM2(周期 為20個(gè)時(shí)鐘周期)及 DMA(循環(huán)模式)。
2.正弦波生成
void DMA_Configuration(void) { DMA_InitTypeDef DMA_InitStructure; // 使能DMA2時(shí)鐘 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)存到外設(shè) DMA_InitStructure.DMA_BufferSize = POINT_NUM; // 傳輸32點(diǎn) 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); }
?通過(guò) 12 位正弦波數(shù)據(jù)數(shù)組Sine12bit(32 點(diǎn)),生成雙通道 DAC 數(shù)據(jù)DualSine12bit。
3.工作流程
?TIM2 以設(shè)定周期觸發(fā) DMA,將正弦波數(shù)據(jù)循環(huán)傳輸至 DAC,驅(qū)動(dòng)模擬輸出。
?主循環(huán)保持運(yùn)行,實(shí)現(xiàn)連續(xù)波形輸出。
4.調(diào)試功能
?串口輸出系統(tǒng)各時(shí)鐘頻率,便于調(diào)試。
1.2 DAC_OutNoiseWave例程
這個(gè)例程的主要作用是利用 W55MH32 的 DAC(數(shù)模轉(zhuǎn)換器)輸出噪聲波信號(hào),同時(shí)通過(guò)串口輸出系統(tǒng)時(shí)鐘信息以方便調(diào)試。以下是具體作用的詳細(xì)闡述:
1. 系統(tǒng)初始化與信息輸出
?時(shí)鐘與延時(shí)初始化:開(kāi)啟 CRC 時(shí)鐘,進(jìn)行延時(shí)初始化,為后續(xù)操作提供時(shí)鐘基礎(chǔ)。
?串口通信配置:將串口波特率設(shè)置為 115200,對(duì) GPIO 和 USART 進(jìn)行初始化,實(shí)現(xiàn)串口通信功能。
?時(shí)鐘信息輸出:獲取系統(tǒng)時(shí)鐘頻率,把系統(tǒng)時(shí)鐘、HCLK、PCLK1、PCLK2 和 ADCCLK 的頻率信息通過(guò)串口輸出,方便開(kāi)發(fā)人員了解系統(tǒng)時(shí)鐘狀態(tài)。
2.噪聲波信號(hào)輸出
// GPIO配置函數(shù)(DAC輸出引腳) void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIOA時(shí)鐘(DAC通道1/2對(duì)應(yīng)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; // 模擬輸入模式(無(wú)需上拉/下拉) GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); } // DAC配置函數(shù)(噪聲波模式) void DAC_Configuration(void) { DAC_InitTypeDef DAC_InitStructure; // 使能DAC時(shí)鐘(APB1總線) RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); // 配置DAC通道1和2為噪聲波模式 DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software; // 軟件觸發(fā)(非自動(dòng)觸發(fā)) DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_Noise; // 啟用噪聲波生成 DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_4095; // 噪聲波幅度(全范圍) DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; // 使能輸出緩沖(提高驅(qū)動(dòng)能力) // 初始化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è)置初始輸出數(shù)據(jù)(12位左對(duì)齊,值為0x7FF0,即32784/4096=8.0V?需根據(jù)參考電壓調(diào)整) DAC_SetChannel1Data(DAC_Align_12b_L, 0x7FF0); // 通道1初始值 DAC_SetChannel2Data(DAC_Align_12b_L, 0x7FF0); // 通道2初始值 }
?GPIO 配置:使能 GPIOA 時(shí)鐘,把 PA4 和 PA5 引腳配置成模擬輸入模式,作為 DAC 的輸出引腳。
?DAC 配置:使能 DAC 時(shí)鐘,將 DAC 通道 1 和通道 2 配置成軟件觸發(fā)模式,并且設(shè)置為噪聲波生成模式。同時(shí),開(kāi)啟輸出緩沖,把初始數(shù)據(jù)設(shè)置為 0x7FF0。
?噪聲波輸出:在主循環(huán)里,持續(xù)對(duì) DAC 通道 1 和通道 2 進(jìn)行軟件觸發(fā),從而讓 PA4 和 PA5 引腳持續(xù)輸出模擬的噪聲波信號(hào)。
3. 輸出重定向
?實(shí)現(xiàn)SER_PutChar和fputc函數(shù),把printf函數(shù)的輸出重定向到串口,方便開(kāi)發(fā)人員通過(guò)串口輸出調(diào)試信息。
綜上所述,該例程可用于測(cè)試和驗(yàn)證 W55MH32 的 DAC 模塊輸出噪聲波的功能,也可作為開(kāi)發(fā)基于 DAC 輸出噪聲波應(yīng)用的基礎(chǔ)代碼。
1.3 DAC_OutTriangleWave例程
該例程通過(guò)初始化系統(tǒng)時(shí)鐘、串口、GPIO和DAC,利用軟件觸發(fā)DAC生成并輸出雙通道三角波信號(hào),同時(shí)將系統(tǒng)時(shí)鐘信息通過(guò)串口輸出,用于驗(yàn)證DAC功能和作為信號(hào)源開(kāi)發(fā)基礎(chǔ)。以下是具體作用的詳細(xì)闡述:
1.初始化配置
?使能系統(tǒng)時(shí)鐘并配置串口(波特率 115200)輸出系統(tǒng)時(shí)鐘頻率(SYSCLK/HCLK/PCLK1/PCLK2/ADCCLK)。
?初始化 GPIOA 的 PA4/PA5 為模擬輸入模式,作為 DAC 輸出引腳。
2.三角波生成配置
// DAC配置函數(shù):?jiǎn)⒂糜布遣ㄉ?void DAC_Configuration(void) { DAC_InitTypeDef DAC_InitStructure; // 使能DAC時(shí)鐘(APB1總線) RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); // 配置DAC為軟件觸發(fā)模式,啟用三角波生成 DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software; // 軟件觸發(fā)(需手動(dòng)調(diào)用觸發(fā)函數(shù)) DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_Triangle; // 三角波模式 DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_2047; // 幅度設(shè)置為2047(半滿(mǎn)量程,12位) DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; // 使能輸出緩沖(增強(qiáng)驅(qū)動(dòng)能力) // 初始化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è)置初始數(shù)據(jù)為0(三角波起點(diǎn)) DAC_SetChannel1Data(DAC_Align_12b_L, 0); // 12位左對(duì)齊,值為0 DAC_SetChannel2Data(DAC_Align_12b_L, 0); }
?DAC 配置為軟件觸發(fā)模式,啟用硬件三角波生成功能。
?設(shè)置三角波幅度為 2047(12 位半滿(mǎn)量程,對(duì)應(yīng)約 1.65V 峰峰值),輸出緩沖使能。
?初始通道數(shù)據(jù)設(shè)為 0,作為波形起點(diǎn)。
3.工作流程
int main(void) { // ...(初始化代碼略)... printf("DAC Out Triangle Wave Test.n"); // 打印測(cè)試提示 while (1) { // 軟件觸發(fā)DAC通道1和2轉(zhuǎn)換(生成三角波) DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE); DAC_SoftwareTriggerCmd(DAC_Channel_2, ENABLE); // 循環(huán)觸發(fā),頻率由主循環(huán)速度決定(需結(jié)合延時(shí)調(diào)整,當(dāng)前為無(wú)延時(shí)快速觸發(fā)) } }
?主循環(huán)無(wú)限觸發(fā) DAC 軟件轉(zhuǎn)換,PA4/PA5 引腳輸出連續(xù)三角波信號(hào)(0→2047→0 循環(huán))。
?三角波頻率由軟件觸發(fā)速率決定,需通過(guò)示波器觀察波形。
4.調(diào)試功能
?串口輸出系統(tǒng)時(shí)鐘信息,便于驗(yàn)證硬件配置。
2 下載驗(yàn)證
1.1 DAC_OutDMASineWave例程
程序運(yùn)行后,首先會(huì)通過(guò)串口輸出系統(tǒng)時(shí)鐘相關(guān)頻率信息,告知用戶(hù)SYSCLK、HCLK、PCLK1、PCLK2和ADCCLK的頻率,同時(shí)提示“DAC Out Software Sine Wave Test.”信息:
接著,GPIO、DAC、定時(shí)器和DMA完成配置,定時(shí)器TIM2按照設(shè)定的周期觸發(fā),借助DMA將正弦波數(shù)據(jù)循環(huán)傳輸?shù)紻AC通道1和通道2,使PA4和PA5引腳持續(xù)輸出模擬的正弦波信號(hào),之后程序進(jìn)入無(wú)限循環(huán)以維持正弦波的穩(wěn)定輸出:
1.2 DAC_OutNoiseWave例程
程序運(yùn)行后,首先通過(guò)串口輸出系統(tǒng)各時(shí)鐘頻率信息(如SYSCLK、HCLK等),并提示“DAC Out Noise Wave Test.”:
隨后,PA4和PA5引腳持續(xù)輸出由DAC內(nèi)部LFSR生成的12位隨機(jī)噪聲波信號(hào),電壓值在0-3.3V范圍內(nèi)無(wú)規(guī)律波動(dòng)。主循環(huán)通過(guò)軟件觸發(fā)DAC連續(xù)轉(zhuǎn)換,保持波形輸出,需通過(guò)示波器觀察模擬信號(hào)變化:
1.3 DAC_OutTriangleWave例程
程序運(yùn)行后,首先通過(guò)串口輸出系統(tǒng)時(shí)鐘頻率信息,包SYSCLK、HCLK、PCLK1、PCLK2和ADCCLK的頻率,同時(shí)提示進(jìn)行DAC輸出三角波測(cè)試:
之后,GPIO和DAC完成配置,主循環(huán)中持續(xù)對(duì)DAC通道1和通道2進(jìn)行軟件觸發(fā),使得PA4和PA5引腳持續(xù)輸出模擬三角波信號(hào),該信號(hào)幅度為2047(對(duì)應(yīng)12位),并以初始值0為起點(diǎn)進(jìn)行周期性的上升和下降變化,可使用示波器觀察到該連續(xù)穩(wěn)定的三角波波形:
WIZnet 是一家無(wú)晶圓廠半導(dǎo)體公司,成立于 1998 年。產(chǎn)品包括互聯(lián)網(wǎng)處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術(shù),基于獨(dú)特的專(zhuān)利全硬連線 TCP/IP。iMCU? 面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。
WIZnet 在全球擁有 70 多家分銷(xiāo)商,在香港、韓國(guó)、美國(guó)設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營(yíng)銷(xiāo)。
香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國(guó)和日本除外)。
審核編輯 黃宇
-
單片機(jī)
+關(guān)注
關(guān)注
6061文章
44913瀏覽量
646596 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2927文章
45847瀏覽量
387664 -
dac
+關(guān)注
關(guān)注
43文章
2377瀏覽量
192990
發(fā)布評(píng)論請(qǐng)先 登錄
第十五章 DAC (上篇)

《DNK210使用指南 -CanMV版 V1.0》第十五章 按鍵中斷實(shí)驗(yàn)
至芯科技之a(chǎn)ltera 系列FPGA教程 第十五篇 安裝驅(qū)動(dòng)
視頻詳解:上海尤老師verilog入門(mén)到實(shí)戰(zhàn)第十五課
基于RFID和MySQL實(shí)現(xiàn)小區(qū)門(mén)禁系統(tǒng)
「正點(diǎn)原子Linux連載」第十五章按鍵輸入試驗(yàn)
第十五屆智能車(chē)入門(mén)淺談 精選資料分享
第十五講 組合邏輯電路的分析方法和設(shè)計(jì)方法

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

【正點(diǎn)原子FPGA連載】第二十五章HDMI方塊移動(dòng)實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開(kāi)發(fā)指南_V2.1

第十五屆智能車(chē)入門(mén)淺談

【正點(diǎn)原子FPGA連載】第三十五章高速AD/DA實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開(kāi)發(fā)指南_V2.1

【正點(diǎn)原子FPGA連載】第十五章 窗口門(mén)狗(WWDG)實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開(kāi)發(fā)指南_V2.1

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

評(píng)論