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

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

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

MM32F0010使用總結(jié)

jf_pJlTbmA9 ? 來(lái)源:靈動(dòng)MM32MCU ? 作者:靈動(dòng)MM32MCU ? 2023-11-01 17:07 ? 次閱讀

案例一

工程師提到:MM32F0010 的 PA13 和 PA14 引腳能否設(shè)置成GPIO?如何設(shè)置?

分析原因

PA13PA14 默認(rèn)是 SWD 功能,并且可以設(shè)置成通用 GPIO 或其他復(fù)用功能,需要將 PA13PA14 的 SWD 功能進(jìn)行 disable 才可以實(shí)現(xiàn) GPIO 功能。

解決辦法

設(shè)置方式:

void SWDasGPIO_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;

    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);

    GPIO_PinAFConfig(GPIOA,GPIO_PinSource14,GPIO_AF_4);   
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource13,GPIO_AF_4);

    GPIO_StructInit( GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin  =  GPIO_Pin_14|GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA,  GPIO_InitStructure);
}

案例二

有工程師提到:SWD 復(fù)用成 GPIO 后如何恢復(fù) SWD 功能并進(jìn)行二次下載?

分析原因

PA13PA14被設(shè)置成 GPIO 或者其他復(fù)用功能后,如果需要再次通過(guò) SWD 接口連接目標(biāo) MCU,需要做如下動(dòng)作:

因?yàn)?PA14 被設(shè)置成 GPIO 或者其他復(fù)用功能后, 該 I/O 不再是 SWCLK 功能,但只要進(jìn)入 RESET(內(nèi)部軟件復(fù)位,IWDG 復(fù)位,Standby 喚醒,初始上電等過(guò)程)會(huì)短時(shí)間還會(huì)把該 IO 切換為 SWCLK 功能,直到執(zhí)行 Main Flash 中的把該 Pin(nRST/PA14/SWCLK)功能配置為 GPIO 或 UART1_TXD 后,SWD 接口才會(huì) Disable;

解決辦法 1

可通過(guò) SWD 接口的 PA14和 PA13 輸入 Boot Switch 時(shí)序,切換到 ISP Boot,擦除目標(biāo) MCU 中 Main Flash 空間的程序,可以參考官網(wǎng)AN:《AN0010_MM32F0010_PIN_AF_Mode_Setting_SC》。

資料鏈接:https://www.mindmotion.com.cn/products/mm32mcu/mm32f/mm32f_value_line/mm32f0010/

本次以 MM32-LINK 為例,新建 MM32F0010 的工程后需要設(shè)置芯片鎖定解鎖狀態(tài),設(shè)置功能如下:

a) 當(dāng)編程對(duì)象為 MM32F0010 系列芯片鎖定時(shí)的解鎖狀態(tài)設(shè)定

b) 單擊鼠標(biāo)左鍵彈出對(duì)話框如右圖,設(shè)置解鎖重復(fù)次數(shù)和上電延時(shí)時(shí)間

c) 點(diǎn)擊按鍵[OK]按鍵后狀態(tài)欄顯示“Unlock”

d) 當(dāng)目標(biāo)對(duì)象被解鎖時(shí), 狀態(tài)欄顯示“Normal”

wKgZomUD6syAROikAAZg4cM08os856.png

單擊狀態(tài)欄的“Normal”在彈出的對(duì)話框中單擊OK,狀態(tài)欄從 Unlock 跳變到Normal 聽(tīng)到滴兩聲,同時(shí)狀態(tài)欄內(nèi)核識(shí)別指示燈亮黃燈,說(shuō)明解鎖成功,最后單擊 Erase Chip 聽(tīng)到滴一聲解鎖完成,同時(shí)狀態(tài)欄顯示芯片擦除成功,內(nèi)核指示燈跳變成綠燈。

如果解鎖不成功,斷開(kāi)仿真器與目標(biāo)板連接的燒錄線,單擊 Normal,在彈出的對(duì)話框中 Repeat 設(shè)置成500(該值依據(jù)具體情況可靈活修改),然后單擊 OK,仿真器再與目標(biāo)板連接并自動(dòng)解鎖,狀態(tài)欄從Unlock跳變到 Normal 聽(tīng)到滴兩聲,同時(shí)狀態(tài)欄內(nèi)核識(shí)別指示燈亮黃燈,說(shuō)明解鎖成功,最后單擊 Erase Chip 聽(tīng)到滴一聲解鎖完成,同時(shí)狀態(tài)欄顯示芯片擦除成功,內(nèi)核指示燈跳變成綠燈。

解決辦法 2

