yj hung

What is Candlestick chart?

前言 市面上很多介紹股市的書籍與課程,網路也充斥很多相關資源隨手一個按鍵就可以搜索到許多資料,這些東西並不陌生。但很多也僅僅只是說明這個名詞和組合關西,而交易是跟人性很相關的一門學問,會漲會跌都跟心理狀態完全呼應。這邊會簡單帶過名詞與圖形成生,主要探討K棒反映的市場心態與交易者應具備的判斷 K棒 所謂K棒基礎知識圖一圖二2張圖就全部講解完了~Q:你可能會問就這麼簡單?A:是就是這麼單純,K棒只是一個方便我們觀察價格的其中一種形式,另外也有所謂的美國線(英語:Open-High-Low-Close chart,OHLC chart)是另一種的圖也是可以用來判斷價格的一種形式圖表中標示的上引線/下引線/實線等等都是價格實際走過的路徑紀錄PS:台股與美股不同,台股收漲是紅色的收跌是綠色,美股則是完全相反收漲是綠色,跌是紅色 不同種K棒型態 上圖是5種主要的K棒型態,但這邊請注意千萬不要用單一K棒去決定買賣交易,你很容易賠到脫褲子!!Q:你會問那要看這個幹嘛?A:這邊主要要由這些型態帶你感受價格與交易者心理的變化,進而帶你了解交易 這邊來看右邊這張圖,這個K棒是紅色以台股角度今天是上漲的再來是他有一個長上引線,我們去細部拆解就會像圖二1.剛開始下跌呈現綠色下跌K棒,這時代表賣的人多於買的人2.突然有集體共識或大戶大筆敲進買單3.買盤停止,有大量賣單獲利了結或止損出場,股價開始下跌 這邊對應散戶心態1.阿靠下跌了是不是完了,我手上的股票要不要賣2.YA大戶護盤衝上雲霄,一張不賣奇蹟自來3.阿完蛋原來是假的快出場–>賣出手中股票 這邊你可以感受到引線是買方或賣方的爭奪的過程,引線越長代表當下買方或賣方越強勢而實體K棒是買方或賣方的強弱表現,越長代表越強勢 Q:由上面可以知道單一K棒所代表的強弱表現,但如果以單一K棒去買賣會如何呢?A:可以看到左圖,如果在當天又剛好在上面的反應心態上,你是不是就賣出股票了,或其中你看到T字型K棒而買進後面就經歷一波大跌,你的荷包就在哭泣了所以千萬不要以單一K棒進行操作,但K棒反應的交易心理是可以給予我們參考價值的,必須與其他方式結合才能提高我們在股市的生存能力 參考 【技術分析篇】想開始投資股票卻因為一堆數字困擾你嗎?5分鐘讓你搞懂K棒 新手必知5大K棒型態

What is Candlestick chart? Read More »

EEPROM Introduction and Comparative

前言 EEPROM是一種可以通過電子方式多次複寫的半導體儲存裝置。相比EPROM,EEPROM不需要用紫外線照射,也不需取下,就可以用特定的電壓,來抹除晶片上的資訊,以便寫入新的數據這邊會介紹各廠牌優劣勢,與I2C寫入方法 EEPROM 種類說明 I2C 優點:只要2條線就可以傳輸,能夠減少微控制器的連接埠數量,能將多個EEPROM連接在同一個匯流排上 缺點:傳輸速率慢。傳輸速率為400K~1Mbit/s SPI 優點:運轉頻率高,傳輸速度快 缺點:介面數量偏多 Microwire 與SPI相比傳輸速度慢 ,只有低容量的產品 各廠牌比較 目前ATMEL已慢慢較無人使用市占率如下如,右邊為粗略比較,可以看到目前ST為主要大宗,而ST的EEPROM目前有M25(SPI)與M24(I2C)為主要產品 EEPROM 讀寫控制(I2C通訊) 第一步要先確認需先確認預計使用的頻率(這部分與控制的電壓有關) 第二步務必遵照IC Datasheet的時序規範((這點非常重要) 會有可靠度問題) 第三步確認adress(以下圖M24256-BRMN6TP為例)可以看到有3支硬體腳位需要設定去定義(M24256E-F設一款特別的EEPROM把硬體腳位都拔除需要用軟體寫入) EEPROM 寫入流程 發送存取adress。24C02 一共256bit存取空間,adress從 0x00~0xFF,看需求在哪個位置就寫在哪個adress。 發送要存儲的數據的第一字節………..注意在寫數據的過程中,EEPROM 每個字節都回應”0”,來確認 EEPROM 數據成功,如果没有回應,說明寫入不成功 參考 [程式筆記] EEPROM 讀寫控制(I2C通訊) EEPROM芯片选型对比表 单片机:EEPROM介绍与操作 第23章     I2C—读写EEPROM

