2012年11月12日 星期一

UNO.Net 於 Ubuntu 使用設定(以 LPCXpresso 設定為例)

Hi  all,

11/13 更新:新增 LPCXpresso 操作 telnet 連線圖片、serial 連線說明


上一篇 UNO.Net 是筆者自己興趣測試,
利用了原生的 Eclipse C/C++所建構的編譯環境。

若要採用上一篇的方法繼續實作的話,
在未來更深入的實作時,可能會遇到編譯上的困難,
因此筆者在此提供一些 LPCXpresso  編譯器的使用設定。


本篇文章有兩個重點:


1.  安裝官方版本 LPCXpresson

2.  解決 Java 相依性 Lib 問題





請各位讀者先到英倍達官網先依照左側的文件教學區,
自1-1 安裝設定至 1-4,安裝好SVN後,先將 LPCXpresso 縮小或關閉。






由於Ubuntu 的 JavaHL Lib 相依性有系統變數路徑的問題,
因此我們要修正一些小問題。

步驟如下:


1.  安裝好官方軟體後,開啟終端機搜尋 lpcxpresso.ini 檔

  2.  開啟終端器 ,輸入:locate lpcxpresso.ini

3.  以我的機器為例:lpcxpresso.ini 檔
             『 /usr/local/lpcxpresso_4.3.0_1025/lpcxpresso

4.  輸入  cd  /usr/local/lpcxpresso_4.3.0_1025/lpcxpresso

5.  因為 lpcxpresso.ini 檔是唯讀,僅能利用 sudo 的身份去更改,
             因此要先切換為 sudo

6.  輸入 sudo su切換為 sudo 後,再次輸入: vim  lpcxpresso.ini

7.  把:-Djava.library.path=/usr/lib/i386-linux-gnu/jni   指令,
             貼到 lpcxpresso.ini 文件最後一行,存檔即可

8.  重新開啟 LPCXpresso ,執行 SVN 會發現原本會跳出的錯誤問題都消失了



JavaHL 相依性問題透過上面步驟大概五分鐘左右就可以修好。
接下來就是讓我們的 LPCXpresso 透過 RJ 45 網路線,經由 telnet 連線到 UNO.Net






讓我們繼續回到英倍達官網教學文件區,稍早我們只有作到 1-4 ,
接下來我們繼續從 1-5 設定到 1-7 的 step  2

由於 Ubuntu 底下並沒有 Netbios 的功能,
因此若按照教學文件 1-7 step 3 之後的設定,將無法連線成功。



上個星期五弄了一個下午,

找到了可以透過 terminal 用指令連接到 UNO.net 的方法,
並可以查到硬體內含的配置 IP。

硬體配置為: USB與 RJ45 都請先接上電腦端



1. 打開終端機後,輸入:dmesg ,從顯示資訊中找到 cdc_acm 字樣的硬體資訊,
    了解 UNO.Net 被系統配置什麼名稱。
     UNO.net 在我這台電腦配置為:ttyACM0

2. 在終端機使用 cat /dev/ttyACM0 嘗試連接至 UNO.Net ,
    若可連接但進入選單後,輸入任何命令都無法正常操作,
    就先以 Ctrl+c 跳出這個操作選項。

    若使用 cat /dev/ttyACM0  進入選單能操作順利,
    請輸入 network ,系統將顯示關於 UNO.Net 目前的 ip 資訊,
    將相關資訊記錄下來,待會會用到。


3. 若步驟 2 的 cat /dev/ttyACM0 在進入選單後,無法進行操作,
    請嘗試用 screen /dev/ttyACM0
    若 screen 沒有安裝,請先  sudo apt-get update
    然後 sudo apt-get install screen

   安裝好 screen 後,輸入 screen /dev/ttyACM0
   這時候跳出的選單,應該可以輸入任何一個選項名稱操作

   輸入 network ,跳出的清單內容可以秀出該外接設備的 IP ,將 IP 記錄下來


