yj hung

Add Position Controll on MC SDK 5.x

前言 在 MC SDK 5.x 中有兩個環路控制,分别是电流環和速度環(力矩環),有些應用需要使用到位置環,比如無人機的雲平台馬達控制,地鐵閘門等等應用,本文將闡述如何在現有 ST 馬達涵式庫基础上增加簡易的位置環,使其能夠擁有3環控制方式使其更加穩定 理論基礎 如果在有減速齒輪馬達上,需要加入速度環以更快速的到達到給定位置,也就是三環控制:位置環+速度還+電流環,框架同如下: 實作步驟 在MCSDK上增加DAC模塊。如果MCU上没有DAC模塊,可以使用TIMER+RC濾波電路模擬輸出DAC;下圖為使用DAC配置,需要配置Userdefined DAC1/2。 增加以下變量或函數用於位置環控制 位置環 PID 結構體 PID_Handle_t PIDAngleHandle_M1 位置控制的結構體 Position_Handle_t 位置角度誤差 Position_GetErrorAngle 位置環速度参考輸出計算 Position_CalcSpeedReferrence 位置環力矩参考輸出计算 Position_CalcTorqueReferrence 参考 mc_position.h 以及 mc_position.c mc_task.c 文件修改 增加 DAC 輸出程序 增加位置控制程序 在 mc_task.c 的中頻任务函数 TSK_MediumFrequencyTaskM1 中增加位置環差值數據計算,根據差值計算,當差值在閥值之上的話進行速度控制,否則進行力矩控制 修改参考電流計算 馬達累積圈數計算 測試 參考 【ST 实战经验】MC SDK 5.x 中增加位置环 MC SDK 5.x 介绍

Add Position Controll on MC SDK 5.x Read More »

STM32 firmware library package

