日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

極海G32R430 MCU的ADC16模塊全用例實(shí)戰(zhàn)

Geehy極海半導(dǎo)體 ? 來(lái)源:21ic論壇極海半導(dǎo)體專(zhuān)區(qū) ? 2026-05-18 14:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

《極海芯得》系列內(nèi)容為用戶(hù)使用極海系列產(chǎn)品的經(jīng)驗(yàn)總結(jié),均轉(zhuǎn)載自21ic論壇極海半導(dǎo)體專(zhuān)區(qū),全文未作任何修改,未經(jīng)原文作者授權(quán)禁止轉(zhuǎn)載。

1. 背景

前面我們已經(jīng)看過(guò) G32R430 在編碼器場(chǎng)景里的“專(zhuān)業(yè)對(duì)口”,也圍觀過(guò) ATAN2 的速度表演。這一篇輪到 ADC16 登場(chǎng):畢竟角度算法再快,也架不住前端采樣“手抖”。

可以把它想成一條流水線:ATAN2 是后廚大廚,ADC16 是前廳點(diǎn)單。后廚刀工再秀,前廳把菜名聽(tīng)錯(cuò)了,最后端上來(lái)的也只能是玄學(xué)料理。

這篇博客我們一起來(lái)做三件事:

先把 ADC 這件事講清楚,知道它在編碼器鏈路里為什么是第一環(huán);

再把 G32R430 的 ADC16 能力講清楚,知道每個(gè)能力能解決什么工程問(wèn)題;

最后把 SDK 里的ADC16 示例逐個(gè)拆開(kāi),看看“共性”和“差異”都在哪兒。

2. ADC 是什么?

ADC(Analog to Digital Converter)就是把模擬電壓變成數(shù)字量的外設(shè)。在 MCU 工程里,它不只是“測(cè)電壓”,而是“把傳感器信號(hào)送進(jìn)算法”的入口。放到編碼器場(chǎng)景里(磁編/旋變 sin/cos)我們會(huì)馬上遇到三個(gè)問(wèn)題:

兩路采樣不同步,atan2 輸入就會(huì)錯(cuò)位;

觸發(fā)時(shí)刻不穩(wěn)定,角度會(huì)抖,控制環(huán)會(huì)被噪聲放大;

沒(méi)有硬件閾值監(jiān)測(cè),異常輸入會(huì)把系統(tǒng)保護(hù)壓力全扔給軟件。

所以我們看 ADC,不能只盯分辨率,還要同時(shí)看時(shí)序確定性、觸發(fā)機(jī)制、數(shù)據(jù)路徑和保護(hù)能力。

3. G32R430 的 ADC16

模塊情況:G32R430 系列集成2 個(gè) 16 位精度、逐次逼近(SAR)型 ADC。每個(gè) ADC 最多 6 個(gè)外部通道,支持單次、連續(xù)、掃描或間斷等轉(zhuǎn)換模式;雙 ADC 同步時(shí),轉(zhuǎn)換結(jié)果可存儲(chǔ)在主 ADC(ADC0)的 32 位數(shù)據(jù)寄存器中,便于一次讀出兩路同步采樣值。

主要特征(與本文例程對(duì)應(yīng)關(guān)系如下):

精度與速率:16 位分辨率,ENOB 約 13.5 bit;內(nèi)置高精度參考源 1.65V±2mV(25℃);16 bit 分辨率下最大采樣率 1 Msps。

輸入與通道:支持單端和差分輸入;通道數(shù):最多6 對(duì)差分或12 個(gè)單端。

轉(zhuǎn)換模式:支持規(guī)則序列、注入序列,以及單次、連續(xù)、掃描、間斷等模式;轉(zhuǎn)換結(jié)果可存 16/32 位結(jié)果寄存器或經(jīng) DMA 傳到 RAM。

雙 ADC:兩路 ADC 支持主從模式,配置為主從時(shí)可保持采樣同步;雙 ADC 同步采樣可由軟件或硬件觸發(fā)。

過(guò)采樣:支持最高16 倍過(guò)采樣。

觸發(fā)方式:每個(gè) ADC 可獨(dú)立選擇觸發(fā)源——軟件觸發(fā)、片上定時(shí)器信號(hào)觸發(fā)、外部引腳觸發(fā);雙 ADC 同步采樣時(shí)由同一觸發(fā)源驅(qū)動(dòng)。

其它:支持外部參考電壓引腳(輸入范圍可獨(dú)立于供電);可編程通道采樣時(shí)間;每通道偏移補(bǔ)償;模擬看門(mén)狗(自動(dòng)電壓監(jiān)測(cè)、產(chǎn)生中斷或觸發(fā)定時(shí)器)。

這些能力對(duì)應(yīng)到工程收益,我們可以這么記:

同步采樣:給 sin/cos、雙電流這種相位敏感輸入兜底;

差分采樣:在強(qiáng)干擾現(xiàn)場(chǎng)提升抗共模能力;

定時(shí)觸發(fā):把采樣時(shí)刻鎖到控制節(jié)拍;

過(guò)采樣:用吞吐?lián)Q穩(wěn)定度和有效精度;

模擬看門(mén)狗:越界檢測(cè)前移到硬件,提高響應(yīng)速度。

ADC16 時(shí)鐘來(lái)源:ADC1/2 的模擬時(shí)鐘的源時(shí)鐘可為PLL或SYSCLK,由 RCM 模塊中的ADCACLKSEL(RCM_ADCCR 寄存器 bit 8)選擇:0 選 PLL,1 選 SYSCLK。源時(shí)鐘再經(jīng)ADC16ADIV(RCM_ADCCR[1:0])分頻得到 ADCCLK,分頻比可選6、12、24(對(duì)應(yīng) SDK 中的 DIV_6 / DIV_12 / DIV_24)。ADCCLK 直接決定單次轉(zhuǎn)換的節(jié)拍,進(jìn)而影響采樣率上限與轉(zhuǎn)換時(shí)間,配置時(shí)需保證不超過(guò)芯片手冊(cè)規(guī)定的 ADCCLK 上限;使能 ADC 后需等待ADC16ACLKRDY(RCM_ADCCR bit 2)為 1 再啟動(dòng)轉(zhuǎn)換。時(shí)鐘來(lái)源與分頻在芯片時(shí)鐘樹(shù)中的位置見(jiàn)下圖。

c163d9ea-4f3d-11f1-90a1-92fbcf53809c.png

4. 上手前提:同一塊板、同一套口徑

下面我們先把“用哪塊板、跑哪些例程、怎么看結(jié)果”說(shuō)清楚,后面所有示例都按這一套來(lái),方便復(fù)現(xiàn)和對(duì)照。

4.1. 使用的平臺(tái)與板卡