4. 進入Ubuntu 網路卡設定,開啟網路卡的連線設定,進入「 有線 」,選項,
    新增連線 eth0 的相關設定,將IP 配置的部份設定為手動。

    打開 LPCCpresso 的官方編輯器,繼續從 1-7  Step 3 完成 1-7 的設定。

 完成後,打開 telnet 的連接視窗,
    利用 telnet 選項連接,host那欄填入稍早查詢到的UNO.Net IP,
    這樣作應該就可以連線正常。




到這你已經完成了初步 UNO.Net 與 Ubuntu 的通訊設定,
恭喜,之後我們將會陸續更新接上 Hub 與其他設定說明。


有任何問題,歡迎與我聯繫
Have  fun !



--Marcus.


補充:  在 windows 底下若要透過 USB  to serial 方式讓 UNO.Net 與電腦端溝通, 
             還需要安裝  USB  CDC   driver 。

             經筆者於 Ubuntu 測試,無須安裝 USB  CDC  driver ,

            僅需切換通訊界面選項 (Connection Type): telnet 改為 serial
            並確認通訊埠是否為稍早用 dmesg 所查詢到的  /dev/ttyACM0 即可
            (筆者通訊埠為 /dev/ttyACM0,請依照個人電腦配置名稱為主)

            

半路叛逃 -- 讀後心得


從天瓏書局與博客來預告新書開始,就一直注目著這本書名特異的書:半路叛逃
由於尚未看過內容,也不曉得到底是要逃什麼?

簡單看過作者介紹後才發現:原來他就是猴子靈藥的站長
當下腦中的圖像,將猴子靈藥與半路叛逃作個 mix 後,
我想其實這本書應該叫:半路潘桃

這詭異的想法,直到我唸完整本書,
我還是這麼覺得應該還是取:「半路潘桃」 比較貼切


讀後心得,已經看過不少篇,許多人的讀書心得不外乎就是:

" 作者從遊戲業跳脫,自行成立屬於自己的工作室,終於經歷一段歷程後,
  達到了自己的初步目標!好強!"

" 作者異業合作後,推出了這麼棒的商品,真屌!台灣之光!"


我覺得如果我再寫這種心得,大概會被丟雞蛋,
因此我在此整理出邊看書時,邊紀錄的當下心得。


其實單看封面時,我以為這只是一個辦公室冒險旅程,
描述主角如何在辦公室的險惡叢林中,一路破關,殺出生路,
最終升等為遊戲公司高階主管。

但翻了兩章之後,才慢慢了解原來作者跟我的心境是這麼的相似,
工作上感覺就像線上作業員,不斷的重複做著自己不見得同意、
不見得能苟同的企劃案。

完成了專案後,那興奮與成就感也僅能持續一個晚上,在小酌一番後隨即歸零。



『認同自己的價值』

從公司跳脫自立,需要很大一股勇氣,
尤其在台北生活,你要的是"不怕死"的勇氣。

不能怕餓死,不能怕被房租逼死,不能怕被人材輩出的新鮮人擠死,
最重要的,是不要怕把自己累死。


不曉得你是否曾經有過某個突然靈光一現,覺的自己若能把這個做出來,
就可以讓全世界知道自己是很厲害的發明者?


我有,而且常常這麼被自己的靈光閃到自己都忘了自己手上該繼續完成的事。
這其實不是壞事,更是自己的機會點。

一旦你能自己試著努力去實現理想,那麼逃到屬於自己的烏托邦這個選項,
是值得讓你思考,是否該跳出這個猶如駭客任務中的母體的抉擇時刻。



『不要怕下一步是什麼未知的坑洞』

無論是什麼路,走就對了。

當我們小時候學習走路時,前面有個碎石子,跨過去好呢?還是踩上去?
我想我當年應該是踩上去再說,
畢竟我還不夠熟悉怎麼學會走,更別說跳過這個顯而易見的石頭。

直到現在,我在學著面對新的挑戰時,我仍會試著讓自己犯犯錯。

唯有走過,你才懂的自己的極限,懂的珍惜自己現有的一切。
無論是什麼樣的新領域,請告訴自己:做就對了!



