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

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

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

16位AD是國(guó)產(chǎn)MCU的痛點(diǎn)

Q4MP_gh_c472c21 ? 來(lái)源:21ic論壇 ? 作者:吶咯密密 ? 2021-02-11 10:06 ? 次閱讀

16位的AD可以說(shuō)是國(guó)產(chǎn)MCU的痛點(diǎn),至少在廉價(jià)的單片機(jī)里面,這個(gè)真的找不到飛思卡爾的替代品。之前未使用16位AD的時(shí)候,使用的是STM32F0的單片機(jī),因?yàn)?a target="_blank">產(chǎn)品需要,一直是將48M的主頻超頻到56M跑超速,后來(lái)因?yàn)橐咔榈仍?,ST的價(jià)格飛上天,交期還特長(zhǎng),無(wú)奈之下?lián)Q了國(guó)產(chǎn)兆易創(chuàng)新的GD32,不得不說(shuō),對(duì)標(biāo)的GDE23主頻直接到了72M,M0+,不用超頻,正常跑高速就行。價(jià)格還便宜,不收過(guò)路費(fèi)。在這一點(diǎn)上,國(guó)產(chǎn)的MCU真的很強(qiáng)。

628f80de-57dd-11eb-8b86-12bb97331649.png

現(xiàn)在項(xiàng)目需要16位的AD,一時(shí)間找不到任何國(guó)產(chǎn)的替代品,當(dāng)然我們也把主意打到了ST的頭上,但是捋到STM32H7才找到16位AD,2020年的ST的價(jià)格大家都清楚,如果選用這款芯片,我們的產(chǎn)品成本將大大增加,這已經(jīng)超出了我們的預(yù)算。在之后的一番尋找中,確定了這個(gè)被恩智浦收購(gòu)了多年的飛思卡爾的芯片。 MKV30,價(jià)格便宜,針對(duì)電機(jī)行業(yè)出生的MCU,在ADC的處理上可謂是下足了功夫。

自帶差分輸入模塊,支持高達(dá)16位的差分AD輸入,自帶硬件平均,可對(duì)輸入的AD信號(hào)進(jìn)行自動(dòng)平均,支持低功耗和高速AD模式,可自動(dòng)校準(zhǔn)AD,自帶比較器。 但是,因?yàn)楹茉缇捅皇召?gòu),所以飛思卡爾的資料并不如NXP自家的產(chǎn)品那樣詳細(xì)豐富,導(dǎo)致開(kāi)發(fā)難度很大,而且這款芯片不像K60那款,因?yàn)樵缙谟?a href="http://srfitnesspt.com/v/" target="_blank">智能車(chē)競(jìng)賽的緣故,網(wǎng)友分享的資料和經(jīng)驗(yàn)很多。這款我拿到手里就很懵。本人并不是大佬,對(duì)新的單片機(jī)上手不是很容易。在開(kāi)發(fā)的第一周就點(diǎn)了個(gè)燈,到處是坑。 下面分享我的開(kāi)發(fā)過(guò)程和經(jīng)驗(yàn): 官網(wǎng)下載SDK直接pass,在有個(gè)基礎(chǔ)工程的基礎(chǔ)上使用MCUXpresso Config Tool配置ADC的引腳和功能初始化。 配置引腳:

因?yàn)槲倚枰褂脙陕稟DC的差分模式,這里配置ADC0和ADC1的引腳。使用PORTE16、PORTE17 、PORTE18 、PORTE19四個(gè)引腳。對(duì)應(yīng)ADC的ADC0_DP1,ADC0_DM1,ADC1_DP1,ADC1_DM1。軟件會(huì)自動(dòng)配置引腳相關(guān)配置代碼。 ADC配置:

配置為16位的差分AD,因?yàn)槲易非笞罡咚俚腁DC采集,所以時(shí)鐘1分頻,硬件的8次平均。 ADC1配置相同。 開(kāi)始進(jìn)入代碼:

/******************************************************************************** Definitions******************************************************************************/#define

DEMO_ADC16_CHANNEL 1U#define DEMO_ADC16_CHANNEL_GROUP 0U#define

DEMO_ADC16_BASEADDR ADC0#define DEMO_DMAMUX_BASEADDR DMAMUX0#define

DEMO_DMA_CHANNEL 1U#define DEMO_DMA_ADC0_SOURCE 40U#define

DEMO_DMA_ADC1_SOURCE 41U#define DEMO_DMA_BASEADDR DMA0#define

ADC16_RESULT_REG_ADDR 0x4003b010U#define ADC16_RESULT_REG_ADDR1 0x40027010U//查詢寄存器手冊(cè)得到#define DEMO_DMA_IRQ_ID DMA0_IRQn #define DEMO_ADC16_SAMPLE_COUNT 8U /* The ADC16 sample count. *//************************************************************************************************************************

ADC0 initialization code**********************************************************************************************************************/adc16_channel_config_t

ADC0_channelsConfig[1] = { { .channelNumber = 1U, //傳輸通道 .enableDifferentialConversion = true, //差分模式 .enableInterruptOnConversionCompleted = false, //使能傳輸完成中斷 }};const adc16_config_t ADC0_config = { .referenceVoltageSource = kADC16_ReferenceVoltageSourceVref, .clockSource = 0, .enableAsynchronousClock = false, .clockDivider = kADC16_ClockDivider1, .resolution = kADC16_ResolutionSE16Bit, .longSampleMode = kADC16_LongSampleDisabled, .enableHighSpeed = true, .enableLowPower = false, .enableContinuousConversion = false//連續(xù)的轉(zhuǎn)換};const

adc16_channel_mux_mode_t ADC0_muxMode = kADC16_ChannelMuxA;/* 硬件平均 8 */const

adc16_hardware_average_mode_t ADC0_hardwareAverageMode = kADC16_HardwareAverageDisabled;void ADC0_init(void) { /* Initialize ADC16 converter */ ADC16_Init(ADC0_PERIPHERAL, &ADC0_config); /* Make sure, that software trigger is used */

ADC16_EnableHardwareTrigger(ADC0_PERIPHERAL, false); /* Configure hardware average mode */ ADC16_SetHardwareAverage(ADC0_PERIPHERAL, ADC0_hardwareAverageMode); /* Configure channel multiplexing mode */

ADC16_SetChannelMuxMode(ADC0_PERIPHERAL, ADC0_muxMode); /* Initialize channel */

ADC16_SetChannelConfig(ADC0_PERIPHERAL, 0U, &ADC0_channelsConfig[0]); /* Perform auto calibration */ ADC16_DoAutoCalibration(ADC0_PERIPHERAL); /* Enable DMA. */ ADC16_EnableDMA

(ADC0_PERIPHERAL, false);}/************************************************************************************************************************ ADC1 initialization code**********************************************************************************************************************/adc16_channel_config_t ADC1_channelsConfig[1] = { { .channelNumber = 2U, .enableDifferentialConversion = true, //差分模式

.enableInterruptOnConversionCompleted = false, }};const adc16_config_t ADC1_config = { .referenceVoltageSource = kADC16_ReferenceVoltageSourceVref, .clockSource = 0, .enableAsynchronousClock = false, .clockDivider = kADC16_ClockDivider1, .resolution = kADC16_ResolutionSE16Bit, .longSampleMode = kADC16_LongSampleDisabled, .enableHighSpeed = true, .enableLowPower = false, .enableContinuousConversion = false//連續(xù)的轉(zhuǎn)換};const

adc16_channel_mux_mode_t ADC1_muxMode = kADC16_ChannelMuxA;const

adc16_hardware_average_mode_t ADC1_hardwareAverageMode = kADC16_HardwareAverageDisabled;void ADC1_init(void) {// EnableIRQ(ADC0_IRQn); /* 初始化ADC16轉(zhuǎn)換器 */

ADC16_Init(ADC1_PERIPHERAL, &ADC1_config); /* 不使用軟件觸發(fā)器 */

ADC16_EnableHardwareTrigger(ADC1_PERIPHERAL, false); /* 配置硬件平均模式 */ ADC16_SetHardwareAverage(ADC1_PERIPHERAL, ADC1_hardwareAverageMode); /* 配置信道多路復(fù)用模式 */ ADC16_SetChannelMuxMode(ADC1_PERIPHERAL, ADC1_muxMode); /* 初始化通道 */

ADC16_SetChannelConfig(ADC1_PERIPHERAL, 1U, &ADC1_channelsConfig[0]); /* 自動(dòng)校準(zhǔn) */

ADC16_DoAutoCalibration(ADC1_PERIPHERAL); /* Enable DMA. */ ADC16_EnableDMA(ADC1_PERIPHERAL, false); } 這里以ADC0為例,傳輸通道設(shè)置為1,配置為差分模式,不使能傳輸完成中斷。

ADC0_config結(jié)構(gòu)體中的配置主要是配置時(shí)鐘和采樣速度,我的配置是我能達(dá)到的最高速度。在ADC0_init函數(shù)中,配置為軟件觸發(fā),如果使用PDB,需要改為硬件觸發(fā),關(guān)閉了硬件平均。 當(dāng)我們需要獲取ADC的數(shù)據(jù)時(shí),需要以下代碼。

adc16_channel_config_t adc16ChannelConfigStruct; adc16ChannelConfigStruct.channelNumber = 1; //ADC通道 adc16ChannelConfigStruct.channelNumber = 2;

adc16ChannelConfigStruct.enableDifferentialConversion = true;//使能差分

adc16ChannelConfigStruct.enableInterruptOnConversionCompleted = false;//失能中斷

ADC16_SetChannelConfig(ADC1, 0U, &adc16ChannelConfigStruct); ADC16_SetChannelConfig(ADC0, 0U, &adc16ChannelConfigStruct); while (0U == (kADC16_ChannelConversionDoneFlag &

ADC16_GetChannelStatusFlags(ADC1, 0U))); ADC_Value0 = ADC16_GetChannelConversionValue(ADC0, 0U); ADC_Value1 = ADC16_GetChannelConversionValue(ADC1, 0U);

可以將上述代碼添加進(jìn)主循環(huán),在需要AD值時(shí)便可以直接讀取ADC_Value0和ADC_Value1的值便可,可以包裝成一個(gè)函數(shù),需要時(shí)調(diào)用即可,執(zhí)行一次該代碼大約需要3us。如果AD的通道很多,可以使用for循環(huán),改善代碼。但是此方法占用MCU的內(nèi)存,下一篇更新靈活多通道的DMA采集。 要點(diǎn): 這里配置為ADC16位模式,但是并不是真正意義上的16位,在數(shù)據(jù)寄存器中有介紹,數(shù)據(jù)寄存器是16位,只有低15位是有效數(shù)據(jù)位,最高位為16位,所以ADC的范圍是0~32767,加上最高位的符號(hào)位能達(dá)到-32767~+32767.

640bad3e-57dd-11eb-8b86-12bb97331649.png

我在這里沒(méi)看手冊(cè),采集到的數(shù)據(jù)一直無(wú)法理解。

64334b8c-57dd-11eb-8b86-12bb97331649.png

輸入通道輸入的是正弦波,結(jié)果串口打印出來(lái)的確是這個(gè)玩意,最后處理一下符號(hào)位解決。 上電之后會(huì)開(kāi)始ADC采集,ADC采集完成觸發(fā)dma通道1開(kāi)始傳輸?shù)街付ň彺?,dma通道1傳輸完成觸發(fā)鏈接,鏈接dma通道2,dma通道2將adc配置傳給adc配置寄存器。這樣可以靈活采集各種通道,并且對(duì)資源占用較小。只要設(shè)置好配置adc的數(shù)組,剩下的dma就會(huì)處理.DMA配置:

void EDMA_Configuration(void){ edma_config_t userConfig; /* 配置 DMAMUX */ DMAMUX_Init(DMAMUX); /* 通道CH1初始化 */ DMAMUX_SetSource(DMAMUX, 1, 40); /* Map ADC0 source to channel 1 */

DMAMUX_EnableChannel(DMAMUX, 1); /* 通道CH2初始化 */ DMAMUX_SetSource(DMAMUX, 2, 41);/* Map ADC1 source to channel 2 */ DMAMUX_EnableChannel(DMAMUX, 2); /* 獲取eDMA默認(rèn)配置結(jié)構(gòu) */

EDMA_GetDefaultConfig(&userConfig); EDMA_Init(DMA0, &userConfig); EDMA_CreateHandle(&g_EDMA_Handle, DMA0, 1); /* 設(shè)置回調(diào) */ EDMA_SetCallback(&g_EDMA_Handle, Edma_Callback, NULL); /*eDMA傳輸結(jié)構(gòu)配置 。設(shè)置dma通道1的adc值傳到g_adc16SampleDataArray*/ EDMA_PrepareTransfer(&transferConfig, (void *)ADC16_RESULT_REG_ADDR, sizeof(uint32_t), (void *)g_adc16SampleDataArray, sizeof(uint32_t), sizeof(uint32_t), sizeof(g_adc16SampleDataArray),

kEDMA_PeripheralToMemory); EDMA_SubmitTransfer(&g_EDMA_Handle, &transferConfig); /* Enable interrupt when transfer is done. */ EDMA_EnableChannelInterrupts(DEMO_DMA_BASEADDR, DEMO_DMA_CHANNEL, kEDMA_MajorInterruptEnable);#if defined(FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT) &&

FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT /* Enable async DMA request. */

EDMA_EnableAsyncRequest(DEMO_DMA_BASEADDR, DEMO_DMA_CHANNEL, true);#endif /*

FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT */ /* Enable transfer. */

EDMA_StartTransfer(&g_EDMA_Handle); //將dma通道1鏈接到通道0 EDMA_SetChannelLink(DMA0, 1,

kEDMA_MinorLink, 2); EDMA_SetChannelLink(DMA0, 1,

kEDMA_MajorLink,2); //*********************************************************************************************/

EDMA_CreateHandle(&DMA_CH2_Handle, DMA0, 2); EDMA_SetCallback(&DMA_CH2_Handle, Edma_Callback1, NULL); /* 設(shè)置回調(diào) */ EDMA_PrepareTransfer(&g_transferConfig, (void *)ADC16_RESULT_REG_ADDR1, sizeof(uint32_t), (void *)g_adc16SampleDataArray1, sizeof(uint32_t), sizeof(uint32_t), sizeof(g_adc16SampleDataArray1), kEDMA_PeripheralToMemory); EDMA_SubmitTransfer(&DMA_CH2_Handle, &g_transferConfig); //傳輸完后修正通道 DMA0-》TCD[1].DLAST_SGA = -1* sizeof(g_adc16SampleDataArray); DMA0-》TCD[2].DLAST_SGA = -1* sizeof(g_adc16SampleDataArray1); /* 當(dāng)傳輸完成時(shí)啟用中斷。 */ EDMA_EnableChannelInterrupts(DEMO_DMA_BASEADDR, 2, kEDMA_MajorInterruptEnable);#if defined(FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT) &&

FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT// /* 啟用異步DMA請(qǐng)求 */

EDMA_EnableAsyncRequest(DEMO_DMA_BASEADDR, 2, true);#endif /* FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT */ /* 使能數(shù)據(jù)傳輸 */ EDMA_StartTransfer(&DMA_CH2_Handle); }

DAM 通道1和通道2的callback函數(shù)。 因?yàn)橥ǖ?是通過(guò)通道一鏈接觸發(fā)的,所以在通道1的回調(diào)函數(shù)里面就不用再調(diào)用EDMA_StartTransfer()函數(shù)了。 此處注意將ADC的采樣模式改為連續(xù)模式。

static void Edma_Callback(edma_handle_t *handle, void *userData, bool transferDone, uint32_t tcds){ EDMA_StartTransfer(&g_EDMA_Handle); g_Transfer_Done = false; if (transferDone) { g_Transfer_Done = true; }} static void Edma_Callback1(edma_handle_t *handle, void *userData, bool transferDone, uint32_t tcds){ g_Transfer_Done1 = false; if (transferDone) { g_Transfer_Done1 = true; }}

至此ADC的DMA就完成了,ADC會(huì)一直采集并通過(guò)DMA傳輸?shù)絞_adc16SampleDataArray[]和g_adc16SampleDataArray1[]兩個(gè)數(shù)組中,需要時(shí)可以直接取值。我在使用ADC的DMA連續(xù)采樣時(shí)遇到一個(gè)問(wèn)題,因?yàn)檫B續(xù)采樣會(huì)觸發(fā)callback函數(shù),此過(guò)程會(huì)觸發(fā)edma中斷,容易打斷原來(lái)代碼的進(jìn)程,如在高速應(yīng)用中使用需注意。