本文示例基于Geehy G32R430 TinyBoard V1.2。板子分為上、下兩段:上方為板載調(diào)試器(APM32F103 作 Link 調(diào)試/燒錄),通過(guò) USB-C(J13)供電并做串口調(diào)試;下方為 G32R430 目標(biāo)板,帶按鍵、LED、以及豐富的排針與專(zhuān)用接口。和 ADC16 直接相關(guān)的是左側(cè)J11 模擬排針,提供單端/差分 ADC 引腳:AD1P/AD1M、AD2P/AD2M,對(duì)應(yīng) ADC1/ADC2 的差分或單端接入;右側(cè) J12 為通用 GPIO/模擬(如 A1~A5)等。板子還預(yù)留 BiSS-C(J6)、RS-485(J4)等接口,便于做編碼器或通信類(lèi)實(shí)驗(yàn)。板卡實(shí)物見(jiàn)下圖。

c1bf8380-4f3d-11f1-90a1-92fbcf53809c.png

板卡:G32R430 TinyBoard V1.2

SDK:G32R430_DDL_SDK_V1.0.2

示例目錄:Examples/Board_G32R430_Tiny/ADC16

IDE:μVision V5.43.1.0

串口:USART2,115200(通過(guò)板載調(diào)試器,無(wú)需外接仿真器

4.2. 我們?cè)趺从^察結(jié)果

以每個(gè)示例的 main.c 為主,重點(diǎn)看初始化和數(shù)據(jù)處理路徑,結(jié)果以串口輸出作為第一驗(yàn)證口徑。每個(gè)例程目錄下都有 readme.txt 說(shuō)明文檔,一般包含功能說(shuō)明、硬件連接與預(yù)期現(xiàn)象,復(fù)現(xiàn)時(shí)可先對(duì)照閱讀以便核對(duì)串口輸出或接線。

5. 先跑通基礎(chǔ)示例:ADC16_ContinuousConversion

本章我們來(lái)看一個(gè)完成基本轉(zhuǎn)換的示例。

5.1 main() 主流程

int main(void)

{

DDL_USART_InitTypeDef USART_InitStruct = {0U};

DDL_SysClkConfig();

DDL_NVIC_ConfigPriorityGroup(DDL_NVIC_PRIORITY_GROUP_4);

USART_InitStruct.BaudRate = 115200U;

USART_InitStruct.DataWidth = DDL_USART_DATAWIDTH_8B;

USART_InitStruct.StopBits = DDL_USART_STOPBITS_1;

USART_InitStruct.Parity = DDL_USART_PARITY_NONE;

USART_InitStruct.TransferDirection = DDL_USART_DIRECTION_TX_RX;

USART_InitStruct.HardwareFlowControl = DDL_USART_HWCONTROL_NONE;

USART_InitStruct.OverSampling = DDL_USART_OVERSAMPLING_16;

BOARD_COMInit(COM2, &USART_InitStruct);

ADC_Init();

while (1) {}

}

我們先抓主線:

DDL_SysClkConfig():先把系統(tǒng)時(shí)鐘準(zhǔn)備好,ADC 才有穩(wěn)定節(jié)拍;

BOARD_COMInit():先打通串口,后面調(diào)試結(jié)果能直接看到;

ADC_Init():把 ADC 的通道、觸發(fā)、轉(zhuǎn)換模式一次配齊;

5.2 ADC_Init() 關(guān)鍵配置

DDL_RCM_ADC_SetAdcAnalogClkSource(DDL_RCM_ADCACLK_SYSCLK);

DDL_RCM_ADC_SetAdc16AnalogClkDivision(DDL_RCM_ADC16ACLK_DIV_6);

DDL_RCM_EnableAHBPeripheral(DDL_RCM_AHB_PERIPHERAL_GPIO);

DDL_RCM_EnableAHBPeripheral(DDL_RCM_AHB_PERIPHERAL_ADC1);

GPIO_InitStruct.Pin = DDL_GPIO_PIN_1;

GPIO_InitStruct.Mode = DDL_GPIO_MODE_ANALOG;

DDL_GPIO_Init(GPIOA, &GPIO_InitStruct);

ADC 時(shí)鐘源與分頻:SetAdcAnalogClkSource(SYSCLK) 表示 ADC 模擬時(shí)鐘來(lái)自系統(tǒng)時(shí)鐘;SetAdc16AnalogClkDivision(DIV_6) 表示再對(duì) SYSCLK 做 6 分頻,得到 ADC 內(nèi)核實(shí)際用的時(shí)鐘ADCCLK = SYSCLK / 6。例如 SYSCLK = 120 MHz 時(shí),ADCCLK = 20 MHz。一次轉(zhuǎn)換所花的時(shí)間 =(采樣時(shí)間 + 轉(zhuǎn)換時(shí)間),單位都是ADCCLK 的周期。采樣時(shí)間由我們配置(如 10 cycles),轉(zhuǎn)換時(shí)間由芯片固定(16 位 ADC 一般為十幾 cycles,以數(shù)據(jù)手冊(cè)為準(zhǔn))。所以ADCCLK 越高,單次轉(zhuǎn)換時(shí)間越短,理論上可達(dá)到的采樣率上限就越高;分頻選得越大(如 DIV_12、DIV_24),ADCCLK 越低,采樣節(jié)拍上限就越低。ADCCLK 不宜超過(guò)芯片規(guī)定上限,否則可能影響線性度。

打開(kāi) GPIO/ADC1 外設(shè)時(shí)鐘,不開(kāi)時(shí)鐘后面配置都白寫(xiě);

PA1 置模擬模式,接入 ADC1_CHANNEL_1。

ADC_REG_InitStruct.TriggerSource = DDL_ADC16_REG_TRIG_SOFTWARE;

ADC_REG_InitStruct.SequencerLength = DDL_ADC16_REG_SEQ_SCAN_DISABLE;

ADC_REG_InitStruct.ContinuousMode = DDL_ADC16_REG_CONV_CONTINUOUS;

ADC_REG_InitStruct.DMATransfer = DDL_ADC16_REG_DMA_TRANSFER_NONE;

ADC_REG_InitStruct.Overrun = DDL_ADC16_REG_OVR_DATA_OVERWRITTEN;

DDL_ADC16_REG_Init(ADC1, &ADC_REG_InitStruct);

DDL_ADC16_SetChannelSamplingTime(ADC1, DDL_ADC16_CHANNEL_1, DDL_ADC16_SAMPLINGTIME_10CYCLES);

DDL_ADC16_REG_SetSequencerRanks(ADC1, DDL_ADC16_REG_RANK_1, DDL_ADC16_CHANNEL_1);

DDL_ADC16_SetVerfExternal(ADC1);

DDL_ADC16_SetChannelSingleDiff(ADC1, DDL_ADC16_CHANNEL_1, DDL_ADC16_SINGLE_ENDED);

軟件觸發(fā):方便我們先把流程跑通;

關(guān)閉掃描:當(dāng)前只采單通道;

連續(xù)模式:一次啟動(dòng)后持續(xù)采樣;

DMA 先不用:讓數(shù)據(jù)路徑更直觀,先用 EOC 中斷讀數(shù);

通道采樣時(shí)間、rank、參考電壓、單端模式都在這里定型。

DDL_ADC16_EnableIT_EOC(ADC1);

DDL_Interrupt_Register(ADC1_IRQn, ADC_Isr);

DDL_NVIC_EnableIRQRequest(ADC1_IRQn, 1, 1);

DDL_ADC16_Enable(ADC1);