『平常心』

人生遇到的不如意,實在太多了。

例如一早上班途中為了買份早餐,將車子停在紅線區,
快跑到早餐攤車旁點了一份外帶,轉身回頭發現警察正在開違規停車的單。

從警察手中接過紅單,趕進公司後更發現:老闆娘找錯錢,還給錯了餐點

這是什麼悲劇人生? 但我倒是聽過不少次這樣的誇張情景
連我自己都無可避免的這麼賽過。


不過記住一點:

          當你現在衰到底,是最棒的風景,因為無論你怎麼走,你都正在往上爬行


人生苦短,偶爾運氣壞到底,也能體會一些人生滋味,
未嘗不是一種老來說嘴用的題材?
既然男人老了就剩一張嘴,那麼比別人有故事,你的老年生活應該也是很精彩的。




這本書看完,沒有大起大落的情緒和後勁,
但是讓我找到一個似乎可以借鏡的範本,讓我釐清了許多自己偶爾會犯的困頓感。
就像一首好歌,不 Rock,也不流於形式,只是詳實的寫出字詞話語,就足以動人心弦,
這首半路叛逃,我已經重播了兩回,依舊餘韻繚繞。


親愛的朋友們,如果你想了解什麼是創業甘苦談,如果你想了解什麼是人生,
我推薦你看『半路叛逃』!

哥爾羅傑臨刑前曾說過:

想要我的潘桃嗎?想要的話就全部給你吧!


不管你想要的是什麼樣的潘桃,先努力的找到自己的方向吧!
預祝各位順利、順心!




在此謝謝半路叛逃作者 - 猴子靈藥寫出這麼平實記述的好書!



以下附上半路叛逃的購買連結:

博客來:
http://www.books.com.tw/exep/prod/booksfile.php?item=0010559438

天瓏書局:
http://www.tenlong.com.tw/items/9861993649?item_id=481232

金石堂書局:
http://www.kingstone.com.tw/book/book_page.asp?kmcode=2014941188220

2012年11月7日 星期三

UNO.Net 於 Ubuntu 使用設定 ( 以原生Eclipse C/C++ 與 JavaHL 設定問題 )

Hi  all,

<本篇為個人興趣研究測試,若需要得到更好支援,
  請安裝使用 LPCXpresso  IDE >


上次剛介紹過得 UNO.Net,今天筆者終於有空拿起板子在 Ubuntu下試試看範例程式。
除了按照官網教學文件作設置外,別忘了要去先下載 Eclipse for C / C++,
下載好 Eclipse 後,按照英倍達官網教學文件學習怎麼設置編譯環境,畫面如下:







筆者所使用的電腦環境是:

Computer :  Thinkpad  x230
OS           :   Ubuntu   12.04
Eclipse     :   Juno  版


但設置到教學 1-6 時,筆者遇到了一些問題:無法連接到 SVN

預計應該重新開啟 Eclipse 就沒問題,
但 Eclipse 開啟過程中出現以下錯誤提醒視窗:




上圖的錯誤訊息,經查詢圖片中的 JavaHL-wiki-LINK 後發現是:

  • JavaHL所要使用到的 libSVN 未安裝
  • Eclipse 所要使用的 java  lib 並未指定路徑
  • JavaHL 與 Subclipse 對應版本不同




移除 OpenJDK,替換為 Sun Java



由於 Ubuntu 本身預設的 Java 為: OpenJDK
筆者建議先移除後,再安裝為: Sun Java


OpenJDK 移除指令,開啟終端機後,輸入或複製以下粗體字命令貼上:

1.   sudo apt-get purge openjdk*         /*   移除所有與 openjdk 有關的的指令    */



2.  sudo add-apt-repository ppa:webupd8team         /*   增加 PPA 來源   */



3.  sudo apt-get update            /*   更新資料庫清單   */

4.  sudo apt-get install oracle-java7-installer          /*   安裝 Sun  Java7   */





安裝 libsvn 插件


