2019年3月29日 星期五

加速規的使用

規格是用來量機器傾角。
設定讀值最大為2G,回傳值是16位元有號數。
所以值會是32767~-32768。因為有三軸,平時會量到重力。
期望重力上的軸會出現一個16384或是-16384的值。
數值上以Q值來計算,就完全不需轉成浮點。
以1G acc為單位來看,直接採用Q15格式就完全符合1G的使用。
有夾角計算,三角函式應是會用上。
實驗時只有簡單寫成單軸值檢知,一但絶對值小於0.707,就是超過45度。
所以造了一個Q16格式的cos表格,依設定角度值取cos值,加速規和表格移位到同單位Q值一比就結束。
然後是任意角度傾角計算。要先記住啟動時的三軸值。
然後又是三角函式了。這裏用的是向量內積計算,向量內積值有夾角cos的值在內。
因為已是低頻省電下的計算,計算力有限。就當成1G重力下角度計算,不用去算向量長度。
直接就是啟動時重力向量值及現在的重力向量值內積(只有乘加法計算),再移位到同單位Q值,和cos表比對,程式完成。
第一次寫程式計算力小時8051,省電下的計算可以在整數系統內完成這個任務。

2019年3月5日 星期二

PWM做DAC結果

以前的資料,放上來查

測試PWM變動後電壓上升率


測試PWM變動後電壓下降率


連續性測試


放大圖

2019年3月1日 星期五

STM32MP1 使用前分析

MCU進入多核時代,但結構不如我想的。
一般CPU多核是走同質多核。
但MCU不是,不管是NXP或是ST走的是異質多核。
MCU為何不能走同質多核?一定有問題才會走不下去。
因為異質多核對使用者不是有利的,要控制二個核心已是不易,更要做異質核操作,難上加難,若非有困難一般不會如此。
話說NXP的異質多核也出了好幾年,看來還是沒有解決同質核問題。ST也一樣。
看了一下架構圖,好像是以M4核為中心,但又不太對。
我看到的是以記憶體管理界面為中心,再掛上二組核心Dual A7及M4。
Dual A7可以管理的界面只有記憶體,ethernet,USB,SDMMC。其他的全在M4上。
也就是所有高速的資料全給Dual A7,IO全給M4。
以MCU應用來看,Dual A7才是co-processor,專門做資料處理用的處理器。
從軟體看過來,也是以M4為開機。
因為A7執行效率很高,幾乎只能在RAM中執行才能發揮。
M4及A7可以執行不同的作業系統,A7有OpenStLinux可以用。M4可有可無。
這個軟體架構和PC/BIOS的關係相同。也就是M4的工程師是BIOS工程師,A7則為PC工程師。
只是這個BIOS的腳色比PC重很多。

再來是應用領域,需要資料及IO控制。影像處理相關的可能性比較大。
和Raspberry Pi比起來,BIOS這一側的功能強化,等於在機器人應用上會更強。
或者想成Raspberry Pi+STM32原本是分開的,現在以STM32MP1合併起來。