如果程序中進(jìn)入 main()程序后,需要將 PA13 和 PA14 設(shè)置成 GPIO 功能時(shí),可以預(yù)置較長(zhǎng)時(shí)間的延時(shí)等待(在調(diào)試過(guò)程設(shè)置延時(shí)>10s,量產(chǎn)階段屏蔽延時(shí)),可通過(guò)重新上電 MCU,立刻執(zhí)行 Erase Chip 功能,擦除目標(biāo) MCU 中 Main Flash 空間的程序;

案例三

有工程師提到:使用 MM32-LINK 對(duì) MM32F0010 下載,提示下載失敗?該如何設(shè)置?

分析原因

MM32-LINK 會(huì)通過(guò) Vref 引腳檢查 MCU 的供電電壓,若Vref引腳未連接到主電源上,MM32-LINK 會(huì)認(rèn)為目標(biāo) MCU 未供電且在下載時(shí)彈出相應(yīng)的錯(cuò)誤提示。

解決辦法

硬件接線如下所示:

wKgaomUD6s2AO6_2AAHTOve8Rec806.png

若 MM32F0010 未獨(dú)立供電,Keil 中需要配置 MM32-LINK 電源輸出,并且取消 Reset 的設(shè)置。

wKgZomUD6s6AciVrAAJEG9vaSpU085.png

案例四

有工程師提到:MM32F0010 的 ADC 多通道采樣存在串?dāng)_是什么原因?

分析原因

MM32F0010 有 1 個(gè) 12 位模數(shù)轉(zhuǎn)換器,1uS 轉(zhuǎn)換時(shí)間(多達(dá) 8 個(gè)輸入通道),支持單次模式、單周期模式和連續(xù)模式,多通道采樣需要使用單周期或者連續(xù)模式。當(dāng) ADC 的采樣電容在兩個(gè)通道之間進(jìn)行切換時(shí)等效電路如下所示:

wKgaomUD6tCAGKNtAAAlMvFdssQ493.png

兩路信號(hào)源 A 和 B 的電平分別為Ua和Ub,其內(nèi)阻分別是 Ra 和 Rb,其中,Cs 是 ADC 的采樣電容,Rs 是 ADC 的采樣電阻,MM32F0010 的內(nèi)部采樣電容 Cs 為 10pF。

為了簡(jiǎn)化問(wèn)題,假定兩路信號(hào)的掃描次序是由信號(hào)源 B 到信號(hào)源 A,且信號(hào)源 B 接入的時(shí)間足夠長(zhǎng),以至在通道切換時(shí)采樣電容 Cs 上的電壓可以近似的等于 Ub ,于是,在通道切換到信號(hào)源 A 后,采樣電容 Cs 上的電壓將會(huì)隨著時(shí)間進(jìn)行充放電的動(dòng)作,隨著采樣保持時(shí)間t 的增長(zhǎng),采樣電容 Cs 上的電壓逐漸趨近于 Ua ,而其與 Ua 之間的誤差 ?U 即是信號(hào)源 B 通過(guò)采樣電容 Cs 對(duì)信號(hào)源 A 的藕合值,且隨著采樣保持時(shí)間t的增長(zhǎng),該值逐漸減小,最終趨近于零。

解決辦法

在實(shí)際 ADC 轉(zhuǎn)換中,由于 ?U 的值的誤差最終會(huì)反饋在 ADC 最終的轉(zhuǎn)換結(jié)果中,所以有的用戶(hù)反饋轉(zhuǎn)換結(jié)果比實(shí)際結(jié)果存在偏差。我們?cè)趹?yīng)用中避免該問(wèn)題,需要 ?U 的值趨近于 0 才符合實(shí)際的要求。

有種方法可以減小 ?U 的取值:

1. 通過(guò)增加采樣保持時(shí)間 t,使 ?U 獲得更多的衰減時(shí)間;

2. 通過(guò)減小信號(hào)源的內(nèi)阻 Ra,使 ?U 具有更快的衰減速率;

在實(shí)際運(yùn)用時(shí),在增加采樣保持時(shí)間方面可以通過(guò)修改 ADC 的設(shè)置參數(shù)來(lái)實(shí)現(xiàn)(通過(guò)調(diào)整 ADC 采樣率和 ADC 的采樣周期),而在降低信號(hào)源內(nèi)阻方面可以通過(guò)在信號(hào)源與 ADC 之間加入跟隨器進(jìn)行隔離來(lái)實(shí)現(xiàn)。

案例五

有工程師提到:MM32F0010 功耗水平是多少?如何降低整機(jī)功耗?