更換好  Java 版本後,我們要開始安裝缺少的 libsvn ,
開啟終端機後,輸入或複製以下粗體字命令貼上:

1.  sudo apt-get install libsvn-java          /*   安裝 libsvn-java   */


2.  sudo find / -name libsvnjavahl-1.so          /*    尋找 libsvn 安裝路徑   */

     


筆者安裝後,libsvn 安裝路徑的搜尋結果如下:

/usr/lib/i386-linux-gnu/jni/libsvnjavahl-1.so


紅色字體部份,即使 libsvn 安裝的位置,請將這個部份複製下來,
或暫時不要關閉這個搜尋結果,待會很快將會用到。





設定 Eclipse 系統路徑


Java 與 libsvn 已經設置好了,接下來就是要讓 eclipse 知道我們的 libsvn 放在哪


如何設定呢?
先開啟 Eclipse 資料夾,找到 eclipse.ini 後開啟、編輯,

並將 : -Djava.library.path=/usr/lib/i386-linux-gnu/jni    

寫入至檔案最後一行,並存檔。


存檔後,開啟 Eclipse ,看看是否正常不再出現警告畫面
但開啟後,又馬上出現一個警告畫面寫著:

Incompatible  JavaHL  library  loaded.  1.7.x  or  later  required.

原因是什麼?




插件對應版本不符

經由 javaHL 官網,我們可以看到一個對照表格:

Subclipse Version
SVN/JavaHL Version

1.8.x
1.7.x

1.6.x
1.6.x

1.4.x
1.5.x

1.2.x
1.4.x

1.0.x
1.4.x


由於按照英倍達官網的教學,我們所安裝的 Subclipse  Version 是  1.8.x 版本,
而 Eclipse 內預設對應的版本不符合,因此我們還要補上一個步驟:設置正確對應版本


開啟終端機後,輸入或複製以下粗體字命令貼上:

1.  sudo apt-add-repository ppa:dominik-stadler/subversion-1.7     
/*  添加 ppa 來源  */

2.  sudo apt-get update        /*  更新伺服器資料  */

3.  sudo apt-get  dist-grade      /*  判斷相依性需求升級   */




完成上述步驟後,請在重新開啟一次 Eclipse ,
這時候你會發現沒有任何警告與錯誤了。


既然已經沒有警告與錯誤後,
筆者再繼續依照英倍達官網上的教學文件  1-6  再設置一次 SVN,這次成功了!





到這恭喜各位完成 UNO.Net 與 uCXpresso  在  Ubuntu 下的初步設置,
接著請繼續努力學習吧!

Have  fun !

2012年11月5日 星期一

UNO.Net 開箱

Dear  all:

上週末至成功大學參加 MOUST,向各位朋友們導讀了 2012 MOPCON 的相關簡報,
在演說前拿到了 UNO.Net 這塊好物。

其實這塊板子在今年六月就已經從 Jserv 手上借閱過一下子,
非常有趣的東西,本身具有 32 bit NXP  MCU 、RJ-45 埠,
整塊板子因為這個網路通訊功能,而豐富了許多。

這次的採購除了 UNO.Net ,還添增了 LPC 1114 這片板子。





市面上有許多類似的板子,例如最知名的 Arduino ,也是筆者最常介紹使用的系列,
還有 Netduino Plus、Soldercore 等,本身都具有 RJ-45埠。

為什麼筆者挑選這一片?
原因夠簡單: 

1.  編譯環境採用近年來很夯的開放式編譯環境: Eclipse
     若需要外掛任何 plugin,都相當的容易、便利。


圖片取自:Google



2.  核心採用 NXP  nano 1768 ( 基於 cortex  M-3 核心)


nano1768 圖片取自:英倍達國際
     

3.  UNO.Net 是由台灣英倍達國際所自行研發製造,國人產品,鐵定支持!


因為本週筆者回中部工作,將許多線材、設備放在家中,
因此未能作詳細的介紹,僅以下列摘錄自英倍達國際官網的產品介紹,
讓各位一覽 UNO.Net 的特色。