?

芯片的入門(mén)環(huán)境搭建

該芯片的入門(mén)環(huán)境搭建,內(nèi)容主要是官網(wǎng)獲取ASDK,這個(gè)芯片我不知道是因?yàn)橛玫奶貏e少,還是沒(méi)公開(kāi)開(kāi)發(fā)經(jīng)驗(yàn),很難找到相關(guān)資料,只有在NXP社區(qū)能找到一點(diǎn)資料,代理商也是只負(fù)責(zé)銷售,技術(shù)問(wèn)題一概不管。在一頓亂搞之后搭建完一些工具之后,發(fā)現(xiàn)官方的SDK在我的板子上根本跑不起來(lái),但是還好NXP論壇還有一個(gè)管理員提供一些支持,讓我能一步步走下來(lái)。那就開(kāi)始點(diǎn)一個(gè)燈吧。 無(wú)論是下載資料還是論壇討論都必須注冊(cè)NXP賬號(hào),注冊(cè)這里不談,跳過(guò)。

在此鏈接下找到MCUXpresso Config Tools 軟件,然后下載。

下載完成自己安裝,此軟件可自行配置工程,相當(dāng)于ST的STM32CubeMX,可以方便配置時(shí)鐘外設(shè),我們只用專注于寫(xiě)邏輯便好,因?yàn)槲沂亲约寒?huà)的板子,搭建的工程無(wú)法使用,只用它配置外設(shè)。 相同的頁(yè)面繼續(xù)下載一個(gè)SDK,MCUXpresso Software Development Kit (SDK)

