STM32 Value line discovery(STM32VLDISCOVERY) - 連接USART Port

Submitted by saladlam on

參考:http://www.embedds.com/programming-stm32-usart-using-gcc-tools-part-1/及http://www.embedds.com/programming-stm32-usart-using-gcc-tools-part-2/。

在一年多之前在日本大阪的電子發燒友專門店,買了塊STM32VLDISCOVERY。到現在才有空研究如何用。

Compile程式

用已經在Linux上安裝了的ARM Toolchain,來試試可否Complie ARM Cortex-M3的Source Code。

連接Raspberry Pi的UART Port

Submitted by saladlam on

在淘寶買了USB轉UART串口模塊(Link,Driver),試試用它來連接Raspberry Pi。

把模塊設定為"USB連接TTL"模式:DIP 1為ON、DIP 2為OFF、S1為向板邊。接線如下

USB轉UART串口模塊Raspberry Pi
TXDGPIO 15 (RXD)
RXDGPIO 14 (TXD)
GNDGround

在Windows安裝Driver,用Terminal Emulator(例如PuTTY)來開COM Port,參數為115200,N,8,1。

接上Raspberry Pi電源,打開COM Port,見到Linux Kernel Boot機畫面,收工。

用QEMU試玩u-boot

Submitted by saladlam on

話說有人在開發給Raspberry Pi用的u-boot。二話不說,下載回來試試看。設定好後,開機,只見那個"色板"開機畫面,又不見SD燈在閃。再把文章內容看清楚一些,才發現現在的版本只支援UART I/O。我沒有UART轉USB轉接器,所以不能試。

為了了解u-boot的運作,所以試下可否用Emulator來跑u-boot。我參考這篇文章(http://balau82.wordpress.com/2010/03/10/u-boot-for-arm-on-qemu/),在CentOS 5安裝QEMU,compile2012年7月的程式碼(u-boot-2012.07.tar.bz2),結果是跑不動。

不知道那裏出現問題,就唯有按照文章,OS、Toolchain、Source Code,全部一模一樣地照做一次。結果發現用2010年3月的程式碼(u-boot-2010.03.tar.bz2)就OK。

沒有時間研究為何2012年7月的程式碼為何用不到。

在CentOS 5.8的電腦cross compile Raspberry Pi的Linux Kernel

Submitted by saladlam on

在github的raspberrypi專案裏是有給linux用的cross compiler。不過它只能在Ubuntu-11.10中使用,若果在CentOS 5執行,會出找不到新版glibc的錯誤。用不到,唯有自己再整一個。

首先安裝CentOS 5.8。在選Package的時候,選擇"Development"裏的"Development Libraries"和"Development Tools"。

安裝crosstool-ng-1.15.3

可參考http://www.bootc.net/archives/2012/05/26/how-to-build-a-cross-compiler-for-your-raspberry-pi/。

用Arduino板學AVR篇程 - USART

Submitted by saladlam on

控制serial port是MCU篇程一個很基本的技巧。而ATmega328P的說明書都寫得幾清楚背後的原理是怎麼樣,但對一個新手來說,由零開始寫始終是一大挑戰。

Peter Fleury寫了一個控制USART的Library,但Code實在太舊。Tim Sharpe修改了由他所寫的Library,令到Library可以用於新出的MCU,並支持現今的AVR-GCC Complier。

我用了這個Library,並作出少許修改,試作serial port通訊。試驗如下:

用Arduino板學AVR篇程 - 利用SPI存取SD咭

Submitted by saladlam on

話說在某一天用Google找Arduino的SD咭程式庫時,意外地找到這篇由印度人寫文章。內容是如何用一粒ATmega8去讀取SD咭的內容。線路圖,程式碼樣樣有,是一個很好的工具去學習如何使用SD咭。

在佈線上,連接SD咭有兩個方法。SD Mode和SPI Mode,而SPI Mode又再分1線及4線。看線路圖,佈線的方法是使用SPI Mode,連接ATmega8 MCU的SPI Port。SD咭是用3.3V,而MCU是用5V,但我看線路圖,沒有升降電壓的線路。

使用SD咭做Project最困難的地方,是很難取得一份正式說明SD咭內部構造的文件。若果要取得文件,必需要向SD Card Association註用,而且要交為數不少的費用。但因為有SD咭製造商的技術文件,再加上一些從廠商溜出來的機密文件,現在總算能了解SD咭的內部構造。

再看程式碼,有MCU使用SPI Port的方法,可看到MCU和SD咭亙傳消息的Packet,最後是如何連結File System(FAT32)。若果沒有文件,根本看不明Packet在傳甚麼。