UNO.Net  是將 nano 1768 與基板相疊之後的優異產品,
相當精巧與小巧,跟 Arduino  UNO 一樣大,重量也相仿。


UNO.Net 圖片取自:英倍達國際

Summary
Operating Voltage DC 3.3V
Input Voltage (recommended) DC7.5~9V
Input Voltage (limits) DC 12V
Programmable I/O Pins 19 + 6
Analog Input 6
PWM Output 6
UART 3
SPI 2
I2C 2
 DAC 1
 10/100 base Ethernet 1
 USB 1
 Debug LED 4
microSD slot1


上述是他的特色諸元,請參閱。


這樣的東西,到底可以有什麼樣的應用?
應用的方法只要與 『 網路 』  有關,你幾乎都能透過 UNO.Net 達成。

無論是遠端監控,或者小型監測平台,需定時將資訊回傳至資料庫或本地端,
利用 UNO.Net 自帶的網路功能,都能讓你的種種網路需求得到滿足。


筆者最近最想實作的,就是將英倍達官網上的兩樣東西 「山寨」

  • Facebook Like counter
圖片取自:英倍達官網

以下是他的相關專頁,有興趣的可以前往觀看:
  • WebSocket ADC monitor
圖片取自:英倍達官網



底下連結是 Real time 的實驗結果,可前往觀看:




這兩個實在太有趣啦!
只要有人在你的粉絲頁或動態上按讚,你就可以不須開電腦,
馬上知道有多少人愛死你的訊息,就連遠端的 ADC 訊號,
你也不需要大老遠的跑到機房就可以知道現在的運作情形。

光是這些可以讓我不須改變目前的作息情況,馬上可以讓我了然一切的作品,
就是讓我最心動的部份。


更棒的是,上回 10/28 號,英倍達國際竟然開設 NXP研習會,
讓所有與會人士全程免費參加!
還送出 LPC 1114 這塊板子!! 真的讓我好羨慕!!

而出借場地的松山農工蘇恆誠老師,也是親自到場動手學習,真的好熱血!!
可惜當天有事,因此不克前往。



未來我會盡量爭取英倍達國際是否能支援南部場次,讓南部的熱血人士都能一起參與這樣的活動!


今天的開箱文,大致上先簡略介紹這些部份,
之後將會在陸續寫出相關的設定、實作,以及通訊的部份。


有興趣的朋友,可以前往:http://www.embeda.com.tw/tw/   英倍達國際
經由官網更詳細的介紹,可以讓你更快了解 UNO.Net 有趣的細節。


Have  fun !


2012年11月2日 星期五

USBasp 以 Progisp 軟體燒錄 Arduino (ATmega168、ATmega328) bootloader 設定教學

前一篇我們帶著大家利用  AVR Studio  設定  AVRISP   mkII  進行 Fuse 等細節燒錄,
但上一篇教學是針對 Arduino   ATmega  2560 這顆單晶片。

若手邊只有 USBasp,而且要燒錄的對象只是 ATmega 168、ATmega 328,
那麼只需要上網搜尋一個輕量級的軟體: Progisp  ,即可燒錄。

由於該軟體相當容易搜尋,因此就不在此提供連結。




當軟體準備開啟前請先將 USBasp 插上 Arduino 的 ICSP 腳位,
並將 USBasp 與 Arduino 上的 USB 線連接至電腦。




接著將 Progisp 開啟,開啟畫面如下,
請先選擇晶片,接著按一下 USBasp 的 icon





接著我們針對常用的幾個 icon 進行介紹,紅色方框中的部份是我們會用到的常用選項,
圖片如下


1 . 一鍵清除晶片
2.  全自動(清除、上傳、驗證,一鍵完成)
3.  Fuse 等細部設定
4.  更多命令功能 ( Earse  flash、Upload  flash ....etc. )


當我們要上傳程式之前,請先按下 Earse 作晶片清除,接著按 Auto,就完成了全部的工作。
好,節目到此結束,我們下週見。


