2016年9月9日 星期五

Published 晚上7:13 by with 0 comment

[實驗] STM8與低通濾波器

進行一些控制操作的時候, 需要透過ADC讀取一些外部sensor資訊。 有時候會遇到sensor狀態不穩, 也因此讀取的數值就會莫名飄動。 在這種時候會需要一些簡單的濾波器。 關於濾波器的技術,一些前輩都寫過了。 例如 以8051為基礎的軟體濾波器操作 http://chamberplus.blogspot.tw/2010/05/ad.html 濾波器的數學樣式 http://blog.xuite.net/juinghuei/twblog/99597535 而在這邊我們使用 STM8 重現軟體濾波器實驗。 首先準備個500K的可變電阻裝在麵包板上, 並且和STM8的AD腳連接起來。 為了避免一些電源的浮動什麼的影響,所以另外接了3.3v...
Read More
      edit

2016年9月8日 星期四

Published 下午4:59 by with 3 comments

[實驗] Raspberry Pi 3 之 LED 閃亮

為了要能夠讓樹莓派做點簡單的小事, 我們先嘗試驅動GPIO來點亮LED。 根據樹莓派驅動GPIO的網頁說明,有幾種模式: 1. C語言 2. C#語言 3. Ruby 4. Perl 5. Python 6. Scratch 7. Java 8. Shell 我們採用最接近單晶片形式的C語言來開發。 根據一份GPIO速度實驗的報告顯示 直接使用 C Native library 的速度最快,BCM 2835 則次之。 而乍看之下 BCM 2835 library 的複雜度也不算太高,跟 C Native library 相比是簡單多了。 於是根據 BCM 2835 library...
Read More
      edit

2016年9月7日 星期三

Published 下午4:25 by with 0 comment

[實驗] RS-485 初步探討

本次實驗的主角是RS-485。 這是個MAX485晶片所組成的RS-485模組,方便我們使用。 RS485是一種優秀的通訊機制,可以進行長距離傳送、穩定可靠, 據說波音飛機上就使用這種機制當作控制用的通訊。 根據 MAX485 的 datasheet,可以看到基本的點對點通訊是這樣連接的。 其中的控制接腳 RE 與 DE 分別代表 接收 與 發送 的信號方向切換。 我們在實際操作的時候,會將 RE 與 DE 相連在一起由一個 IO 信號去切換通訊。 也就是像這樣連接: 旁邊那顆 limit switch 是用來手動切換電位的。 如果多機通訊,可以有這樣的連接方式 如圖所示可以做成多機通訊模式。 為了簡化系統,我們設定某一台為主機,其他為從機。 主機的...
Read More
      edit

2016年8月2日 星期二

Published 下午4:42 by with 1 comment

[基礎] OpenOCD 與 STM32

在單晶片開發時,大部分都採用燒錄後執行程式, 並且透過UART吐出數據的方式來debug。 不過隨著系統的複雜度上升,這樣的開發方式逐漸會遇到瓶頸。 也因此,比較大的晶片例如32位元的,通常會內建 JTAG 裝置, 也就是一種後門,方便進行debug。 在此我們採用一種 On-Chip debugger 軟硬體搭配, 簡單來說就是能夠單步執行並且隨時能知道記憶體內容。 各家晶片都有自己的 On-Chip Debugger 裝置,對應的 JTAG 硬體也各有不同。 原本打算採用的是 100 ASK 公司出品的 OpenJtag 但是該公司的這支硬體呢,在Win10下的驅動程式似乎怪怪的不能安裝, 搜尋了一些教學顯示有些麻煩的設定要做,所以暫時先算了。 既然打算要用STM32,那就用先前操作...
Read More
      edit

2016年8月1日 星期一

Published 下午2:23 by with 1 comment

[基礎] STM32與開源軟體

這一次的主角是STM32。 照片中是一塊STM32開發板,搭配的 debugger 是 ST-Link-V2 。 STM32具有優異的性能,各種強大的設計使得開發產品非常容易,而且這晶片也不貴。 這次作為實驗對象的是 STM32F103vet6。 在前面的章節不斷的使用 Code Blocks 這個優秀的 IDE ,而本次的實驗要用 Code Blocks 來進行整合開發環境的建置,並且能夠單步執行。 首先要取得 Compiler 。可以先閱讀 How to install the ARM toolchain 這網站的指示。 然後到 GNU ARM Embedded Toolchain...
Read More
      edit