2020年5月31日 星期日

MOSFET教學_電子學CH8-4 MOSFET構造與特性

MOSFET教學
https://www.youtube.com/watch?v=9DJQcOVc5bk

MOS管寄生二極體的方向如何判斷?
https://kknews.cc/zh-tw/news/jbonvnq.html

How Transistors Work - The Learning Circuit




MOS管寄生二極體的方向如何判斷?
MOS管寄生二極體的方向如何判斷?
MOS管寄生二極體的方向如何判斷?
MOS管寄生二極體的方向如何判斷?
MOS管寄生二極體的方向如何判斷?
MOS管寄生二極體的方向如何判斷?

HALL SENSOR信號測量記錄


HALL  SENSOR測試結果如下:


2020年5月6日 星期三

BLDC無刷馬達控制(一)

BLDC無刷馬達有許多優點,愈來愈受人歡迎,但馬達的運轉原理比較抽象,借用影片說明可提高對BLDC的認識,以下是不錯的參考影片。
1.  Renesas
https://www.renesas.com/in/en/support/technical-resources/engineer-school/brushless-dc-motor-02-inverter-pmw.html

2.  Nidec Motor Corporation
https://www.roboteq.com/applications/all-blogs/2-uncategorised/46-how-brushless-motors-work

3. Elprocus
https://www.elprocus.com/brushless-dc-motor-advantages-applications-and-control/

4. DigiKey
https://www.digikey.com/en/articles/how-to-power-and-control-brushless-dc-motors

5. EETech Media
https://www.allaboutcircuits.com/technical-articles/sensorless-brushless-dc-bldc-motor-control/

6. TI
https://www.youtube.com/watch?v=0mQunSe2_FM

7. Quora
https://www.quora.com/How-does-a-bldc-motor-works

8.  TI
https://www.youtube.com/watch?v=szgVUfyX8JM

9.   for HALL Sensor
https://www.youtube.com/watch?v=jdgU49ne4gA

10.  Brushless Gimbal With Arduino
https://www.instructables.com/id/Brushless-Gimbal-with-Arduino/

11.  Sensored brushless DC motor control with Arduino
https://simple-circuit.com/arduino-bldc-brushless-dc-motor-control/

12. 無刷 DC 馬達控制介紹   
https://www.digikey.tw/zh/articles/an-introduction-to-brushless-dc-motor-control

13. 馬達基本認識與 BLDC 驅動實驗   
https://www.slideshare.net/roboard/bldc          

14. BLDC FOC 控制原理               
https://www.slideshare.net/roboard/bldc-foc

15.Brushless DC Motor,How it works?
https://www.learnengineering.org/brushless-dc-motor.html

16. How does a MOSFET work?
https://www.learnengineering.org/how-does-a-mosfet-work.html

17. 如何控制無刷直流電動機?---凱利訊半導體
https://zhuanlan.zhihu.com/p/33059467

18.  無刷電機控制及電機供電方法
http://www.wsqdfa-bldc.com/news/zhishi/315.html

19. Motion Simulator Software
https://www.xsimulator.net/

20. MOSFET原理
https://www.youtube.com/watch?v=GrvvkYTW_0k

21. how brushless motor and esc work and how to control them using arduino
https://www.youtube.com/watch?v=uOQk8SJso6Q

電週期和機械週期
若轉子是由2對永久磁極組成,則兩個電週期會使轉子機械旋轉一圈(一週)。








2020年5月4日 星期一

STM32 UART串列通訊程式設計(一)

STM32  Uart串列通訊使用的技術主要有三種:

1.  POLL            :使用HAL提供的函式:HAL_UART_Transmit
                                                                       HAL_UART_Receive
2.  INTERRUPT:使用HAL提供的函式:HAL_UART_Transmit_IT
                                                                       HAL_UART_Receive_IT
3.  DMA             :使用HAL提供的函式:HAL_UART_Transmit_DMA
                                                                       HAL_UART_Receive_DMA

1. POLL
    一般是用所謂的blocking mode(阻斷模式),就是傳送/接收data時不被中斷,一直到傳送/接收完成為止,因此,如果只是使用UART沒有做其它的事,可用這種方式,但是如果還有其它的事要做,可能會受影響。
基本上,用POLL方式有幾個地方要注意。POLL使用HAL提供的函式形式如下,
HAL_UART_Transmit (&huart, Tx_data, sizeof (data), time);
HAL_UART_Receive(&huart, Rx_data, n, time); //接收 n bytes data
其中huart是Uart handle, Tx_data是要傳送的data buffer位址,sizeof (data)是傳輸量,Rx_data是接收buffer,time是timeout時間,timeout稱超時時間,也就是在此時間必須把data傳輸/接收完成,否則會有error或異常現象出現。因此傳大量data時,timeout要設長一點,timeout是以1ms為單位。
從上述可知,若有重要的事要做,又必須等它傳完data才能去做,在此情況下,可以改用INTERRUPT或DMA方式。

2.  INTERRUPT
    在INTERRUPT 模式,是使用所謂的non-blocking mode 模式(非阻斷模式),當傳送完成會呼叫 HAL_UART_TxCpltCallback( )函式,接收完成會呼叫HAL_UART_RxCpltCallback( )函式,使用者可在這些函式內寫上傳送/接收完成後要做的事情。

3. DMA 
    DMA也是使用non-blocking mode 模式(非阻斷模式),在DMA模式,DATA傳送/接收一半會有一個半傳輸完成的INTERRUPT被觸發產生,呼叫 HAL_UART_TxHalfCpltCallback /HAL_UART_RxHalfCpltCallback函式。
而當DATA傳送/接收完成,會呼叫 HAL_UART_TxCpltCallback / HAL_UART_RxCpltCallback 函式。
這樣的設計意義,對傳送端來說,是當後半段的DATA開始要傳輸時,便可將新的DATA寫入前半段,以加速資料的傳輸,這也是所謂的circular mode。

總結: 

1. 關於STM32的UART 串連通訊,最重要的是使用INTERRUPT模式,POLL模式一般不使用,因系統不會只單純做UART通訊,且效率不好。 

2. 在實際的應用上,往往不知要接收的資料有多長,所以使用HAL提供的函式,有點不切實際,唯一可以利用的是只接收一個CHARACTER就產生INTERRUPT的方式,再以接收的DATA來判斷是否是最後一個CHARACTER,(例如以"ENTER"做判斷標準),若不是最後字元,就照順序存入接收BUFFER,等收到"ENTER"後,就知道已完整收到DATA,可以繼續處理後續的事。