哎呀,當然不是這樣就沒啦!
的確這兩個步驟就可以做完全部的工作,只要一開始的晶片選擇有選對,
就是這麼輕鬆簡單。



我們再來介紹一下選項 3 和選項 4 的兩個功能


選項 3 點開後的圖示如下

若你有閱讀過我們前一篇使用 AVR  Studio 燒錄的文章,
那這邊應該有些 Fuse 的名字很熟悉,例如 SPIEN(SPI  Enable)。





以電腦的概念而言,1代表開,0代表關,但為什麼 SPIEN 是 0 呢?
因為在 AVR 的 Fuse  設定中,0就代表開,1就是關閉。
所以千萬別被 Fuse 這堆 1, 0 嚇到了。

這邊的 Fuse 設定,我們都不需要去更改設定,只需要看看 SPIEN有沒有被設定為 1 就行了。





那麼到底晶片的 Fuse 設定,應該是什麼樣的規定才是正確的?
有沒有一個表格可以查詢?
這問題我想應該很多初學者也很困擾,但別擔心,網頁上就能找到讓你搞懂 Fuse 的網站!

Embedded AVR Fuse Calculator:http://www.engbedded.com/fusecalc



進入網站後,可以看見中間有個選擇晶片的選項



我以 ATmega 328 晶片為例,選擇後會跳出以下畫面,
共計有三個大項目:

1. Feature  configuation

2. Manual fuse bits configuration

3. Current setting




這個網站所提供的 Fuse 與其他細節設定值,可以直接套用至燒錄器中的選項設定中,
因此萬一拿到一片新的 AVR  晶片不曉得要怎麼調整,可到這個網站來查詢一下。



選項4的按鈕 command 則是把一些功能選單隱藏起來,讓畫面更乾淨




綜合以上介紹後,對於 Progisp 是不是比較熟悉了?

其實若沒有特殊需求,需要特別設定,
在一開始打開 Progisp ,選擇好晶片,直接按下 Earse 和  Auto  就可以了。

不過 ATmega  2560 在這個燒錄器有個很妙的情況,
燒錄可以成功燒錄,但是在 Arduino  IDE 卻無法上傳 Sketch。

正常燒錄成功的 Arduino ,應該是可以透過 USB 或 ICSP 腳位(利用燒錄器)上傳程式,
不過 ATmega 2560 卻失敗了。



因此筆者在此強烈建議:

ATmega  168 、ATmega  328  可用 USBasp 燒錄,簡單又便宜,

ATmega 2560 則用 AVRISP  mkII ,可增加成功燒錄的機率。



燒錄器與 Arduion  Bootloader  系列文章,就在此告一個段落,
希望很快有新的研究可以分享給各位!

Have fun !


AVRISP mkII 與 AVR Studio 於 Arduino 2560 燒錄 Bootloader 與 Fuse 設定

Dear  all,
昨天那篇 USBasp 使用文章,是否讓各位有所幫助呢?

今天我們要講的部份是針對:  AVRISP  mkII  與  AVR  Studio  的使用設定

為什麼?
之前的文章不是已經教過怎麼安裝設定 AVRISP  mkII 的驅動程式,
而且還可以利用 Arduino  IDE  去燒錄更換新的 Bootloader ?


兩者不太一樣,之前的 AVRISP  mkII  的驅動程式是使用 Arduino  IDE 所提供的,
若要在 Arduino  IDE 底下使用 AVRISP  mkII 進行燒錄 Bootloader 或上傳 Sketch,
那就一定要使用 Arduino IDE  所提供的AVRISP  mkII  驅動程式。


不過若要使用  AVR   Studio  這套強大的編譯器去對 Atmega 2560 單晶片作更細微的 Fuse 設定,
那你非得要先移除原有 Arduino  IDE  所提供的驅動程式,再另行安裝。



以下是原本使用 Arduion  IDE 的驅動程式:


今天我們要更換成 AVR  Studio 所提供的版本,安裝後應如下圖:




請注意:   如果沒有移除原有驅動程式,就直接安裝新版本驅動程式將如下圖,
                  請記得移除 LibUSB-Win32 Devices