分析原因

芯片有三種低功耗模式:

睡眠模式 (CPU 停止,所有外設(shè)包括 CPU 的外設(shè),如 NVIC、系統(tǒng)時(shí)鐘 (SysTick) 等仍在運(yùn)行)

停機(jī)模式 (所有的時(shí)鐘都已停止,寄存器和 SRAM 的內(nèi)容依然保存)

待機(jī)模式 (內(nèi)核電源關(guān)閉,寄存器和 SRAM 的內(nèi)容全部丟失)

低功耗一覽表:

wKgZomUD6tGACo9kAAIlm0PjKp0451.png

低功耗模式供應(yīng)電流:

wKgaomUD6tOAMyKaAACJX2YBINw134.png

解決辦法

在系統(tǒng)或電源復(fù)位以后,微控制器處于運(yùn)行狀態(tài)。當(dāng) CPU 不需繼續(xù)運(yùn)行時(shí),可以利用多種低功耗模式來(lái)節(jié)省功耗,例如等待某個(gè)外部事件時(shí)。用戶(hù)需要根據(jù)最低電源消耗、最快速啟動(dòng)時(shí)間和可用的喚醒源等條件,選定一個(gè)最佳的低功耗模式。

在運(yùn)行模式下,可以通過(guò)以下方式中的一種降低功耗:

● 降低系統(tǒng)時(shí)鐘頻率

● 關(guān)閉 APB 和 AHB 總線上未被使用的外設(shè)時(shí)鐘

案例六

有工程師提到:MM32F0010 進(jìn)入 STOP 模式后無(wú)法通過(guò)串口喚醒 ?

分析原因

MM32F0010 沒(méi)有 LPUART,進(jìn)入 STOP 模式后不能直接通過(guò) UART 直接喚醒,只能通過(guò) EXTI 外部中斷方式喚醒。

解決辦法

我們可以在 MCU 進(jìn)入 STOP 前將 RX 腳設(shè)為 EXTI 模式,并使能對(duì)應(yīng)的中斷來(lái)實(shí)現(xiàn)。

案例七

有工程師提到:MM32F0010 進(jìn)入低功耗之后,實(shí)際功耗遠(yuǎn)大于理想功耗,是什么原因?

分析原因

MCU 在進(jìn)入 STOP 模式的時(shí)候,GPIO 的狀態(tài)都是保持在進(jìn)入低功耗模式之前的狀態(tài)。當(dāng)連接到外設(shè)后,外設(shè)的電平狀態(tài)和所連接的 GPIO 不一致的時(shí)候,就會(huì)產(chǎn)生電流消耗,這個(gè)就是很多用戶(hù)實(shí)際測(cè)試過(guò)程中發(fā)現(xiàn)功耗大于手冊(cè)中的功耗。

解決辦法

1、進(jìn)入低功耗之前,對(duì)使用和未使用IO狀態(tài)進(jìn)行調(diào)整,比如有外部上拉,可配置成模擬輸入等。

2、關(guān)閉外設(shè)時(shí)鐘,例如 ADC、UART 等外設(shè)時(shí)鐘進(jìn)行關(guān)閉。

案例八

有工程師提到:通過(guò)按鍵喚醒 MM32F0010,串口不能正常工作?

分析原因

經(jīng)分析發(fā)現(xiàn),開(kāi)發(fā)者進(jìn)入的低功耗模式為停機(jī)模式,喚醒之后,未初始化串口外設(shè),導(dǎo)致串口不能正常工作。

解決辦法

喚醒 MM32F0010 之后,重新初始化串口(以及所有使用的)外設(shè)。

案例九

有工程師提到:進(jìn)入低功耗后無(wú)法使用調(diào)試器二次下載是什么原因?

分析原因

由于進(jìn)入低功耗后會(huì)關(guān)閉 SWD 的電源域,所以無(wú)法二次下載。

解決辦法

● 在程序中需要設(shè)置正確的喚醒源,對(duì) MCU 喚醒后才能進(jìn)行下載。

● 可以參考問(wèn)題2中的解決辦法對(duì) MCU 內(nèi)部的程序進(jìn)行擦除。

來(lái)源:靈動(dòng)MM32MCU

