2017年6月11日 星期日

STM32 CubeMX 4.21.0 改版

這陣子其實STM32 CubeMX 有改版4.21.0
這次的改版比較有感的就是直接把MCU比較重要的SPEC列出來,還有最重要的價錢都列出來了,不過單位是10K pieces,也就是1萬pieces,不過這對接案來說,是一個非常重要的參考指標

以前如果要知道MCU比較重要的information都要上STM32 的網頁product tree查

這次的改板還有把error handler做修正:
以前的版本就直接while(1)卡死在裡面,這次多了file 和 line的參數,之後就可以寫個debug log 直接吐出file和line方便debug。


雖然這次的改版讓開啟的速度又變慢了,但新增的功能有改善也算是一大福音,如果還有功能有改變的話,也可以和我說^^"

2017年6月2日 星期五

STM32F0 ADC calibration - part 2

還記得上一篇在討論ADC如果需要做準的話,需要面對的問題是什麼,後來有做了一些實驗,但感覺還是怪怪的,後來拿掉calibration 反而是好的,就覺得更怪,印象中的ADC還滿準的,怎麼這次這麼不準,後來才發現這次是用STM32CubeMx generate code base,而不知道為什麼,ADC module 竟然沒有開始ADC calibration的功能,翻了一下ADC的3個範例,發現其中一個範例有加這個功能,如下
註:目前使用的版本為:STM32Cube_FW_F0_V1.7.0
有興趣可以參考一下reference 的說明
也有提供example code,其實就是上面那個框起來的副程式。

ADC + no  auto calibration + internal voltage calibration:

ADC +  auto calibration 

ADC + auto calibration + internal voltage calibration


雖然數劇是只開auto calibration 比較好,但和hardware engineer 討論的結果,還是先保留第3個做法,等之後再完整的驗証。

結論:因為不是第一次踩到STM32CubeMX的Bug了,所以之後的功能如果可以還是對一下example code 比較保險……








2017年6月1日 星期四

STM32F072 & STM32F412 flash organization

因為之前比較常用STM32F072,所以覺得flash 應該彈性很高,一個page 2KB,1個sector=2個page, 所以在換在高階的STM32F412就不疑有它,但是在做firmware update的時後,發現有些不應該被動到的data也被清掉了,所以就來檢查一下STM32F412的定義為何。
這一檢查乖乖不得了,STM32F412的彈性好差,分成SECTOR0~3 16KB,SECTOR 4 64KB,剩下來的128KB,還好有早點發現,不然等到之後要合功能又要來大改一次了。 

結論: 在做memory layout的時後,最好還是看一下每顆MCU的flash organization,以免等到設計好發現有衝突又要大改一次。

STM32F0 DAC output buffer

之前我在看DAC的時後,只會在意輸出能力,準度。
還有DAC的register如何access:像是有分8bit/12bit,對齊左邊或是對齊右邊

不過stm32多出了一個output buffer,其實就是一個電壓隨耦器,目的就是希望MCU的DAC不要受外部電路影響

SPEC有說,如果不開output buffer的話,建議負載的阻抗要 > 1.5MΩ(對地) 如果開啟了output buffer的話,那麼阻抗就只只要>5 kΩ(對地)
看吧! 是不是差很多, 有了這個buffer 就可以比較不擔心被干擾了。

但請注意一下,開啟了output buffer 最低電壓請設在0.2v 最高電壓就是Vdda – 0.2V

結論:SPEC還是有需要認真看一下的。