以上是驅動安裝成功與否的檢查畫面,需要兩個驅動程式都是在 Jungo 底下,
請自行留意是否正確。


======================================================================

讓我們開始進入正題,帶著各位一步一步安裝 AVR  Studio。

安裝前,請再確定一次你已經移除原有的 AVRISP   mkII 驅動程式,
因為先行移除,才不會造成後續安裝的困擾




在此我們示範的 AVR  Studio ,是  :  AVR  Studio  4 ,
官方網站目前提供的版本是最新的  :  AVR  Studio  6。


點選執行 AVR  Studio  4 後開啟畫面如下



點選: I   accept  the  terms  of  the  license  agreement,並選擇安裝位置




安裝驅動程式。若之前的 AVRISP  mkII  驅動程式你有移除,在此就可直接放心按 Next




確認並安裝




安裝完畢後,開啟 AVR  Studio  4





開啟  AVR   Studio  4 ,請於開啟檔案的詢問視窗點選:Cancle





在上方的  Toolbar  找到 AVR  icon 後點選,如下圖


選擇燒錄器型號,以及連線方式







接下來就是我們的重頭戲啦,請各位看官們留神了!


1.   首先選擇 AVR 單晶片型號





2.  燒錄 Bootloader

     請先按下 Erase  Device,清除 AVR  單晶片上的舊有資料。

     在 Flash 欄位選擇 Bootloader 來源位置,Bootloader 我們一樣選擇 Arduino IDE 提供的
     筆者的Arduino 資料夾解壓縮後的位置是:C:\ ,因此Bootloader 的位置是:

     C:\arduino-1.0.1\hardware\arduino\bootloaders\stk500v2\stk500boot_v2_mega2560.hex

     請以自己的 Arduino  資料夾位置為主。選擇後按下 Program。



3. 調整 Fuse 

    燒錄完 Bootloader 後,還要調整 Fuse 的部份。
    Fuse的調整可以讓 AVR 單晶片的每個腳位都能以正常的初始值進行工作。

    請注意: 畫面中有一個 SPIEN 欄位,他的灰色方塊    『不可以取消勾選 』
                因為若取消勾選,將保護模式,無法上傳程式與更新 Bootloader

上圖中有勾選的選項,我在下方列出:

BODLEVEL  : Brown-out detection at VCC=2.7V
SPIEN              :  勾選    (千萬要勾選)
BOOTSZ         :  Boot Flash size=4096 words start address=$1F000
BOOTRST      :  勾選
SUT_CKSEL  :  Ext. Crystal Osc. 8.0- MHz; Start-up time: 16K  CK + 65 ms


EXTENDED   :  0xFD
HIGH               :  0xD8
LOW                :  0xFF


以上資料確定無誤後,按下 Program  即可





4.  設定 LOCKBIT


在這個頁面中,只需要針對中間空白區域,寫著 LOCKBIT 中的值作修正。
預設值若是 0xFF,請直接修改欄位中的值為  0x0F 或 0xCF,並將下方的 Verify 選項取消。


  • 若輸入 0x0F,下方的 Verify 沒有取消的話,將會跳出警告視窗。當關閉警告視窗後,原本輸入 0x0F的值,會自動調整為  0xCF。




5.   設定自動燒錄

      如果從第 1 步驟到第 4 步驟,你都有按部就班,基本上第 5 步驟是不需要的。
      但若你很熟悉稍早那些設定後,若能在全部設定都設置好後 「 一鍵完成 」 ,
      這豈不是很棒?

      請按照下圖中的勾選設定,勾選完畢後,按下右下角的  Start,就完成全部的燒錄工作了!
   



    到這恭喜各位已經完成在 AVR   Studio  下針對 AVR 單晶片做好 Fuse 以及 LockBit 的設定,
    好好享受你的實驗與冒險!  Have   fun !



2012年11月1日 星期四

USBasp 安裝,並於 Arduino ATmega 168、Arduino ATmega 328 上傳 sketch