EEPROM Introduction and Comparative Read More »

STM32Cube Tool Introduction-2

Preface  上篇章針對STM32CubeMX做完介紹後,這章節會進入程式編譯CubeIDE與燒入方式CubeProgram做深入介紹 STM32CubeIDE 網路資源主要撰寫主要以MDK與CubeIDE為大宗,這邊以CubeIDE為主軸介紹。第一步來先介紹基本介面如下圖 黃框:設定欄列表,主要最常使用到的是甲蟲符號的Debug與播放按鍵的燒入扭 紅框:為已開的專案型態 藍框:為程式編輯視窗 綠框:在程式燒入後可以去跑RAM等使用比率但非Stack/Heap Debug mode 這邊進入到Debug mode時候,可以看到分成3大區塊,最左手邊是可以看到目前程式運行到哪邊詳細確認,右邊眼鏡EXP位置可以即時去監控目前內部變數的狀況,中間程式區塊就是目前跑到的涵式區域。紅框區域是主要用在程式執行下一步或停止Debug mode,而黃色區塊跟一般程式一樣可以設定斷點 STM32CubeProgram 目前CubeProgram主要是用到是在於燒入與option byte setting,在於配置Flash等等是一個相對方便的軟體,下面可以看一下基本操作介面這邊注意一般ST給的公版都會支援ST-LINK,如果要使用SPI與I2C燒入等等就需要使用ST官方的ST-LinKV3 紅框:連接或燒入方式選定方式 黃框:燒入設定與實際燒入使用 橘框(OB):option byte setting 藍框:擦拭全部記憶體位置 中間區塊是顯示Flash位置與資料,且快按滑鼠左鍵2下可以直接修改內部數值 在燒入部分可以看到上圖,主要設定3個區塊 綠框:首先選擇要燒入的檔案,這邊可以選擇Bin檔或Hex檔 藍框:設定燒入的起始位置(一般是使用到雙Bank或切割APP才會需要設定此位置一般不特別設定) 紅框:開始燒入 下圖我們可以來看到Option Bytes設定(STM32與STM8最大不同在於Option Bytes已不會再額外生成檔案,因此再批量燒入時都會用Command line形式燒入) 上圖比較需要注意的設定是Read out Protection與User Configuration,這邊RDP一般是設定AA,設定BB可以防阻由外部程式讀取內部程式。但這邊切記如果CC是不可逆,一但切成CC燒入MCU就等同燒斷,無法在讀取與燒入其他程式。PS:這邊設定BB切回AA時,會觸發Flash資料全部擦除,因此設定BB就不用怕程式被盜取在User Configuration最常被使用到是Boot0/Boot1與IWDG設定,這邊每顆MCU在此區況設定都會有些許不同需詳細閱讀其reference manual更動Option Bytes時切記中途不要斷電(會導致系統錯誤可能會使Option Bytes錯亂無法復歸),等修改完成後在斷電重新上電,讓系統確實吃到新的設定 STM32CubeProgram Command Line 這邊ST有給予2種版本可以開啟CubeProgram,其中CLI開啟如下圖,可以在Bin的資料夾中找到指令部分可以參考ST官網UM2237文件,這邊提供一個當設定IWDG設定出錯無法在正常修改Option Bytes時的解法(以G031為例) .\STM32_Programmer_CLI.exe -c port=swd mode=UR -ob rdp=1              //RDP 設定為level1  (0xBB) .\STM32_Programmer_CLI.exe

STM32Cube Tool Introduction-2 Read More »