while (DDL_RCM_ADC_IsAdc16AnalogClkRDY() == RESET);

DDL_ADC16_REG_StartConversion(ADC1);

使能 EOC 中斷并綁定 ISR;

ADC 使能后等待模擬時(shí)鐘 ready;

最后發(fā)出 StartConversion,采樣鏈路正式開(kāi)跑。

5.3. ADC_Isr() 數(shù)據(jù)路徑(讀數(shù) -> 換算 -> 輸出)

void ADC_Isr(void)

{

uint16_t adcData = 0;

uint16_t voltage = 0;

if(DDL_ADC16_IsActiveFlag_EOC(ADC1))

{

adcData = DDL_ADC16_REG_ReadConversionData32(ADC1);

voltage = (adcData * 3300) / 65535;

printf(" voltage : %d mV ", voltage);

DDL_ADC16_ClearFlag_EOC(ADC1);

}

}

這一段我們按三步記就行:

讀原始碼值;

按 3.3V 口徑換算 mV(voltage_mV = adcData * 3300 / 65535);

打印并清中斷標(biāo)志,等待下一次 EOC。

這里的 65535 來(lái)自 16 位 ADC 的滿(mǎn)量程碼值:16 位無(wú)符號(hào)數(shù)范圍是 0 ~ (2^16 - 1),也就是 0 ~ 65535。所以當(dāng) adcData = 65535 時(shí)對(duì)應(yīng)滿(mǎn)量程(約 3.3V),當(dāng) adcData = 0 時(shí)對(duì)應(yīng)約 0V,中間按線性比例換算。

到這里,基礎(chǔ)鏈路就是:

單端 + 單通道 + 軟件觸發(fā) + 連續(xù)轉(zhuǎn)換 + EOC中斷處理

6. 快速部署:例程來(lái)助力

Geehy 官方 SDK 里提供了多組 ADC16 示例工程,從單通道連續(xù)轉(zhuǎn)換到雙 ADC 差分同步,覆蓋我們前面提到的各種用法。下面我們對(duì)例程的關(guān)鍵代碼和使用場(chǎng)景進(jìn)行簡(jiǎn)單分析。

6.1 單通道連續(xù)轉(zhuǎn)換(軟件觸發(fā)): ADC16_ContinuousConversion

單通道、軟件觸發(fā)、連續(xù)轉(zhuǎn)換,無(wú) DMA/無(wú)外部觸發(fā),是最小可跑配置,適合第一次驗(yàn)證“ADC 能亮串口”。

適用場(chǎng)景:?jiǎn)温仿匐妷夯驕囟?光照等傳感器采樣,以及第一次把 ADC 跑通做驗(yàn)證。配置最少、不碰 DMA 和外部觸發(fā),方便先確認(rèn)硬件和軟件鏈路沒(méi)問(wèn)題,再往上加功能。

6.2 定時(shí)器觸發(fā)單次采樣: ADC16_SingleRegulTmrTrigger

在單通道基礎(chǔ)上增加定時(shí)器觸發(fā):采樣時(shí)刻由 TMR1 的 update 事件決定,便于和控制周期對(duì)齊。

關(guān)鍵代碼 1:TMR 產(chǎn)生周期觸發(fā)

stcTmrInit.Prescaler = 1199; /* 120MHz/(1199+1)=100kHz */

stcTmrInit.Autoreload = 49999; /* 50000/100kHz = 500ms 周期 */

DDL_TMR_Init(TMR1, &stcTmrInit);

DDL_TMR_SetTriggerOutput(TMR1, DDL_TMR_TRGO_UPDATE); /* update 事件當(dāng) TRGO */

DDL_TMR_EnableCounter(TMR1);

TMR1 每 500ms 產(chǎn)生一次 update,從 TRGO 腳輸出給 ADC,ADC 只在此時(shí)刻采樣,實(shí)現(xiàn)“節(jié)拍對(duì)齊”。

關(guān)鍵代碼 2:ADC 改為外部觸發(fā) + 單次

ADC_REG_InitStruct.TriggerSource = DDL_ADC16_REG_TRIG_EXT_TMR1_TRGO;

ADC_REG_InitStruct.ContinuousMode = DDL_ADC16_REG_CONV_SINGLE;

DDL_ADC16_REG_Init(ADC1, &ADC_REG_InitStruct);

ADC采樣的觸發(fā)源改為 TMR1 TRGO,連續(xù)模式關(guān)掉,每次 TRGO 來(lái)一次就采一次,下一輪再等下一個(gè) TRGO。

適用場(chǎng)景:采樣時(shí)刻必須和 PWM 或控制周期對(duì)齊時(shí)(例如 FOC 里每 PWM 周期采一次電流)。用定時(shí)器 TRGO 觸發(fā) ADC,采樣點(diǎn)由硬件定時(shí),不會(huì)因軟件延遲或任務(wù)調(diào)度產(chǎn)生時(shí)間抖動(dòng),控制環(huán)更穩(wěn)。

6.3. 模擬看門(mén)狗: ADC16_AnalogWindowWatchdog

在單通道連續(xù)轉(zhuǎn)換上增加模擬看門(mén)狗:硬件比較上下限,越界即進(jìn) AWD 中斷,適合做過(guò)壓/欠壓或異常幅值告警。

門(mén)限電壓與碼值換算

AWD 的上下限填的是 ADC 碼值(0~65535,16 位滿(mǎn)量程)。若希望按具體電壓設(shè)門(mén)限,需先把電壓換算成碼值:

c21cf5c4-4f3d-11f1-90a1-92fbcf53809c.png

例如 Vref=3.3V 時(shí):

高限 2.0V → (Code_{high} = 2.0 imes 65535 / 3.3 approx 39718),可取整為 0x9B36;

低限 0.5V → (Code_{low} = 0.5 imes 65535 / 3.3 approx 9930),可取整為 0x26CA。

反之,已知碼值算電壓:(V = Code imes V_{ref} / 65535)。下面示例里的 0xB00(2816)、0x300(768)對(duì)應(yīng)約0.142V、0.039V(Vref=3.3V),相當(dāng)于一個(gè)很窄的“正常窗口”,僅作演示用;實(shí)際工程中按你需要的過(guò)壓/欠壓電壓用上式算出碼值再填入。

關(guān)鍵代碼 1:閾值與監(jiān)測(cè)通道

例程 ADC16_AnalogWindowWatchdog 中閾值配置如下(與上文公式一致:碼值 × 3300 / 65535 即得 mV):

/* Set the upper and lower threshold of AWD1 for ADC1. */

/* Upper threshold voltage: 142 mV = 0xB00 * 3300 / 65535 */

/* Lower threshold voltage: 39 mV = 0x300 * 3300 / 65535 */

DDL_ADC16_ConfigAnalogWDThresholds(ADC1, DDL_ADC16_AWD1, 0xB00, 0x300);

DDL_ADC16_EnableIT_AWD1(ADC1);