延續稍早所寫的:  Uploading  Sketch to Arduino ATmega 2560 via AVRISP mkII   一文

在上一篇文章裡頭所提到的 USBasp 燒錄器,雖然未能在 ATmega 2560 正常使用,
但若你手邊有 Arduino  Diecimila (ATmega 168) 、Duemilanove (ATmega 328),
就可以利用 USBasp 替這些版本的 Arduino 更換 Bootloader 和上傳 Sketch 。

下圖為 USBasp 外觀,這是從網拍購得,有些 USBasp 並沒有圖中的桃紅色外殼,
但不影響整體使用。價格大約在 NT $ 200 上下。




目標:

利用 USPasp  燒錄 Bootloader 與上傳 Sketch 至 Arduino Diecimila 、Duemilanove



整體工作步驟為:

安裝 USBasp 驅動程式  ->  開啟 Arduino  IDE  ->  設置燒錄設定  -> 
燒錄 Bootloader  ->  開啟範例程式  ->  燒錄範例程式



由於 USBasp  驅動本身似乎寫的不大好,因此在燒錄 Bootloader 與  Sketch 時,
都會出現警告,但基本上程式在 Arduino 還是運作良好,因此在此不詳述警告解決方法。

其實 USBasp 的警告問題,我也 Google 了很多文章,但基本上多數都是無解



  • 插上 USBasp ,隨即會跳出安裝驅動程式的畫面 


  • 至 C:\arduino-1.0.1\hardware\tools\avr\utils\libusb\bin



  • 開啟 Arduino  IDE ,挑選正確的 Arduino 版本與燒錄器



  • 燒錄 Bootloader 



               < 燒錄完畢後,狀態視窗會如上圖一樣出現警告,但不影響使用,直接忽略即可 >




燒錄範例程式:


開啟範例程式



請選擇 File -> Upload Using Programmer


             < 燒錄完畢後,狀態視窗會如上圖一樣出現警告,但不影響使用,直接忽略即可 >


燒錄過程中 RX、TX 的燈並不會閃爍,是因為經由 ICSP 腳位燒錄並未通過 USB 通訊晶片,因此RX、TX不會閃爍,請別誤以為損壞了。但靠近 Pin 13 腳位旁邊有一棵寫著 「L」 字樣的 LED,會在燒錄 Bootloader 與燒錄程式過程中不斷快速閃爍。

正常燒錄成功的話,應該可以看到 LED 不斷閃爍,到這裡恭喜你已經完成:

  • 將 USBasp 正確安裝驅動程式,並可以在 Arduino IDE 中正常使用
  • 使用 USBasp 燒錄更換 Arduino Diecimila、Duemilanove 的 Bootloader
  • 使用 USBasp 上傳 Sketch 至 Arduino


===============================================================================

這篇文章主要是為了說明買了 USBasp 的使用者,如何正確的安裝 USBasp 的驅動程式,
並可以利用 Arduino IDE 正確上傳 Bootloader 與 Sketch 到 Arduino 上。


這篇裡頭我們依舊先不談如何設定 AVR  單晶片裡頭的 Fuse ,
因為在 Arduino  IDE 中,他只會判讀使用 Arduino  IDE 資料夾本身所夾帶的 Driver,
即使你的 AVRISP  mkII 或  USBasp  是安裝了燒錄器官方所提供的 Driver,
Arduino  IDE 依舊無法正常讀取。


使用 USBasp 的好處如下:

  • 夠便宜! 一個從網拍購買,含運費大約兩百多元即可入手。
  • 可以針對小型的 Arduino 作 Bootloader 燒錄,並上傳 Sketch。
  • 若不需要 Bootloader 時,還可以完整利用 AVR 單晶片全部的記憶體空間,讓開發更有彈性!


之後的篇幅會在提及如何設定 AVR 單晶片的 Fuse 部份。
由於設定 Fuse 時,將會用到燒錄器官方所提供的編譯環境,因此驅動程式必須改灌回官方版本,
在此先暫不詳述。

祝各位實驗順利!  Have  fun !