STM32Cube Tool Introduction-1

Preface  ST官方推出許多針對自家產品MCU的方便使用工具,在不同應用有不同的工具可以對應使用,本章節會針對STM32CudeMX做入門操作介紹。 STM32CubeMX ST在前置作業時為了方便大家能夠快速建置底層的code出了一款STM32CubeMX,CubeMX主要是用在前期MCU設置階段使用,後續編譯程式需要使用到其他軟體 由上圖有三個方框處分別是 綠框:之前所建置過的專案 黃框:初始乾淨的MCU專案(適用在自己製作板子使用) 紅框:以ST官方給的板子為基礎所建置出來的專案(EX:Nucleo board系列) 這邊可以透過上圖MCU/MPU Selector來去挑選所需要的MCU,其中Peripheral是一個很方便的塞選,可以依照所需求的腳位去塞選出對應的MCU選項(EX:ADC*3 CAN*2可以透過這個選取) Pin Setting 這邊以ST官方版子新建置Nucleo-64(STM32L433)為範例接續下去說明 上圖操作主要分成3大區塊下面就提點幾個區塊要注意的地方與簡單設置操作 綠框:主要是選擇各項功能開啟設定區域(EX:Can bus /UART/I2C等等) 黃框:主要是建置流程設定依序由左至右設置 紅框:這區域主要是看你所設定腳位圖示化區域 第一個要注意的地方是在SYS選單這邊,這邊是主要要注意試燒入設置的地方,這邊選擇Serial Wire,在最右側圖形化部分就會出現燒入時候預設的PIN腳(!!注意!!不要把腳位全部設置完畢,才發現沒預留燒入腳位要重新設計!!) 這邊綠色腳位是以使用開啟的,灰色部分則是還未使用,滑鼠可以移動到灰色區域然後左鍵,就會出現上圖選單。這邊就可以知道該腳位可以來做什麼用途(這邊建議是先使用上面所教先設置,在使用此方法更換所需要PIN腳位置)PS:這邊有一個小技巧是滑鼠壓住+ctrl壓住你綠色設置腳位,會出現黑色閃爍腳位,這就表示你可以更換的位置,直接拖移即完成更換 Clock Setting 該區域主要是在設置各線路所使用Clock的狀態,可以在方框內直接填入數字即可完成設置這邊要注意的是要依照datashhet做Clock分配,不然clock為MCU主要控制項目錯亂了會DeBug很久~沒特別就可以直接跳過 Final Setting 這邊主要是要設置下圖下拉式選單,後續要使用什麼編輯器去撰寫你的程式,因為我們主要使用ST官方給的STM32CubeIDE,我們這邊是選STM32CubeIDE,專案存取路徑與名稱設置好後,就基本設置完畢,按下右上方GENERATE CODE就可以生成專案程式了。 Other Setting 下圖是主要設置把GENERATE CODE的涵式庫單獨區分檔案出來方便你去編修(EX:I2C.h等等) 下圖區塊主要是設置涵式庫使用的層級,HAL為應用層為ST官方所提供,部分專業會想使用LL,LL主要是底層的程式方塊選用LL後最好搭配上面把.c/.h分離開來方便去撰寫 小結 本章節主要針對CubeMX做介紹適合新手閱讀,下章節會針對CubeIDE與CubeProgram作介紹 參考 STM32CubeMX STM32筆記(9):使用STM32CubeMX與Keil開發環境

STM32Cube Tool Introduction-1 Read More »

Low Power PWM(Timer) API on STM32WB