例程中還會(huì)調(diào)用 DDL_ADC16_SetAnalogWDMonitChannels(ADC1, DDL_ADC16_AWD1, DDL_ADC16_AWD_CHANNEL_1_REG) 指定監(jiān)視規(guī)則組 CH1,以及 DDL_ADC16_EnableIT_AWD1(ADC1) 使能 AWD1 中斷。簡(jiǎn)單說(shuō)就是:用碼值配置 AWD1 上下限,并指定監(jiān)視通道與中斷;當(dāng)轉(zhuǎn)換結(jié)果高于高限或低于低限時(shí)觸發(fā) AWD1 中斷,無(wú)需軟件輪詢(xún)比較。

關(guān)鍵代碼 2:中斷里區(qū)分 AWD 與 EOC

void ADC_Isr(void)

{

uint16_t adcData = 0;

uint16_t voltage = 0;

if (DDL_ADC16_IsActiveFlag_AWD1(ADC1))

{

BOARD_LEDOn(LED2);

iAWD_Flag = 1;

DDL_ADC16_ClearFlag_AWD1(ADC1);

}

if (DDL_ADC16_IsActiveFlag_EOC(ADC1))

{

adcData = DDL_ADC16_REG_ReadConversionData32(ADC1);

voltage = (adcData * 3300) / 65535; /* 碼值轉(zhuǎn) mV,Vref=3.3V */

if (iAWD_Flag == 1)

{

printf(" ADC1 Analog Window Watchdog is active. ");

iAWD_Flag = 0;

}

else

{

BOARD_LEDOff(LED2);

}

printf(" voltage : %d mV ", voltage);

Delay(0x4FFFFF);

DDL_ADC16_ClearFlag_EOC(ADC1);

}

}

簡(jiǎn)單說(shuō)就是:AWD 先到則打燈并置標(biāo)志、清 AWD 標(biāo)志;EOC 到則讀碼值、換算成電壓(mV)、若曾觸發(fā) AWD 則打印告警并清標(biāo)志否則關(guān)燈、打印電壓并延時(shí),最后清 EOC。與例程 ADC16_AnalogWindowWatchdog 一致。下圖為模擬看門(mén)狗例程運(yùn)行時(shí)的串口與 LED 表現(xiàn),便于驗(yàn)證越界告警與電壓打印。

c2756eac-4f3d-11f1-90a1-92fbcf53809c.png

適用場(chǎng)景:需要對(duì)輸入電壓做“越界即告警”的保護(hù)(過(guò)壓、欠壓、或幅值異常)。閾值和監(jiān)測(cè)通道在硬件里配置,一旦越界立刻進(jìn) AWD 中斷,不依賴(lài)軟件輪詢(xún),響應(yīng)快、也不占主循環(huán)時(shí)間。

6.4. 過(guò)采樣: ADC16_OversampleMode

在單通道連續(xù)轉(zhuǎn)換上開(kāi)啟過(guò)采樣:多次采樣再平均/移位,用吞吐?lián)Q穩(wěn)定度。G32R430 的過(guò)采樣支持 2/4/8/16 倍過(guò)采樣率,適合對(duì)精度或穩(wěn)定性要求高、而采樣率不必很高的場(chǎng)景。

過(guò)采樣公式與寄存器

ADC 過(guò)采樣的計(jì)算公式如下(手冊(cè)中的定義可參考下圖):

c2cfac96-4f3d-11f1-90a1-92fbcf53809c.png

過(guò)采樣組合與標(biāo)志位

ADC16 為16 位滿(mǎn)量程(單次最大 0xFFFF),不同 N 與移位組合下,累加后的最大值及右移后寫(xiě)入 DR 的范圍見(jiàn)下表。單次轉(zhuǎn)換時(shí)間在過(guò)采樣模式下不變,每N次轉(zhuǎn)換才給出一個(gè)有效結(jié)果,總延遲為 (N imes T_{CONV});EOC 每 N 次轉(zhuǎn)換置 1 一次,EOS 在整段 N 次序列結(jié)束時(shí)置 1,編程時(shí)可按 EOC/EOS 取數(shù)。

c32b3566-4f3d-11f1-90a1-92fbcf53809c.png

說(shuō)明:最大轉(zhuǎn)換數(shù)據(jù)= N × 0xFFFF(16 位單次滿(mǎn)量程)。各移位列 = 累加和右移 M 位;若結(jié)果 > 0xFFFF 則標(biāo)為 >16b(超出 DR 位寬,可能截?cái)嗷蛐璞苊庠摻M合)。加粗的0xFFFF表示“取平均”組合(M 使 N÷2^M = 1),此時(shí) DR 仍為 0~65535,電壓換算分母用65535。

各組合下的最大量程與適用電壓區(qū)間(Vref=3.3V)

下表合并所有 N/M 組合:結(jié)果 ≤16 位時(shí) DR 滿(mǎn)碼對(duì)應(yīng) 3.3V;結(jié)果 >16 位時(shí) 0xFFFF 對(duì)應(yīng)“未溢出時(shí)的電壓上限”(如 2x No-shift 為 3.3/2=1.65V),僅在此電壓以下 DR 與電壓線性對(duì)應(yīng)。換算一律 V = adcData × 滿(mǎn)量程電壓 / DR最大值。

c3839918-4f3d-11f1-90a1-92fbcf53809c.png

說(shuō)明:滿(mǎn)量程電壓 = 該組合下 DR 滿(mǎn)碼對(duì)應(yīng)的輸入電壓(≤16b 時(shí)為 3.3V;>16b 時(shí)為 3.3V×(0xFFFF/累加移位后滿(mǎn)值),超出后溢出)。按實(shí)際被測(cè)電壓區(qū)間選行,用該行「電壓換算」列公式。本表僅適用于參考電壓 Vref=3.3V、單端通道;差分通道或其它 Vref/量程需按相同思路另行計(jì)算。

關(guān)鍵代碼

DDL_ADC16_SetOverSamplingScope(ADC1, DDL_ADC16_OVS_GRP_REGULAR_CONTINUED);

DDL_ADC16_SetOverSamplingDiscont(ADC1, DDL_ADC16_OVS_REG_CONT);

DDL_ADC16_ConfigOverSamplingRatioShift(ADC1, DDL_ADC16_OVS_RATIO_2, DDL_ADC16_OVS_SHIFT_RIGHT_1);

總結(jié)一下,對(duì)規(guī)則組連續(xù)轉(zhuǎn)換做過(guò)采樣;RATIO_2 表示 2 次采樣累加(N=2),SHIFT_RIGHT_1 表示結(jié)果右移 1 位(÷2),即取平均,起到平滑噪聲的作用。

從 DR 到實(shí)際電壓的代碼(ADC16 為 16 位滿(mǎn)量程)

G32R430 的 ADC16 單次轉(zhuǎn)換結(jié)果為16 位滿(mǎn)量程:碼值 0~65535 對(duì)應(yīng) 0~Vref。在 RATIO_2 + SHIFT_RIGHT_1(N=2、M=2)下,硬件做的是兩次采樣求和再右移 1 位,即兩次取平均:

單次轉(zhuǎn)換范圍:0~65535

兩次之和:0~131070

右移 1 位(÷2)后:0~65535

因此過(guò)采樣后的 DR 仍為 0~65535,滿(mǎn)量程還是 16 位,只是每個(gè)碼值是兩次采樣的平均,噪聲更小。換算電壓時(shí)分母用 65535,與“單次轉(zhuǎn)換”一致:

c3db4f3c-4f3d-11f1-90a1-92fbcf53809c.png

過(guò)采樣完成后,在 EOC 中斷里按“一次有效結(jié)果”讀一次 DR 即可。下圖為過(guò)采樣例程運(yùn)行時(shí)的串口輸出,便于對(duì)照實(shí)際碼值與電壓換算結(jié)果。

c4342e86-4f3d-11f1-90a1-92fbcf53809c.png

示例(Vref=3.3V,結(jié)果單位 mV):

void ADC_Isr(void)

{

if (DDL_ADC16_IsActiveFlag_EOC(ADC1))

{

uint16_t adcData = (uint16_t)DDL_ADC16_REG_ReadConversionData32(ADC1); /* 從 DR 讀 16 位 */

/* ADC16 為 16 位滿(mǎn)量程,2x+1bit 后 DR 仍為 0~65535,故分母用 65535: */

uint32_t voltage_mV = (uint32_t)adcData * 3300U / 65535U;

DDL_ADC16_ClearFlag_EOC(ADC1);

}

}

適用場(chǎng)景:被測(cè)信號(hào)變化慢、但對(duì)精度或穩(wěn)定性要求高(如直流母線電壓、溫度、基準(zhǔn)監(jiān)測(cè))。過(guò)采樣把多次采樣平均或移位,能壓低隨機(jī)噪聲、提高有效位數(shù),代價(jià)是單次“有效采樣”的時(shí)間變長(zhǎng),適合不追求極高采樣率的場(chǎng)合。

6.5. 多通道掃描 + DMA: ADC16_MultiChannelScan

多通道掃描 + DMA:ADC 按 rank 順序掃多路,每路結(jié)果由 DMA 自動(dòng)搬到內(nèi)存,CPU 只需在 DMA 完成時(shí)處理一批數(shù)據(jù)。

關(guān)鍵代碼 1:DMA 從 ADC 搬到數(shù)組

DMA_InitStruct.PeriphOrM2MSrcAddress = (uint32_t)&ADC1->DR;

DMA_InitStruct.MemoryOrM2MDstAddress = (uint32_t)&adcData;

DMA_InitStruct.Direction = DDL_DMA_DIRECTION_PERIPH_TO_MEMORY;

DMA_InitStruct.Mode = DDL_DMA_MODE_CIRCULAR;

DMA_InitStruct.NbData = ADC_CH_SIZE; /* 與 rank 數(shù)一致 */

DDL_DMA_Init(DMA1, DDL_DMA_STREAM_0, &DMA_InitStruct);

注意:G32R430 的 ADC16 與 DMA 之間的數(shù)據(jù)搬運(yùn)只能按 32 位(word)進(jìn)行,即源端 ADC1->DR 每次以 32 位被讀出、DMA 每次搬運(yùn) 32 位到內(nèi)存。多通道時(shí)每個(gè)通道的 16 位結(jié)果在 DR 中占 32 位空間,配置 DMA 時(shí)數(shù)據(jù)寬度與 NbData 需與此一致,勿按 16 位寬度配置,否則會(huì)導(dǎo)致錯(cuò)位或搬運(yùn)異常。

源是 ADC1->DR,每完成一路轉(zhuǎn)換 DR 更新,DMA 按 32 位搬一 word;目的為 adcData[],循環(huán)模式,搬滿(mǎn) 3 個(gè) word 后可根據(jù) TC 標(biāo)志處理并再次啟動(dòng) ADC。

關(guān)鍵代碼 2:規(guī)則組 3 rank + 單次 + DMA

ADC_REG_InitStruct.SequencerLength = DDL_ADC16_REG_SEQ_SCAN_ENABLE_3RANKS;

ADC_REG_InitStruct.ContinuousMode = DDL_ADC16_REG_CONV_SINGLE;

ADC_REG_InitStruct.DMATransfer = DDL_ADC16_REG_DMA_TRANSFER_UNLIMITED;

DDL_ADC16_REG_SetSequencerRanks(ADC1, DDL_ADC16_REG_RANK_1, DDL_ADC16_CHANNEL_0);

DDL_ADC16_REG_SetSequencerRanks(ADC1, DDL_ADC16_REG_RANK_2, DDL_ADC16_CHANNEL_1);

DDL_ADC16_REG_SetSequencerRanks(ADC1, DDL_ADC16_REG_RANK_3, DDL_ADC16_CHANNEL_3);

簡(jiǎn)單說(shuō)就是,一次軟件啟動(dòng)后依次采 rank1/2/3,結(jié)果依次進(jìn) DR,DMA 按順序?qū)懭?adcData[0..2];單次模式下一輪掃完就停,需在 TC 里再次 StartConversion。

適用場(chǎng)景:要同時(shí)采多路模擬量(如多路電壓、電流、溫度),又希望 CPU 少參與搬運(yùn)。ADC 按 rank 順序掃多路,DMA 自動(dòng)把結(jié)果寫(xiě)入數(shù)組,CPU 只在“一輪掃完”時(shí)處理一批數(shù)據(jù)即可,中斷負(fù)擔(dān)小、時(shí)序更可控。

6.6. 連續(xù)多通道掃描: ADC16_ContinuousMultiChannelScan

在 MultiChannelScan 基礎(chǔ)上改為連續(xù)掃描:一次啟動(dòng)后 ADC 一直掃,DMA 循環(huán)寫(xiě)同一塊 buffer,無(wú)需每次軟件重啟 ADC。

關(guān)鍵差異(相對(duì) 6.5)

ADC_REG_InitStruct.ContinuousMode = DDL_ADC16_REG_CONV_CONTINUOUS;

區(qū)別就這一句:連續(xù)模式下一輪 3 通道掃完自動(dòng)開(kāi)始下一輪,DMA 持續(xù)把結(jié)果寫(xiě)入 adcData[],主循環(huán)或 DMA 半滿(mǎn)/全滿(mǎn)中斷里處理即可,不用再調(diào) StartConversion。

適用場(chǎng)景:需要持續(xù)監(jiān)控多路狀態(tài)量(溫度、母線電壓、輔助電源等),數(shù)據(jù)要連續(xù)更新。連續(xù)掃描 + DMA 循環(huán)寫(xiě) buffer,一次啟動(dòng)后無(wú)需反復(fù)軟件觸發(fā),主循環(huán)或半滿(mǎn)/全滿(mǎn)中斷里周期性處理即可,適合“常開(kāi)”的監(jiān)控類(lèi)應(yīng)用。

6.7. 差分輸入: ADC16_DifferentialMode

單 ADC、差分輸入(DP/DM),結(jié)果是有符號(hào)數(shù),適合共模噪聲大的長(zhǎng)線信號(hào)。

關(guān)鍵代碼:差分配置與讀數(shù)

DDL_ADC16_SetChannelSamplingTime_Diff(ADC1, DDL_ADC16_DIFF_CHANNEL0, DDL_ADC16_SAMPLINGTIME_10CYCLES);

DDL_ADC16_SetSequencerRanks_Diff(ADC1, DDL_ADC16_REG_RANK_1, DDL_ADC16_DIFF_CHANNEL0);