審核編輯:湯梓紅
聲明:本文內(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

    文章

    50222

    瀏覽量

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

    關(guān)注

    146

    文章

    16899

    瀏覽量

    349933
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1189

    瀏覽量

    51839
  • SWD
    SWD
    +關(guān)注

    關(guān)注

    1

    文章

    56

    瀏覽量

    11796
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    靈動(dòng)微全新MM32F0010資料分享

    靈動(dòng)微全新MM32F0010資料
    發(fā)表于 12-15 06:55

    MM32F0010 該用什么demo板開(kāi)放呢

    我想用 MM32F0010開(kāi)放無(wú)線充方面的產(chǎn)品,請(qǐng)問(wèn)用什么型號(hào)的demo板呢?
    發(fā)表于 09-07 18:27

    MM32F0010 該用什么demo板開(kāi)放呢

    我想用 MM32F0010開(kāi)放無(wú)線充方面的產(chǎn)品,請(qǐng)問(wèn)用什么型號(hào)的demo板呢?
    發(fā)表于 03-30 13:43

    MM32F0010與ht1621液晶顯示的應(yīng)用程序

    使用MM32F0010單片機(jī)連接ht1621液晶,顯示1234的程序
    發(fā)表于 05-11 14:45 ?7次下載

    MM32F0010 產(chǎn)品手冊(cè)(中文版)

    MM32F0010 產(chǎn)品手冊(cè)(中文版)
    發(fā)表于 02-22 18:23 ?0次下載
    <b class='flag-5'>MM32F0010</b> 產(chǎn)品手冊(cè)(中文版)

    MM32F0010 產(chǎn)品手冊(cè)(英文版)

    MM32F0010 產(chǎn)品手冊(cè)(英文版)
    發(fā)表于 02-22 18:26 ?0次下載
    <b class='flag-5'>MM32F0010</b> 產(chǎn)品手冊(cè)(英文版)

    MM32F0010 用戶(hù)手冊(cè)(中文版)

    MM32F0010 用戶(hù)手冊(cè)(中文版)
    發(fā)表于 02-22 18:27 ?0次下載
    <b class='flag-5'>MM32F0010</b> 用戶(hù)手冊(cè)(中文版)

    MM32F0010 用戶(hù)手冊(cè)(英文版)

    MM32F0010 用戶(hù)手冊(cè)(英文版)
    發(fā)表于 02-22 18:28 ?0次下載
    <b class='flag-5'>MM32F0010</b> 用戶(hù)手冊(cè)(英文版)

    MM32F0010 勘誤表(中文版)

    MM32F0010 勘誤表(中文版)
    發(fā)表于 02-22 18:28 ?0次下載
    <b class='flag-5'>MM32F0010</b> 勘誤表(中文版)

    MM32F0010 勘誤表(英文版)

    MM32F0010 勘誤表(英文版)
    發(fā)表于 02-22 18:29 ?0次下載
    <b class='flag-5'>MM32F0010</b> 勘誤表(英文版)

    AN6417 基于MM32F0010的霍爾高壓?jiǎn)蜗啾渖犸L(fēng)扇方案(中文版)

    AN6417 基于MM32F0010的霍爾高壓?jiǎn)蜗啾渖犸L(fēng)扇方案(中文版)
    發(fā)表于 02-22 18:29 ?0次下載
    AN6417 基于<b class='flag-5'>MM32F0010</b>的霍爾高壓?jiǎn)蜗啾渖犸L(fēng)扇方案(中文版)

    AN0010 MM32F0010 PA13_PA14引腳的復(fù)用與使用(中文版)

    AN0010 MM32F0010 PA13_PA14引腳的復(fù)用與使用(中文版)
    發(fā)表于 02-22 18:31 ?0次下載
    AN<b class='flag-5'>0010</b> <b class='flag-5'>MM32F0010</b> PA13_PA14引腳的復(fù)用與使用(中文版)

    AN0011 MM32F0010 SOP8封裝下使用的注意事項(xiàng)(中文版)

    AN0011 MM32F0010 SOP8封裝下使用的注意事項(xiàng)(中文版)
    發(fā)表于 02-22 18:32 ?0次下載
    AN0011 <b class='flag-5'>MM32F0010</b> SOP8封裝下使用的注意事項(xiàng)(中文版)

    AN0061 從MM32F0010移植到MM32F0020(中文版)

    AN0061 從MM32F0010移植到MM32F0020(中文版)
    發(fā)表于 02-22 18:33 ?0次下載
    AN0061 從<b class='flag-5'>MM32F0010</b>移植到<b class='flag-5'>MM32F</b>0020(中文版)

    AN0061 從MM32F0010移植到MM32F0020(英文版)

    AN0061 從MM32F0010移植到MM32F0020(英文版)
    發(fā)表于 02-22 18:34 ?0次下載
    AN0061 從<b class='flag-5'>MM32F0010</b>移植到<b class='flag-5'>MM32F</b>0020(英文版)