前言 隨者低功號產品越來越要求,ST就推出Low power應用的MCU與相對應腳位,其中ST MCU中的L系列就是專屬的Low power的MCU,另外部分MCU也有低功耗腳位的MCU 例如F7、H7、G0、G4與WB系列,本章節會針對LPTIM這隻腳位去做詳細解說與用法切換震盪來源 LPTIM功能 LPTIM:Low-power timer,即低功耗定時器(16bit)LPTIM與一般TIM不同處主要是在除了待機模式下全部電源模式保持運行,而且沒有內部時鐘源也能運行下圖我們也可以看到L0與G0不相同,因此不同的系列LPTIM的設置會有不同需要再確認(其中WB系列與G0系列相同) 注意:CLKMUX選擇對應的是CFGR寄存器的bit0:CKSEL,用于控制内核clock選擇由内部時鐘源(APB或LSE、LSI和HSI等任何其他內部震盪器)提供。也可以選擇由外部clock源通過 LPTIM 外部 Input提供。 LPTIM特性 內部clock:LSE、 LSI、 HSI 或 APB LPTIM輸入的外部clock(在沒有LP震盪器情況可以使用脈衝計數器)其中LPTIM具有Glicth濾波器(如下圖) LPTIM_ClockConfigTypeDef定義 Source可以選擇如下 #define LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC  ((uint32_t)0x00U) #define LPTIM_CLOCKSOURCE_ULPTIM             LPTIM_CFGR_CKSEL 第一種表示LPTIM 使用內部clock(APB 或APB 或 LSE、LSI和HSI等)第二種表示LPTIM 由外部Clock通過 LPTIM 外部 Input1 提供Clock。 Timer底層配置(GPIO、Clock、中斷) HAL_LPTIM_Init就會调用HAL_LPTIM_MspInit PS:HAL_LPTIM_DeInit就會调用HAL_LPTIM_MspDeInit基本設置外還需要配置好GPIO、Clock、中斷才能完整使用,以下為配置LPTIM1使用PD13做PWM範例 小結流程 通過函数HAL_LPTIM_Init()做初始化 低功耗定時器的底層配置是通過函数HAL_LPTIM_MspInit()實現 選擇低功耗定時器支持的6種工作模式 PWM模式:使用HAL_LPTIM_PWM_Start()或 HAL_LPTIM_PWM_Start_IT() 單脈衝模式:在此模式下,當滿足條件時,輸出出可以切換高低電壓,使用HAL_LPTIM_SetOnce_Start()或 HAL_LPTIM_SetOnce_Start_IT() Encoder模式:HAL_LPTIM_Encoder_Start()或HAL_LPTIM_Encoder_Start_IT()!!注意非每個LPTIM都支持此模式!! 超時模式:HAL_LPTIM_TimeOut_Start()或 HAL_LPTIM_TimeOut_Start_IT() 計數模式:HAL_LPTIM_Counter_Start()或  HAL_LPTIM_Counter_Start_IT() 停止任何模式:用户可以通過调用相應的API來停止任何模式: HAL_LPTIM_Xxx_Stop

Low Power PWM(Timer) API on STM32WB Read More »

AMS_AS5600(Position sensor)

前言 A position sensor is a sensor that facilitates measurement of mechanical position. The AS5600 is an easy to program magnetic rotary position sensor with a high-resolution 12-bit analog or PWM output. The AS5600 is also equipped with a smart low power mode feature to automatically reduce the power consumption. Design Note AS5600有部分硬體設置重點,第一點是磁鐵選用,磁體尺寸盡可能是圓形因為他是感受磁場垂直變化(尺寸規範如下)且這邊注意磁鐵是使用對稱 第二點在裝置上也不能偏移太多,下圖是偏移對磁場變化影響圖與實際規範範圍圖,可以看到雖然是有容許裝置範圍但不可無限制偏移 Coding Sample 這邊選用I2C來做為範例可以先參考下圖Register map I2C傳輸 這邊只需要注意它的部分傳輸是分2筆,每筆DATA 8Bit因此在讀完整Data時與一般SPI不同是分2個register讀取

AMS_AS5600(Position sensor) Read More »

Inter-Integrated Circuit(I2C)