DDL_ADC16_SetChannelSingleDiff(ADC1, DDL_ADC16_CHANNEL_0, DDL_ADC16_DIFFERENTIAL_ENDED);

sAdcData = (int16_t)DDL_ADC16_REG_ReadConversionData32(ADC1);

fVoltage = ((float)sAdcData) * (3.3f / 32768.0f); /* 雙極性:±Vref 對(duì)應(yīng) ±32768 */

簡(jiǎn)單說(shuō)就是,采樣與 rank 用 _Diff 接口綁定差分通道;結(jié)果按 int16_t 解讀,滿(mǎn)量程對(duì)應(yīng) ±Vref,所以換算用 3.3/32768。

適用場(chǎng)景:傳感器走線較長(zhǎng)、地線共模噪聲明顯,或信號(hào)本身是差分輸出(如部分電流采樣、橋式傳感器)。差分輸入只放大兩線之差,共模干擾被抑制,讀數(shù)更穩(wěn);結(jié)果是有符號(hào)數(shù),正負(fù)電壓都能表示。

6.8. 雙 ADC 同步單次: ADC16_DualRegulSimulMode

雙 ADC 同步、單次:ADC1 與 ADC2 在同一時(shí)刻各采一路,結(jié)果合并成 32 位從 ADC1 讀出,適合“同一時(shí)刻”抓兩路(如 sin/cos 的某一拍)。

關(guān)鍵代碼 1:雙 ADC 同步模式 + 兩路 rank

DDL_ADC16_SetMultimode(ADC1, DDL_ADC16_MULTI_DUAL_REG_SIMULT);

DDL_ADC16_SetChannelSamplingTime(ADC1, DDL_ADC16_CHANNEL_1, DDL_ADC16_SAMPLINGTIME_10CYCLES);

DDL_ADC16_REG_SetSequencerRanks(ADC1, DDL_ADC16_REG_RANK_1, DDL_ADC16_CHANNEL_1);

/* ADC2 同樣配 CH1、rank1 */

DDL_ADC16_REG_Init(ADC2, &ADC_REG_InitStruct);

DDL_ADC16_SetChannelSamplingTime(ADC2, DDL_ADC16_CHANNEL_1, ...);

DDL_ADC16_REG_SetSequencerRanks(ADC2, DDL_ADC16_REG_RANK_1, DDL_ADC16_CHANNEL_1);

核心就這句:SetMultimode(..., DUAL_REG_SIMULT) 使 ADC1/ADC2 在同一觸發(fā)下同時(shí)轉(zhuǎn)換;兩邊 rank1 各綁一個(gè)通道,一次觸發(fā)得到兩路“同一時(shí)刻”的采樣。

關(guān)鍵代碼 2:讀 32 位合并結(jié)果

adcData = DDL_ADC16_REG_ReadConversionData32(ADC1);

adc1_data = (adcData & 0xFFFF);

adc2_data = (adcData >> 16) & 0xFFFF;

簡(jiǎn)單說(shuō)就是:硬件把 ADC1 結(jié)果放低 16 位、ADC2 放高 16 位;單次模式下每輪讀完需軟件再次 StartConversion(ADC1) 觸發(fā)下一對(duì)。

適用場(chǎng)景:需要在“同一時(shí)刻”抓兩路模擬量(例如某一拍的兩相電流、或 sin/cos 的某一瞬態(tài))。雙 ADC 由同一觸發(fā)同時(shí)啟動(dòng),結(jié)果合并成 32 位一次讀出,兩路時(shí)間完全對(duì)齊,沒(méi)有通道間相位差,適合做瞬態(tài)分析或單次同步記錄。

6.9. 雙 ADC 連續(xù)同步: ADC16_ContinuousDualRegulSimulMode

在 DualRegulSimulMode 上改為連續(xù):雙 ADC 持續(xù)同步采樣,無(wú)需每次軟件重啟。

關(guān)鍵差異

ADC_REG_InitStruct.ContinuousMode = DDL_ADC16_REG_CONV_CONTINUOUS; /* ADC1、ADC2 均設(shè)為 CONTINUOUS */

簡(jiǎn)單說(shuō)就是:一次 StartConversion(ADC1) 后,ADC1/ADC2 持續(xù)同步轉(zhuǎn)換,結(jié)果仍從 ADC1 以 32 位讀出并拆分,適合編碼器 sin/cos 或雙電流的連續(xù)同步采樣。

適用場(chǎng)景:編碼器 sin/cos 或雙路電流等需要“持續(xù)、且兩路嚴(yán)格同步”的采樣。雙 ADC 連續(xù)同步轉(zhuǎn)換,每次得到一對(duì)時(shí)間對(duì)齊的 (x,y),直接可喂給 atan2 或電流環(huán);一次啟動(dòng)長(zhǎng)期有效,無(wú)需每拍軟件觸發(fā),適合高節(jié)拍控制環(huán)。

6.10. 雙 ADC 雙路差分: ADC16_DualDifferentialMode

雙 ADC + 雙路差分:ADC1/ADC2 各采一路差分,仍為同步、結(jié)果合并為 32 位,兩路都用差分換算(int16 + 3.3/32768)。

關(guān)鍵代碼:雙 ADC 同步 + 差分配置與讀數(shù)

DDL_ADC16_SetMultimode(ADC1, DDL_ADC16_MULTI_DUAL_REG_SIMULT);

DDL_ADC16_SetChannelSamplingTime_Diff(ADC1, DDL_ADC16_DIFF_CHANNEL0, ...);

DDL_ADC16_SetSequencerRanks_Diff(ADC1, DDL_ADC16_REG_RANK_1, DDL_ADC16_DIFF_CHANNEL0);

DDL_ADC16_SetChannelSingleDiff(ADC1, DDL_ADC16_CHANNEL_0, DDL_ADC16_DIFFERENTIAL_ENDED);

/* ADC2 同樣配差分 rank、DIFFERENTIAL_ENDED */

u32RawData = DDL_ADC16_REG_ReadConversionData32(ADC1);

sAdcData1 = (int16_t)(u32RawData & 0xFFFF);

sAdcData2 = (int16_t)((u32RawData >> 16) & 0xFFFF);

fVoltage1 = ((float)sAdcData1) * (3.3f / 32768.0f);

fVoltage2 = ((float)sAdcData2) * (3.3f / 32768.0f);

配置思路同上,只是兩邊都走差分通道與 DIFFERENTIAL_ENDED;讀出的 32 位拆成兩個(gè) int16,再按雙極性換算成電壓。

適用場(chǎng)景:兩路信號(hào)都是差分、且必須在同一時(shí)刻采樣(如雙路隔離電流、或兩組差分傳感器)。雙 ADC 同步 + 差分,既保留“同一時(shí)刻”的時(shí)間對(duì)齊,又各自享受差分的抗共模能力,適合工業(yè)現(xiàn)場(chǎng)里對(duì)同步和抗干擾都有要求的采集。

7. 編碼器怎么搭?例程怎么選?坑怎么躲?