在搜索框輸入芯片名稱,會(huì)彈出相應(yīng)開(kāi)發(fā)板或芯片,我是自己打的板子,選擇芯片

選擇SDK版本

點(diǎn)擊進(jìn)入SDK

直接下載就好啦,因?yàn)槲覜](méi)有梯子,下載特別慢,用其他瀏覽器會(huì)下載失敗,推介使用谷歌瀏覽器。

之后下載KEIL的MDK包,這個(gè)自行去官網(wǎng)下載。

原文標(biāo)題:國(guó)產(chǎn)16位MCU的痛點(diǎn),可以用這款物美價(jià)廉產(chǎn)品(附完整開(kāi)發(fā)過(guò)程)

文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(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)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50033

    瀏覽量

    419872
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44459

    瀏覽量

    631241
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16813

    瀏覽量

    349492

原文標(biāo)題:國(guó)產(chǎn)16位MCU的痛點(diǎn),可以用這款物美價(jià)廉產(chǎn)品(附完整開(kāi)發(fā)過(guò)程)

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    國(guó)產(chǎn)16SAR模數(shù)轉(zhuǎn)換器SC1461替換AD7793用于智能發(fā)射機(jī)

    國(guó)產(chǎn)16SAR模數(shù)轉(zhuǎn)換器SC1461替換AD7793用于智能發(fā)射機(jī)
    的頭像 發(fā)表于 09-30 10:05 ?229次閱讀
    <b class='flag-5'>國(guó)產(chǎn)</b><b class='flag-5'>16</b><b class='flag-5'>位</b>SAR模數(shù)轉(zhuǎn)換器SC1461替換AD7793用于智能發(fā)射機(jī)

    國(guó)產(chǎn)MCU有推薦嗎?最好是經(jīng)過(guò)市場(chǎng)驗(yàn)證的!

    本帖最后由 網(wǎng)卡朋友 于 2024-9-26 16:50 編輯 在電子產(chǎn)品開(kāi)發(fā)中,微控制器(MCU)是實(shí)現(xiàn)各種功能的核心部件。隨著國(guó)內(nèi)電子技術(shù)的快速發(fā)展,越來(lái)越多的國(guó)產(chǎn)MCU開(kāi)始
    發(fā)表于 09-26 16:38

    國(guó)產(chǎn)8MCU為什么能被國(guó)內(nèi)的電子工程師大量應(yīng)用?

    長(zhǎng)期以來(lái),高端MCU市場(chǎng)一直由國(guó)外品牌占據(jù)主導(dǎo)地位,但隨著全球供應(yīng)鏈格局的變化以及國(guó)內(nèi)對(duì)核心技術(shù)自主可控需求的日益增長(zhǎng),國(guó)產(chǎn)MCU迎來(lái)了前所未有的發(fā)展機(jī)遇。 特別是8
    發(fā)表于 09-26 15:02

    【直播預(yù)告】ADI &amp;amp; WT·世健MCU點(diǎn)問(wèn)題探索季:MCU應(yīng)用難題全力擊破!

    ;ADI&WT?世健MCU點(diǎn)探索季"活動(dòng),吸引了眾多工程師熱議。針對(duì)工程師關(guān)心的問(wèn)題,WT文曄科技將邀請(qǐng)ADI講師在9月19日開(kāi)啟直播分享,幫助工程師們?nèi)羝?b class='flag-5'>MCU應(yīng)用難題~直播時(shí)
    的頭像 發(fā)表于 09-19 08:05 ?256次閱讀
    【直播預(yù)告】ADI &amp;amp; WT·世健<b class='flag-5'>MCU</b><b class='flag-5'>痛</b><b class='flag-5'>點(diǎn)</b>問(wèn)題探索季:<b class='flag-5'>MCU</b>應(yīng)用難題全力擊破!

    Rohm推出16微控制器(MCU)

    Rohm,一家知名的半導(dǎo)體制造商,近期推出了專為混合模擬-數(shù)字控制電源回路設(shè)計(jì)的16微控制器(MCU)系列ML62Q20xx。這一系列MCU旨在滿足中功率電源市場(chǎng)對(duì)更高可靠性和精確控
    的頭像 發(fā)表于 07-11 15:30 ?337次閱讀

    國(guó)產(chǎn)32芯片發(fā)展是否到了瓶頸期?

    在當(dāng)今數(shù)字化時(shí)代,微控制單元(MCU)作為電子產(chǎn)品的“大腦”,扮演著至關(guān)重要的角色。32MCU以其更高的性能、更低的功耗和更豐富的功能,逐漸成為市場(chǎng)的主流選擇。今天我們來(lái)聊聊關(guān)于國(guó)產(chǎn)
    的頭像 發(fā)表于 05-20 16:31 ?388次閱讀

    國(guó)產(chǎn)RISC-V MCU推薦

    的時(shí)鐘頻率,支持32乘法器、32除法器,支持最多32個(gè)向量中斷,共7個(gè)優(yōu)先級(jí),支持最多8個(gè)硬件斷點(diǎn)/觀察點(diǎn),支持最多16個(gè)PMP區(qū)域,用于調(diào)試的JTAG接口。 ESP32還可以
    發(fā)表于 04-17 11:00

    愛(ài)普特再推超高性價(jià)比全國(guó)產(chǎn)32MCU—APT32F1025B

    近日,全國(guó)產(chǎn)32MCU小巨人企業(yè)愛(ài)普特微電子宣布推出一款超高性價(jià)比的全國(guó)產(chǎn)RISC核32MCU
    的頭像 發(fā)表于 03-29 08:17 ?809次閱讀
    愛(ài)普特再推超高性價(jià)比全<b class='flag-5'>國(guó)產(chǎn)</b>32<b class='flag-5'>位</b><b class='flag-5'>MCU</b>—APT32F1025B

    選用8和32MCU的關(guān)鍵考量

    基于位數(shù)的MCU核心架構(gòu):MCU使用的位數(shù)為8、16、32(有時(shí)稱為深度或數(shù)據(jù)寬度)來(lái)表示寄存器的大小,如8為每個(gè)寄存器8
    發(fā)表于 03-26 11:14 ?517次閱讀

    電梯物聯(lián)網(wǎng)技術(shù)如何解決電梯管理的點(diǎn)?

    隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,電梯行業(yè)也迎來(lái)了新的變革。電梯物聯(lián)網(wǎng)技術(shù)的應(yīng)用為電梯管理帶來(lái)了許多新的機(jī)遇和優(yōu)勢(shì),同時(shí)也有效地解決了傳統(tǒng)電梯管理中存在的各種點(diǎn)。 本文梯云物聯(lián)網(wǎng)將探討電梯物聯(lián)網(wǎng)技術(shù)如何解決電梯管理的
    的頭像 發(fā)表于 03-19 10:09 ?433次閱讀

    替代AD7606,國(guó)產(chǎn)16ADC SC1467在智能電網(wǎng)中的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《替代AD7606,國(guó)產(chǎn)16ADC SC1467在智能電網(wǎng)中的應(yīng)用.docx》資料免費(fèi)下載
    發(fā)表于 02-26 09:24 ?1次下載

    一種可應(yīng)對(duì)E/E架構(gòu)變化的最新16RL78/F2x MCU

    MCU),但現(xiàn)在則需要更先進(jìn)的16MCU。在本白皮書(shū)中,我們將介紹可應(yīng)對(duì)E/E架構(gòu)變化的最新的16
    的頭像 發(fā)表于 02-23 10:00 ?462次閱讀
    一種可應(yīng)對(duì)E/E架構(gòu)變化的最新<b class='flag-5'>16</b><b class='flag-5'>位</b>RL78/F2x <b class='flag-5'>MCU</b>

    基于TI 16MCU的新型倒車(chē)?yán)走_(dá)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于TI 16MCU的新型倒車(chē)?yán)走_(dá)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 11-17 15:42 ?0次下載
    基于TI <b class='flag-5'>16</b><b class='flag-5'>位</b><b class='flag-5'>MCU</b>的新型倒車(chē)?yán)走_(dá)設(shè)計(jì)

    超低功耗16MSP430 TM電源管理解決方案MCU

    電子發(fā)燒友網(wǎng)站提供《超低功耗16MSP430 TM電源管理解決方案MCU.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 11:25 ?0次下載
    超低功耗<b class='flag-5'>16</b><b class='flag-5'>位</b>MSP430 TM電源管理解決方案<b class='flag-5'>MCU</b>

    【深度測(cè)評(píng)】HPM6750 MCU片內(nèi)16ADC精度測(cè)試

    【深度測(cè)評(píng)】HPM6750 MCU片內(nèi)16ADC精度測(cè)試
    的頭像 發(fā)表于 10-30 17:43 ?2589次閱讀
    【深度測(cè)評(píng)】HPM6750 <b class='flag-5'>MCU</b>片內(nèi)<b class='flag-5'>16</b><b class='flag-5'>位</b>ADC精度測(cè)試