大綱 以下文章主要以I2C master為出發,如果是要尋找I2C slave 可點擊右邊文章 I2C的物理層 I2C傳輸數據線=> SDA數據線:時鐘 Ref:《IIC原理超詳細講解—值得一看》 Ps:的理論理想傳輸距離為通信,用於由於乾擾和傳輸速度的提高,實際上的IC只有15M遠,一般適合板極器件,不適合中長距離的通信本題STM32與硬體須注意事項 I2C數據傳輸 IIC的每一天偵查數據由9bit組成如果是發送數據 8bit data+1bit ACK如果是設備地址數據則8bit包含7bit設備地址+1bit方向 數據是由為一組而傳輸的,因此需要額外發送8位傳感器或應用程序體去設置接收設置PS:因傳輸訊號為先傳輸數據為雙線結構,所以傳輸數據發送端:地址(8bit)+數據(8bit) STM32CubeMX I2C設定 Ref:【STM32】HAL庫STM32CubeMX教程十二—IIC(讀取AT24C02) PS:共用Clock是需要盡可能避免的,因為會出現時序互相干擾現象,如需在使用時必須排好時間流程序 最後是轉出STM32cubeIDE可編輯的程式碼 I2C 程式撰寫 Ref:使用I2C STM32F0 HAL庫編程計算 另外也有以下4種Function可以使用 I2C傳輸失敗 針對第2點可以使用以下程式去解

Inter-Integrated Circuit(I2C) Read More »

Motor Control Workbench 程式架構-2

前言 上篇描述了STM32 Motor Control Workbench所生成的主程式架構,這邊會接續說明3個依附在主架構下的核心任務流程與架構,主要分成3個部分安全任務、中頻任務、高頻任務。其中安全任務主要是針對溫度、電壓、電流去做保護,中頻任務是在執行速度環與狀態執行,最後高頻任務是在FOC演算法執行 安全任務 中頻任務 高頻任務 API使用 介紹完主要程式流程後接下來是去使用上層API使馬達轉動下表示已建立好API 主要是在程式When回圈內去設定以下2個涵式馬達就可以運轉起來 範例參考 需要實現以下速度控制代碼參考如下 參考 STM32電機控制–API函式應用 ST SDK5.0電機正反轉及轉速控制 【基于NUCLEO-F746ZG电机开发应用】8.程序框架-三大核心任务简介

Motor Control Workbench 程式架構-2 Read More »

Motor Control Workbench 程式架構

前言 這邊網路資源也算蠻多的一些相關知識可以參考FOC控制原理與电机应用开发实战指南-基于STM32中的影片知識,這邊會探討在ST的Workbench 在設定完成後所生成的code,主要在程式架構與重要程式碼說明,在了解架構後,就能夠自己加入所需要應用調整,後續會逐步介紹API應用與不同控制的改動 程式架構 下圖可以看到主要的整個程式運轉主架構,其中有2個中斷(Systick中斷與ADC中斷)可以由圖看出是程式的主核心,Systick中斷執行安全任務與中頻任務(速度環),而ADC中斷則執行高頻任務 Systick中斷 系统定时器是一个24bit的向下遞減的計數器,計數器每計數一次的時間為1/SYSCLK。當中內存數值寄存器的數值遞減到0的時候,系统定時器就產生一次中斷。這邊參考已默認1ms的定時中斷為範例來看參考代碼 中斷函數 MC_RunMotorControlTasks函數內容 ADC中斷 ADC中斷主要在Timer觸發後執行FOC座標轉變、SVPWM執行、電壓電流溫度採樣與PWM調整占比輸出(可以參考下圖)ADC初始化部分可以參考文件【基于NUCLEO-F746ZG电机开发应用】7.程序框架-两个重要中断,與一般初始化大致相同就不贅述只有在中斷部分有加入函示庫 ADC中斷 參考 【基于NUCLEO-F746ZG电机开发应用】7.程序框架-两个重要中断 【基于NUCLEO-F746ZG电机开发应用】6.程序框架 STM32 电机教程 18 – MC Workbench生成工程代码的电机调试

Motor Control Workbench 程式架構 Read More »

Motor Profiler and MotorControl Workbench

前言 ST這邊推出Motor Profiler 與 MotorControl Workbench方便可以把底層程式給建構完全,以及基本的API提供應用,在使用上與入門算蠻便捷容易上手的,且相對優點式的code是全面開放可以看到每個API的撰寫方式,此章節會著重在Motor Profiler and Workbench的操作使用上 The ST Motor Profiler software tool provides the following features: A PC software application to auto-measure electromechanical parameters of PMSM motors ; Embedded One Touch Tuning algorithm: a new algorithm that uses a single parameter to set up the speed controller according to the type of

Motor Profiler and MotorControl Workbench Read More »

Shopping Cart