MCU單晶片韌體設計

2015年2月26日 星期四

Raspberry Pi B+ & Pi 2 I/O 擴充子板 -- I2C 功能測試 EEPROM

Rasp Pi I/O子板上的 I2C 介面上已安裝好一個 EEPROM (24AA16)的IC,在I2C上的位置(I2C Slave Address)是0x50。

在Pi板系統之上我們可以用apt指令安裝i2c-tools這個工具套件來在command line中直接對指定位置元件做暫存器的存取。
sudo apt-get install i2c-tools

i2c-tools工具套件會去透過 /dev/i2c-1 這一類的裝置檔案來操作I2C介面,而在載入i2c-dev驅動模組,這些裝置檔就會自動產生。可以使用 modprobe 指令載入i2c-dev 驅動模組,載入成功之後使用lsmod指令可以看到i2c_dev模組已經掛載在Linux系統之中了:

Raspberry Pi B+ & Pi 2 I/O 擴充子板 -- USB-UART 連接埠使用



最近公司出了這塊子板,對於想要在Raspberry Pi B+或是 Pi 2 上面練習GPIO、I2C、SPI、PWM...等等的硬體程式設計而言,這是一塊非常好用的一個擴充板。方便安裝、易於使用、不用線接得到處都是。



2015年2月16日 星期一

Raspberry Pi2 (ARM Cortex-A7) 上編譯Raspbain Kernel



手上拿到了 Raspberry Pi 2 的板子,第一件事情當然就是先去官網下載最新版的Raspbian來安裝了。

http://www.raspberrypi.org/downloads/

寫這文章時Raspbian的更新日期是 2015-1-31。把檔案抓下來燒到microSD卡裡面就可以開機了。但是想在新的系統上開發核心的話,還是需要重編 Kernel。

相關文章: 在Raspberry Pi 上面建立編譯 kernel module 環境之懶人包

-- 2015-07-15 -- 更新 -- 編譯的kernel 帶有Device Tree的功能...
相關文章: 編譯 kernel 4.0.y with device tree:


cross-compile的工作是在按在桌機上的 Debian作業系統裡進行的。

在重新Compile之前要先得到目前版本的.config檔:

XMPP IOT




目前IOT 還沒有標準的全球通訊協定 但我看來主要有力在角力的就兩大標準

xmpp組織 成立了一個專頁 (http://xmpp-iot.github.io/) 專門討論iot的協議 用xmpp 上實現

另一個是MQTT ,http://mqtt.org/

標準的制定會是一個重要火車頭,一但有全球標準出線,還是得偶爾關注一下標準的進展

IOT

2015年2月6日 星期五

Raspberry Pi b+ 用 Python 控制 LCD 16x2 (HD44780) 簡介 Part 3 LCD 初始化動作


LCD 開機動作

跟據Datasheet所表示,我們正在用的四條資料線+RS+RW+EN的接線接法是叫做4bit模式,而嫌GPIO太多的八條資料線+RS+RW+EN的接線接法叫做8bit模式。

而在一開始的時候要怎麼樣才能告訴LCD模組我們打算用4bit模式還是8bit模式來操作LCD? 這裡的主題是4bit,所以就不管8bit模式怎麼開機。而且4bit搞定之後,通常也不會想用8bit模式了。






2015年2月5日 星期四

Raspberry Pi b+ 用Python 控制LCD 16x2 (HD44780) 簡介 Part 4 自訂文字或圖示


接續上一篇,在已知如何傳送指令和資料給LCM模組之後,這裡要介紹如何在模組上畫出自已要的圖並顯示出來。

先觀察一下LCM模組的螢幕,如下圖所示,每個"字"是
由左右5個(編號:0~4)、上下8個(編號:0~7),共 5 x 8 = 40 個點所組成成的。




而在LCM模組之中劃分了一塊記憶體空間提供給使用者儲存多達7個自訂字形。每個字都會占用連續8個byte的記憶體空間。言下之意,會有 7 x 8 = 56 個連續 byte 是使用者自行定義的字形檔空間,其中每個字用8個byte來表示,一個字之中的每條左右橫向5個點由一個byte裡面的前5個bit來控制。每一個點都代表著一個 bit 值,而該值則代表了該點黑(1)或不黑(0)。