編碼器 sin/cos 鏈路:直接從 ADC16_ContinuousDualRegulSimulMode 上手——雙 ADC 同步采兩路,32 位結(jié)果拆成兩個(gè) 16 位,(x,y) 進(jìn)緩存(熱點(diǎn)放 DTCM RAM),喂給 ATAN2 算角度。想更穩(wěn)就加上定時(shí)器觸發(fā)的節(jié)拍對(duì)齊(SingleRegulTmrTrigger)和模擬看門(mén)狗(AnalogWindowWatchdog)做越界監(jiān)測(cè)。

按場(chǎng)景抄作業(yè):快速上手用 ContinuousConversion;多路采集用 MultiChannelScan / ContinuousMultiChannelScan;抗干擾用 DifferentialMode / DualDifferentialMode;同步采樣用 DualRegulSimulMode / ContinuousDualRegulSimulMode;節(jié)拍觸發(fā)用 SingleRegulTmrTrigger;要穩(wěn)用 OversampleMode;要保護(hù)用 AnalogWindowWatchdog。編碼器角度鏈路的推薦組合就一句話(huà):ContinuousDualRegulSimulMode +(可選)定時(shí)器觸發(fā) +(可選)看門(mén)狗。

實(shí)操時(shí)少踩坑:不進(jìn)中斷先看 NVIC 和標(biāo)志有沒(méi)有清;多通道錯(cuò)位就對(duì)著 rank 和 DMA 緩沖區(qū)捋一遍;雙 ADC 不同步檢查 SetMultimode 和啟動(dòng)順序;差分不對(duì)看看共模范圍和 int16_t 有沒(méi)有搞反;過(guò)采樣“變慢”是正常,精度和吞吐本來(lái)就要二選一。記住這些,前廳點(diǎn)單這塊基本就能少交學(xué)費(fèi)了。

8. 小結(jié):ADC16 能打在哪,和編碼器/電機(jī)有多配

其實(shí),G32R430 的 ADC16 在“能打”和“好搭”這兩件事上,都挺對(duì)得起編碼器電機(jī)應(yīng)用的。

和市面上很多 MCU 比,它討喜的地方大概有這些:雙路 16 位 SAR、真·硬件同步(同一拍采兩路,直接 32 位打包給你),不用自己拼相位;1 Msps、ENOB 約 13.5 bit,再配上定時(shí)器/外部引腳/軟件多種觸發(fā),做控制環(huán)的“節(jié)拍型采樣”很順手;過(guò)采樣、模擬看門(mén)狗、單端/差分都齊,從“先把數(shù)采穩(wěn)”到“越界趕緊報(bào)”一條龍。換句話(huà)說(shuō),你要的是“同步、節(jié)拍、抗干擾、別亂飄”,它都在硬件層給你留了位子,不用全靠軟件硬扛。

落到編碼器電機(jī)上,對(duì)得上的點(diǎn)就很直接:磁編/旋變 sin/cos 要的就是“同一時(shí)刻的兩路”——雙 ADC 同步規(guī)則組就是干這個(gè)的,連續(xù)同步那例程更是為“一直采、一直算角度”準(zhǔn)備的;FOC 里電流采樣要跟 PWM 對(duì)齊,定時(shí)器 TRGO 觸發(fā) ADC 的例程就是給你鎖節(jié)拍的;差分和過(guò)采樣在長(zhǎng)線、干擾大的現(xiàn)場(chǎng)能少踩不少坑;模擬看門(mén)狗把過(guò)壓/欠壓告警前移到硬件,省心也省周期。所以要說(shuō)“G32R430 的 ADC16 是不是為這類(lèi)應(yīng)用留了接口?”:是的,而且接口還挺全。

SDK 里的 ADC16 例程,從單通道連續(xù)、多通道掃描、到雙 ADC 單次/連續(xù)同步、差分、過(guò)采樣、模擬看門(mén)狗,把“單路→多路→雙路同步→抗干擾→穩(wěn)精度→保護(hù)”這條鏈都摸了一遍。做初步選型或方案評(píng)估時(shí),用這些例程在 TinyBoard 上跑一跑、對(duì)一對(duì)串口和 readme,已經(jīng)能判斷 ADC 這塊能不能撐住你的應(yīng)用場(chǎng)景;真要上量再做一次采樣率、抖動(dòng)和 CPU 占用的定量測(cè)試會(huì)更穩(wěn),但“能不能用、怎么搭”的結(jié)論,例程覆蓋的場(chǎng)景已經(jīng)夠你下第一刀了。

一句話(huà):前廳點(diǎn)單穩(wěn)了,后廚 ATAN2 才能秀得起來(lái)——ADC16 把“采準(zhǔn)、采齊、采在節(jié)拍上”都照顧到了,編碼器角度鏈路的第一環(huán)就算站穩(wěn)了。今天的分享就到這里,你覺(jué)得 G32R430 的 ADC16 模塊怎么樣?有踩過(guò)坑或想安利的用法,歡迎在評(píng)論區(qū)嘮一嘮,我們下篇見(jiàn)。

注:文章作者在原帖中提供了詳細(xì)代碼,有需要請(qǐng)至原文21ic論壇

原文地址:https://bbs.21ic.com/icview-3509696-1-1.html?_dsign=f7a293ec

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

    關(guān)注

    147

    文章

    19218

    瀏覽量

    405081
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    4020

    瀏覽量

    143667
  • adc
    adc
    +關(guān)注

    關(guān)注

    100

    文章

    7969

    瀏覽量

    557280
  • 極海半導(dǎo)體
    +關(guān)注

    關(guān)注

    0

    文章

    227

    瀏覽量

    4825

原文標(biāo)題:極海芯得 EP.81 | G32R430 ADC16 全用例實(shí)戰(zhàn):從單通道采樣到雙ADC同步解算

