如何自製PSJB工具(三) - 改機
By Zanna
at 2010-10-04T10:56
at 2010-10-04T10:56
Table of Contents
自己製作這個電路一個禮拜,之前都是拿伸手牌韌體,今天也終於遇到了要自己
編韌體的狀況^^b ,幸好之前都已經把CCS C Compiler等一堆機絲準備好了,所
以現在只要PSGrooPIC 的原作者放出原始碼,就可以自己編韌體了:)
拿剛出爐的PSGrooPIC v1.6韌體為例,要做的事情就是把CCS C Compiler準備好
。然後拿出原始碼,因為我的電路有 Bootloader, BTL模組,於是就選用帶有此
一功能的原始碼作為範例。
原始碼打開之後,我們只要看main.c這個檔案就好,其他的暫時不相關。
先看第15列(Line 15) :
#fuses HSPLL,NOWDT,NOPROTECT,NODEBUG,NOBROWNOUT,USBDIV,PLL2,CPUDIV1,
VREGEN,PUT,NOMCLR,NOLVP //應該是一列的,但太長了
PLL2是跟我們振盪器頻率相關的參數,可以設為PLL1 ~ PLL6 。PIC 18F2550 以
及其家族內部的作法是藉由除頻的方式,先把外部振盪輸入進行降頻,得到4MHz
之的基準頻率後再升頻12倍,產生USB 2.0 介面需要的48 MHz同步頻率。
今天假若我使用8MHz作為外部振盪時,就要除頻兩倍,所以設定PLL2;使用4MHz
時,需要除頻一倍,因此設為PLL1就好;要是使用最高支援的24 MHz就要設PLL6
。在此稍微表列一下:
外部振盪器頻率(MHz) 除頻參數
==============================
4 PLL1
8 PLL2
12 PLL3
16 PLL4
20 PLL5
24 PLL6
==============================
接著看第20~22列:
#define FIRMWARE_3_41
//#define FIRMWARE_3_15
//#define FIRMWARE_3_01
這裡就是韌體相容對應,要編譯對應3.15版韌體的時候就把第20行加上註解符號
,然後移除第21行的註解符號。
最後看第24列:
#define LEDR PIN_B4
如果 LED指示燈腳位不在 RB4上的話,請參照 datasheet進行修改,那一支腳叫
什麼名字可以去查看 18F2550.h這個檔案。在此表列一下:
LED指示燈腳位 腳位參數
========================
RB1(22) PIN_B1
RB4(25) PIN_B4
RB7(28) PIN_B7
========================
都改好之後就按下Compile 按鈕編譯,然後利用Microchip Bootloader USB HID
v2.6b從電腦載入編好的.hex檔案了。
--
○ ____ _ _ _ _ ____ _ _ ____ _____ ____
。 ★(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
o _)(_ ) ( \ / )__) ) ( )( )(_)( ) / ● ‧
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) ★
o
--
編韌體的狀況^^b ,幸好之前都已經把CCS C Compiler等一堆機絲準備好了,所
以現在只要PSGrooPIC 的原作者放出原始碼,就可以自己編韌體了:)
拿剛出爐的PSGrooPIC v1.6韌體為例,要做的事情就是把CCS C Compiler準備好
。然後拿出原始碼,因為我的電路有 Bootloader, BTL模組,於是就選用帶有此
一功能的原始碼作為範例。
原始碼打開之後,我們只要看main.c這個檔案就好,其他的暫時不相關。
先看第15列(Line 15) :
#fuses HSPLL,NOWDT,NOPROTECT,NODEBUG,NOBROWNOUT,USBDIV,PLL2,CPUDIV1,
VREGEN,PUT,NOMCLR,NOLVP //應該是一列的,但太長了
PLL2是跟我們振盪器頻率相關的參數,可以設為PLL1 ~ PLL6 。PIC 18F2550 以
及其家族內部的作法是藉由除頻的方式,先把外部振盪輸入進行降頻,得到4MHz
之的基準頻率後再升頻12倍,產生USB 2.0 介面需要的48 MHz同步頻率。
今天假若我使用8MHz作為外部振盪時,就要除頻兩倍,所以設定PLL2;使用4MHz
時,需要除頻一倍,因此設為PLL1就好;要是使用最高支援的24 MHz就要設PLL6
。在此稍微表列一下:
外部振盪器頻率(MHz) 除頻參數
==============================
4 PLL1
8 PLL2
12 PLL3
16 PLL4
20 PLL5
24 PLL6
==============================
接著看第20~22列:
#define FIRMWARE_3_41
//#define FIRMWARE_3_15
//#define FIRMWARE_3_01
這裡就是韌體相容對應,要編譯對應3.15版韌體的時候就把第20行加上註解符號
,然後移除第21行的註解符號。
最後看第24列:
#define LEDR PIN_B4
如果 LED指示燈腳位不在 RB4上的話,請參照 datasheet進行修改,那一支腳叫
什麼名字可以去查看 18F2550.h這個檔案。在此表列一下:
LED指示燈腳位 腳位參數
========================
RB1(22) PIN_B1
RB4(25) PIN_B4
RB7(28) PIN_B7
========================
都改好之後就按下Compile 按鈕編譯,然後利用Microchip Bootloader USB HID
v2.6b從電腦載入編好的.hex檔案了。
--
○ ____ _ _ _ _ ____ _ _ ____ _____ ____
。 ★(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
o _)(_ ) ( \ / )__) ) ( )( )(_)( ) / ● ‧
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) ★
o
--
Tags:
改機
All Comments
By Rae
at 2010-10-06T17:29
at 2010-10-06T17:29
By Hamiltion
at 2010-10-07T02:06
at 2010-10-07T02:06
By Rosalind
at 2010-10-08T00:25
at 2010-10-08T00:25
By Suhail Hany
at 2010-10-08T21:07
at 2010-10-08T21:07
By Olivia
at 2010-10-11T01:18
at 2010-10-11T01:18
Related Posts
DSONE無法使用
By Lauren
at 2010-10-04T10:26
at 2010-10-04T10:26
PSGrooPIC v1.6
By Anonymous
at 2010-10-04T10:10
at 2010-10-04T10:10
Open Backup Manager v1.14
By Brianna
at 2010-10-04T09:56
at 2010-10-04T09:56
關於韌體
By Lauren
at 2010-10-03T23:15
at 2010-10-03T23:15
關於韌體
By Valerie
at 2010-10-03T22:12
at 2010-10-03T22:12