前言 有時必須给别人自己的code應用,但是又不想直接给C源碼,這時候就可以把某些機密 .c 文件編譯成 .lib 文件给别人用,但如何使用cubeIDE把project編譯成lib?這邊就會教學如何使用cubeIDE編輯lib和如何應用lib(因部分lib引用會出現不可預期錯誤) STM32CubeIDE   如何能生成 Lib? 這邊會有2種方把可以生成Lib Project setup:在創建檔案時就先設定 在專案屬性上設定 這邊先來看到第一個設定,可以直接在生成專案選擇靜態lib 第二種是在專案屬性上更改設定 默認生成的是以lib开头,並以.a為名的文件。可以把圖中的a改成lib,並最下面的lib删除,這樣生成的檔案,就是的TEST_STM32F103CBT6.lib的形式 STM32Cube IDE使用lib、a文件方法 在使用STM32Cube IDE,如果需要使用别人寫好的.lib或者.a,直接將文件的路徑包含進去並不能正常使用,在編譯會報錯誤“ undefined reference to `XXXXX’” 就可以照下面幾步驟正常引用 lib加入到目錄,路徑不能有中文; 配置文件路徑 將静態lib添加到C Linker中; 注意!不要在下圖所示位置加入lib路徑: 在官方文件中其實有有提到如何引用(P87~P89) 參考 stm32CubeIDE 如何生成Lib STM32Cube IDE使用lib、a库文件方法 STM32CubeIDE user guide

STM32 firmware library package Read More »

STM32 MCU Product Line Introduction

STM32 MCUs and MPUs portfolio ST MCU產品眾多,可以看到圖一有18種之多,切割5種主流功能區塊,這邊主要針對MPU外做深入介紹(MPU 還是microchip為主流,這邊就不多介紹) High-performance MCU STM32 Mainstream MCU STM32 Ultra-low-power MCU STM32 Wireless MCU HW/SW Development Tools 在硬體與軟體方面ST都有推出方便開發的工具 STM32CubeMX:為建構底層架構軟體,建構出底層code可以支援以下編輯器(圖二) STM32CubeIDE:官方軟體編輯器(圖三) STM32CubeProgram:燒入軟體與查看Flash數值(圖四) 硬體部分如下可以看到有基本的Nucleo Board或含顯示板Discovery kits或全面性開發版Evaluation Board可以供選擇 High-performance MCU 在高規格MCU中會主推STM32H7系列,因這類產品主要是用在顯示面板中或高階馬達控制為主要,而H7是目前有特別針對這部分特別優化的產品 STM32 Portfolio for Graphics 可以看到STM32H7是支援Dispaly傳輸協定最多元且Frequency最高的規格,並且ST併購開發軟體公司推出TouchGFX可以更方便開發觸碰顯示面板(支援圖五個類別ST MCU) STM32 Mainstream MCU 主流行MCU目前其實已經收斂為主要2區塊G0系列與G4系列,其主要原因是G系列把電源對縮減成僅一組,如此能更多GPIO腳位被利用,並且G4整合更多輸出優化可定位BLDC馬達控制專屬系列 STM32 Ultra-low-power MCU ST有針對手提是裝置推出省電板MCU,因手提式裝置所需要的是更長的使用時間,但功能卻要能維持與其他款MCU差不多,這邊L4或U5系列會是你最佳選擇 在休眠模式部分Ultra-low-power也提供不同需模式下求達到最低耗電量 STM32 Wireless MCU 針對無線傳輸部分MCU是ST算是非常特別的一塊MCU這邊切分成2塊WB與WL系列,應用主要是在需要無線模組的部分,MCU只要搭配對應的天線等等就可以做無線通訊是一款能夠節省空間的MCU STM32WB 在WB上主要是雙核心,M0+控制無限通訊M4為主要控制,在於加密部分安全性更加提升 STM32WL

STM32 MCU Product Line Introduction Read More »

Transaction Planning(Not just Stop-Loss)

前言 什麼是交易計劃(Trading Plan)呢?交易計劃指的是在做金融交易前,針對自己的個性、風險承受度、買賣方式所制定的一個規則,它能幫助我們交易時,盡量避免受到市場波動影響交易,也能讓我們避免巨大的虧損,甚至能培養我們的紀律。看到這邊你會覺得咦?是不會停損就是有交易規劃了?錯!大錯特錯!!只有停損這樣只是讓你不會瞬間虧光而已下面會一步一步講解與帶你了解交易計畫 第一步–認識自己~找尋適合交易策略 你是激進投資者?還是保守投資者?還是能承受帳面巨大虧損?還是每天1千塊波動就心裡難受?學投資第一步是要能選擇讓你能睡好的交易規劃,而交易規劃中使用甚麼策略又跟你個性有相關,如果你是一個非常保守的投資者卻使用非常激進策略,你會在交易過程中拿不住你的交易單。因此先了解你自己再開始做交易,如果你只是看到別人瞬間爆賺很心癢就開始交易,請!!!馬上停止你的操作,你的操作不會帶你賺錢只會帶你賠錢!!!! 了解自己的個性:評估自己可以承受多少風險(風險承受度和年紀成反比),短線讓你睡不著?長線你無法持續?….等,你應該要為自己量身打造交易計劃。 一天能花多少時間:首先是你能夠花多少時間學習,其次是你能夠花多少時間交易,這會牽涉到你選擇投資的標的及方式。 假如你很沒耐心且能承受瞬間波動的虧損,那或許你適合極短線交易假如你無法承受大波動那部份新興股票你千萬不要參與 第二步—尋找適合自己的戰場 美股/外匯保證金/權證/台股/虛擬貨幣/債卷目前有許許多多交易市場可以供你選擇,光股票市場就有分成興新市場與成熟市場,低波動高波動等等每種市場的型態與規模還有市場動向都不太一樣,你如果是一個保守投資者,然後去選擇興新市場中高波動股票,那你每天睡覺都難以安穩入睡這邊簡單區分適合的人投資的市場 美股:這是目前市場上認定的最大規模成熟市場,因為起始資金不用太大就可以開始交易是目前公認是和多元投資者市場 台股:因為台灣人還是會以最方便的模式交易,但這個市場是新興市場部分還是容易受到內線等交易影響 外匯保證金:是目前規模最大的交易市場,但非常不適合長期投資(因有隔夜利息等等)最長交易時間與最大市場因此也很多極短線或短線交易的熱愛 虛擬貨幣:這個市場是最多API和大槓桿的交易市場較適合激進交易者 債卷市場:是目前公認最安全的交易市場(但公司債等等的風險不一定會比股票小,最安全是以國家債卷為主) 第三步—正視自己心裡素質 你一開始以為你是激進交易者,但你在規畫完交易後卻3不5時打開持倉觀看,或再持倉時完全握不住,除了你冒的風險遠大於你的心理所能承受的,另一種是你完全不是這樣交易者請正視自己的內心,不要隨著人流走你賠的是你的血汗錢,他賺的跟你一點關西都沒有,他的成功不一定會在你身上可以套用 第四部—規劃交易計畫 此圖是從老余交易夜的影片中擷取出來,你可以看到一個完整的交易規劃都會做好一系列前置作業,進場/出場點/止損點/加碼點都在你下單前都計畫好了還包含了當時的心理素質,你用什麼策略完全不會影響你會不會賺錢,真正會影響的是你的心理素質,這邊我可以跟你說單靠一線有紀律的操作你一年下來不會爆倉外還可能賺錢。交易規劃非常重要他絕對不是一個止損這麼簡單 第五步—正確心態執行計畫 每次交易都一定有虧損機會,100%賺錢的絕對沒有是詐騙,但有虧損不代表難賺錢,只要長期賺的比賠得多這樣你就能長期在市場上賺錢。在交易上每次先了解風險後,有完整交易計畫後不要猶豫,執行計畫,因為正確的交易流程都有做到的話你是不可能會大虧,而且在市場淬鍊下你會賺的比賠得多,你也會對你的交易有信心,就算出手後是虧錢的,但你會知道這次虧但後面一定會賺回來。只要能在市場上留下來,就能有賺錢機會出現 參考 投資入門學什麼?從交易計劃開始 【只有停損點就叫交易計劃? 還早哩~ 來學甚麼叫做完整的交易計劃】 -20190613 老余交易夜 投資交易計畫 的重要性超乎你的想像!

Transaction Planning(Not just Stop-Loss) Read More »

NanoEdge AI Apply on ST MCU

前言 ST針對AI的應用推出了2款高度整合軟體協助使用者快速導入,其中一款是NanoEdge AI另一款是CubeAI,今天主要會介紹NanoEdge AI從操作到最後生成檔案移植進入MCU,NanoEdge AI好處是介面簡單且把最繁瑣的訓練放在電腦上,MCU僅使用最後生成檔案。 取得授權 針對NanoEdge AI這邊有提供幾個月免費試用,可以先透過網址申請或直接購買操作方式如下再把申請好的license填入NanoEdge AI軟體中 Your license key If you don’t know your license key, log in to the Cryptlex licensing platform to retrieve it.If you have lost your login credentials, reset your password using the email address used to download NanoEdge AI Studio. Licensing API: Cartesiam API for library compilation: 54.147.158.222 40.113.111.93

NanoEdge AI Apply on ST MCU Read More »

US Stock Information Channel Recommend

前言 在現在資訊發達時代,我們取得資訊十分方便,但也正因為資訊太多導致我們沒有辦法全部都吸收了解。這邊為了這個問題推薦3個我個人認為非常有價值的頻道能快速節省我們收集資料時間,頻道資訊也能協助我們中立看待事物,並且保持持續學習與自我判斷提升,進一步達到投資不韭菜!! 美投軍 美投軍的頻道一共有3個分別有不同性質的,能滿足不同需求族群。 美投講新聞是每2天會更新一次,快速彙整市場資訊與市場大小事省去收集資訊時間 美投講美股是一周會有2集投資知識與工具分享(其中一集為付費),市場多變在長期投資上這是一個很好的頻道能快速增加知識 美投財思更新時間不固定,但主要是美投軍團隊的分支以故事性帶出一些知識點 Q:為什麼會推薦美投軍呢?A:因為美投軍的頻道不是教你技術分析,而是教你怎看經濟怎看市場脈動,並且不會很偏頗一切都是保持很中立的方式在講述 並且也會常出現一些乾貨增加工具讓你能對市場做出一些應對。 但這邊一定要注意美投軍不是教你怎快速賺錢,或短線殺進殺出,技術分析在這個頻道是看不到的Q:咦?沒技術分析那樣會不會傳不太到錢啊?A:這邊完全不會~因為技術分析在成熟市場中不能說沒用但你出手越多次你真正能在市場上賺到錢的機會越小這邊可以參考下面影 片說明 這邊美投軍也把他所想的資訊全部整合成一個網頁美投圈 卡爾先生 危機投資者 卡爾先生是我個人認為能夠輔助一般散戶驅凶避吉的一個頻道,這個頻道中會講述每週市場變化的狀況與未來觀點看法,偶爾會有一些投資機會推薦但這個投資機會推薦不見得是每次都賺錢,因此需要自己有一定判斷力,但卡爾先生跟美投軍有些相似的地方是在於它會統整世界各個總經數據,然後彙整重點讓你快速能獲取並且每週都是有會跟隨時事再跑,因此可以藉由此頻道快速了解市場趨勢。雖然有時觀點較為主觀,但大多時候都是有幫助且對世界趨勢能更加瞭解到盲點的良好頻道 C&K GO! 這個頻道是每一周都有一期很短的影片幫你抓到市場漏掉的資訊,這個有點像深挖資訊頻道。常常能挖到一些被人忽略掉的資訊,對於投資幫助有點像加上聚焦片一樣,能夠有畫龍點睛效果

US Stock Information Channel Recommend Read More »

86Hero School(US Stock Course Recommend)

前言 美股投資市場百百種,有各種機器人與資訊,指標訊號基本面等youtube都有大量資訊。但你真的知道妳在學習的是甚麼嗎?這邊推薦一款課程,他能從0開始手把手教學並且有專屬的資訊與社團可以共同討論~基本上資訊相當齊全,另外也會介紹宏觀youtube頻道加強擬投資勝率 線上課程簡介 課程創辦人八六大俠課程價格$897課程人數280+課程優點教你如何從零開始挑選美股還有買賣時機課程缺點課程價格昂貴,購買後無法退款 課程創辦人86大俠是誰? 八六大俠出生於1994年,2010年16歲開始投資美股,至今已有超過10年的投資經驗。 曾經嘗試過各種投資方法,其中包括程式交易,也研究過海外期貨和外匯保證金等商品,最後還是覺得美股投資可以帶來最穩定的績效。 經過多年的試驗和操盤,他慢慢的領悟出屬於自己的一套“美股投資菁英法”,並且在發生疫情的2020年展示了這套的投資法。 當時他用這套方法在2020年5月買入一批股票,並在半年後的11月驗收成果達到了40%以上的績效,如有興趣可以查看以下他分享的短片: 課程大綱 一個良好的課程一定會有一個完整的大鋼,這邊會推薦美股菁英班的原因是,在美股投資長期投資是一般人相對不會虧錢的策略。各種技術分析在成熟市場來說拉長期來看績效惠珍的遠不如長期投資。(以下是美股菁英班的完整大綱) 課程優點 很多人都知道長期投資這個概念,但一個完整的概念能夠協助你快速省下大量摸索的時間。這個課程相對其他課程不同地方在於他不是一個技術分析的短期投資,在美股上如果是短期技術分析可以參考以下影片就知道震動幅度極大 這個影片是達克豹實測影片,一個有專業輔助的報單系統都會有這樣的現象,千萬不要認為你是天選之人可以完全避開,因此在美股投資上我個人非常推薦的投資方式是長期投資搭配期權策略。可以看到上面的課程大綱是十分齊全的並且有績效佐證,你會學習到的東西會在短時間快速建立你的退休系統(如果你認為學習完課程能夠短時間快速致富的話那這個課程可能無法滿足你) 課程優點及缺點統整

86Hero School(US Stock Course Recommend) Read More »

STM32 FreeRTOS Introduction-1

FreeRTOS 架構 官方網站:http://www.freertos.org/FreeRTOS 是一個相對其他作業系統而言較小的作業系統。最小化的 FreeRTOS 核心僅包括 3 個 .c 文件(tasks.c、queue.c、list.c)和少數標頭檔,總共不到 9000 行程式碼,還包括了註解和空行。一個典型的編譯後 binary(二進位碼)小於 10 KB。FreeRTOS 的程式碼可以分為三個主要區塊:任務、通訊和硬體界面。 任務 (Task): FreeRTOS 的核心程式碼約有一半是用來處理多數作業系統首要關注的問題:任務,任務是擁有優先權的用戶所定義的 C 函數。task.c 和 task.h 負責所有關於建立、排程和維護任務的繁重工作。 通訊 (Communication): 任務很重要,不過任務間可以互相通訊則更為重要!它帶出了 FreeRTOS 的第二項議題:通訊。FreeRTOS 核心程式碼大約有 40% 是用來處理通訊的。queue.c 和 queue.h 負責處理 FreeRTOS 的通訊,任務和中斷(interrupt)使用佇列(佇列,queue)互相發送數據,並且使用 semaphore 和 mutex 來派發 critical section 的使用信號。 硬體界面:有近 9000 行的程式碼組成基本的 FreeRTOS,這部份是與硬體無關的(hardware-independent),同一份程式碼在不同硬體平台上的 FreeRTOS 都可以運行。大約有 6% 的 FreeRTOS 核心代碼,在與硬體無關的

STM32 FreeRTOS Introduction-1 Read More »

STM32 Porting On Another MCU

前言 使用ST MCU做開發的應用越來越多,ST也針對不同MCU不斷翻新在相同類別MCU上不斷演進,就出現同系列MCU程式移植問題,如果是嶄新的程式區塊搬移是相對簡單的,但如果是非常龐大模組功能不變全部移植要怎操作?這邊提供其中一種方式作為同類別轉換(L412KB 改成L432KCU6)參考 Porting 同系列 MCU 這邊因客戶需求想把專案直接轉移到不同MCU上這邊提供2種方式移植,起先有發現使用CubeIDE被鎖定所以無法直接改動 這邊因為同為L4系列只是不同款MCU因此作了以下幾步驟 到這邊stm32l412xx.h替換成stm32l432xx.h所build出來的,將bin檔燒進STM32L432進行測試可能會出現以下錯誤資訊讀到的MCU version與期望的不符,接著MCU利用SPI向後端獲取ACK有錯誤WARNING: MCU version mismatch (expected:00.02.06, got:D01.00.00)ERROR: received wrong ACK type (0xFF)ERROR: failed to read REQ_MULTIPLE_SPI ackERROR: failed to start the gateway這邊參考開源軟體Semtech code for STM32L412 => https://github.com/Lora-net/sx1302_spi_usb_bridge Flash配置可以用以下方是修改(但建議限同類型這樣轉移) Porting 不同系列 MCU使用智能雲 這邊參考網路由F103移植到L496並follow以下大步驟操作 Create the STM32CubeMX project file(這邊先生成要移植的MCU專案) Import the Gizwits configuration template Special processing (only for the

STM32 Porting On Another MCU Read More »

I2C Slave mode on STM32 Introduction

前言 I2C有2種不同模式可以操作使用master 與 slave模式,大部分在操控sensor MCU都是以master模式去做操控,部分EEPROM會需要搭配MCU作為slave操作,但當slave HAL會需要已知長度才能正常work,這邊會特別介紹LL模式修正不特定長度 STM32CubeMX Setting Stm32cubeMX上的設定Master與Slave基本上沒有太大差異,唯一要注意的是slave address不能為0x00 至於為甚麼Slave address為什麼不能為0目前猜測可能為下ST I2C slave addr 是用AND GATE,來跟OAR1作比對相同就成立中斷,而設定成0X00會造成永遠不中斷 STM32CubeIDE(HAL) 這邊(HAL)slave會用到函數如下 這邊用HAL_I2C_Slave_Receive做簡單示範一般會搭配中斷做撰寫 另外針對中段部分會使用到callback(HAL_I2C_SlaveTxCpltCallback()/HAL_I2C_SlaveRxCpltCallback()) STM32CubeMX(LL) Setting 這邊因為要編輯底層所以不選用HAL在設定上有以下2個地方的不同 把I2C修改成LL編輯 把.c/.h檔案分離出來方便單獨編輯 STM32CubeIDE(LL) 首先要開啟中斷並在中斷stm32g0xx_it.c後面_it.c內找到void I2C1_IRQHandler(void)編輯中斷要執行的事情,基本上會用到的是中斷flag判讀等等範例如下 注意事項 在執行中斷程式時要注意必須把I2C中斷打開與使用前建議會讓他重新開起reset確保訊號正常,其範例如下 參考 How to create an I2C slave device using the STM32Cube Library I2C: Inter-Integrated Circuit 【STM32CUBEMX】 I2C Slave 实现 STM32 I2C multi-device connection

I2C Slave mode on STM32 Introduction Read More »

Shopping Cart