文章出處:【微信號(hào):geehysemi,微信公眾號(hào):Geehy極海半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    解碼5G基站和智慧工廠應(yīng)用熱點(diǎn),半導(dǎo)體MCU如何實(shí)現(xiàn)高速增長(zhǎng)?

    作為國(guó)內(nèi)MCU 芯片的重要廠商之一,半導(dǎo)體在工業(yè)物聯(lián)網(wǎng)、5G通訊及消費(fèi)電子等MCU市場(chǎng)頗有建樹(shù),
    的頭像 發(fā)表于 07-10 13:59 ?1.1w次閱讀

    G32R501數(shù)據(jù)手冊(cè)# 內(nèi)置FPU,支持 Arm Helium,實(shí)時(shí)控制 MCU

    G32R501實(shí)時(shí)控制MCU : 基本信息 : G32R5系列實(shí)時(shí)控制MCU搭載Arm v8
    的頭像 發(fā)表于 02-19 13:58 ?3635次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>G32R</b>501數(shù)據(jù)手冊(cè)# 內(nèi)置FPU,支持 Arm Helium,實(shí)時(shí)控制 <b class='flag-5'>MCU</b>

    STM32CUBEIDE配置STM32G030C8T6 ADC不同轉(zhuǎn)換模式下,ADC15,ADC16,AWD2,AWD3不能使能怎么解決?

    STM32CUBEIDE配置STM32G030C8T6 ADC不同轉(zhuǎn)換模式下,ADC15,ADC16,AWD2,AWD3不能使能?
    發(fā)表于 04-01 07:50

    stm32f030k的ADC16 17 18三個(gè)內(nèi)部通道采樣值是FFF,在stm32051中正常,為什么?

    stm32f030k6T6的ADC16 1718三個(gè)內(nèi)部通道采樣值是FFF,在stm32051中正常,st的老師給測(cè)試下,以證明就是樣
    發(fā)表于 05-17 07:38

    經(jīng)典《C語(yǔ)言實(shí)戰(zhàn)105

    經(jīng)典《C語(yǔ)言實(shí)戰(zhàn)105》,各種實(shí)戰(zhàn)程序模塊 拿來(lái)就可以的喲
    發(fā)表于 12-18 14:32 ?72次下載

    MSP430 G2553 學(xué)習(xí)筆記--ADC模塊

    MSP430 G2553 學(xué)習(xí)筆記--ADC模塊(通信電源技術(shù)是省刊嗎)-文檔為MSP430 G
    發(fā)表于 09-18 16:20 ?15次下載
    MSP<b class='flag-5'>430</b> <b class='flag-5'>G</b>2553 學(xué)習(xí)筆記--<b class='flag-5'>ADC</b><b class='flag-5'>模塊</b>

    MCU型號(hào)表

    MCU型號(hào)表
    發(fā)表于 11-09 21:03 ?0次下載
    <b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>MCU</b>型號(hào)表

    MSP430F2252-Q1 具有 16KB 閃存 ADC 和 I2C/SPI/UART 的汽車(chē)類(lèi) 16MHz MCU

    ADC、比較器、DMA、UART/SPI/I2C 和計(jì)時(shí)器的 16MHz MCU MSP430F5249 具有 128KB 閃存、8KB SRAM、10 位
    的頭像 發(fā)表于 12-23 13:32 ?2289次閱讀
    MSP<b class='flag-5'>430</b>F2252-Q1 具有 <b class='flag-5'>16</b>KB 閃存 <b class='flag-5'>ADC</b> 和 I2C/SPI/UART 的汽車(chē)類(lèi) <b class='flag-5'>16</b>MHz <b class='flag-5'>MCU</b>

    MindSDK應(yīng)用基礎(chǔ)—ADC模塊

    MindSDK為MM32主流的微控制器,實(shí)現(xiàn)了一組ADC工程。本文通過(guò)講解ADC模塊的樣工程,介紹
    的頭像 發(fā)表于 08-17 17:16 ?2125次閱讀

    半導(dǎo)體G32R5亮相德國(guó)慕尼黑 助力高效解決實(shí)時(shí)控制系統(tǒng)挑戰(zhàn)

    、機(jī)器人等多個(gè)領(lǐng)域。 近日,在2024德國(guó)慕尼黑國(guó)際電子元器件博覽會(huì)(electronica 2024)上,展示了G32R5高性能實(shí)時(shí)控制MCU。
    的頭像 發(fā)表于 12-02 18:13 ?1841次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b>半導(dǎo)體<b class='flag-5'>G32R</b>5亮相德國(guó)慕尼黑 助力高效解決實(shí)時(shí)控制系統(tǒng)挑戰(zhàn)

    于electronica 2024展示G32R5高性能實(shí)時(shí)控制MCU

    近日,在2024德國(guó)慕尼黑國(guó)際電子元器件博覽會(huì)(electronica 2024)上大放異彩,展示了其最新的G32R5高性能實(shí)時(shí)控制MCU。 在此次博覽會(huì)上,
    的頭像 發(fā)表于 12-16 13:42 ?1582次閱讀

    發(fā)布G32R5xx SDK,簡(jiǎn)化MCU軟件遷移

    近日,正式推出了其最新的G32R5xx SDK(軟件開(kāi)發(fā)工具包)。這款SDK以其高兼容性設(shè)計(jì)為核心亮點(diǎn),旨在顯著簡(jiǎn)化實(shí)時(shí)控制微控制器(MCU)的軟件遷移工作,為開(kāi)發(fā)者帶來(lái)前所未有的
    的頭像 發(fā)表于 02-18 13:57 ?1596次閱讀

    全新發(fā)布首款G32R430編碼器專(zhuān)用MCU,為高精度運(yùn)動(dòng)控制與位置反饋場(chǎng)景設(shè)計(jì)

    編碼器對(duì)極致性能的追求,基于這一行業(yè)需求,全新發(fā)布首款G32R430高精度編碼器專(zhuān)用MCU,旨在從系統(tǒng)架構(gòu)到外設(shè)規(guī)格,全方位助力磁/光/感編碼器實(shí)現(xiàn)精度、功耗、實(shí)時(shí)性等多維度的跨越
    的頭像 發(fā)表于 12-08 14:25 ?923次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b>全新發(fā)布首款<b class='flag-5'>G32R430</b>編碼器專(zhuān)用<b class='flag-5'>MCU</b>,為高精度運(yùn)動(dòng)控制與位置反饋場(chǎng)景設(shè)計(jì)

    關(guān)于G32R430編碼器專(zhuān)用MCU棧式機(jī)器人芯片及應(yīng)用解決方案介紹

    為了幫助廣大用戶(hù)快速了解全新發(fā)布的G32R430編碼器專(zhuān)用MCU棧式機(jī)器人芯片及應(yīng)用解決方案,近期我們參加了兩場(chǎng)行業(yè)資深媒體平臺(tái)的線
    的頭像 發(fā)表于 01-08 14:22 ?952次閱讀
    關(guān)于<b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>G32R430</b>編碼器專(zhuān)用<b class='flag-5'>MCU</b>和<b class='flag-5'>全</b>棧式機(jī)器人芯片及應(yīng)用解決方案介紹

    G32R430編碼器專(zhuān)用MCU贏得兩項(xiàng)行業(yè)榮譽(yù)

    4月10日,中國(guó)半導(dǎo)體與機(jī)器人領(lǐng)域迎來(lái)兩大年度行業(yè)盛會(huì)。憑借卓越的技術(shù)創(chuàng)新力與過(guò)硬的產(chǎn)品實(shí)力,一舉斬獲多項(xiàng)重磅榮譽(yù),收獲行業(yè)雙重權(quán)威認(rèn)證。
    的頭像 發(fā)表于 04-14 09:27 ?1681次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>G32R430</b>編碼器專(zhuān)用<b class='flag-5'>MCU</b>贏得兩項(xiàng)行業(yè)榮譽(yù)
    长顺县| 巴林左旗| 剑川县| 刚察县| 正阳县| 武定县| 黄石市| 珠海市| 大渡口区| 尚义县| 祥云县| 南溪县| 加查县| 高淳县| 关岭| 眉山市| 美姑县| 星座| 普定县| 宁津县| 平罗县| 仙居县| 子长县| 镇赉县| 永顺县| 临夏县| 呼伦贝尔市| 吉隆县| 卢湾区| 无锡市| 宿迁市| 延津县| 云阳县| 韶关市| 博爱县| 沭阳县| 九龙城区| 新建县| 泰宁县| 正定县| 客服|