1 瞭解Si1060是什麼
Si1060是以C8051F93爲內核的一款單片機,片上除了GPIO、UART、ADC等一些常規的片上資源之外還有一個最重要的4463射頻模塊。4463和51內核被封裝在一個芯片上,稱爲Si1060。
熟悉芯片最好的方法就是讀他的demo,在讀demo之前最好先大致看一下它的datasheet。每款芯片的datasheet至少都有幾百頁而且大部分都是英文全部讀完可能項目都到了交期。對於剛接觸Si1060的開發者我建議先大致瞭解這幾章就行了.
- 第1章: system Overview
- 第8章: memory Organization
- 第18章: Clocking Sources
- 第20章: Si106x/108x port Input/Output
- 第31章: Timers
2 環境安裝
需要安裝兩個工具 WDS3-Setup.exe 和 mcu_ide.exe,其中前者可以幫我們快速的建立一個si1060的工程,也可以利用這個工具創建adio的配置。mcu_ide.exe該工具是官方提供的開發工具,代碼的編譯調試都是使用這個工具完成的。默認安裝就行。
如果是默認安裝沒有修改安裝路徑的話,安裝完成之後在C盤會生成一個文件夾 C:\SiLabs\MCU,在C:\SiLabs\MCU\Examples這個文件夾裏面有大量的例子,這些例子都是一些外設的驅動代碼,這些代碼都是基於SI106x的開發板的demo,只要稍作修改就可以直接用於自己的工程。他們的開發板我也不知道在哪裏可以買得到,可能需要向總公司申請。
還有一個很重要的目錄,C:\Program Files (x86)\SiliconLabs\WDS3\DemoExample這裏面的例子都是用來調試4463模塊的。我們可以選擇其中的一個demo作爲我們的起始工程,具體選擇哪一個還要看具體的需求。
WDS打開是這樣,有三個功能 Radio Configuration Application 用來生成一個Radio配置文件或者生成一個完整的工程、Register Setting Panel用來設置寄存器(沒使用過)、Fimware upgrade用來升級固件
3 4463和內核的關係
4463和51內核在芯片內部通過SPI引腳連在一起,其中4463的引腳除了IRQ是可以由用戶選擇之外,其它的引腳(包括CLK、MOSI、MISO、NSEL等等)全部都是固定的。當IRQ引腳爲低電平則說明4463模塊接收到了數據,所以這個引腳很重要,需要在程序中根據自己的開發板做相應的配置。
SI1060芯片上的IRQ引腳實際上是4463的IRQ引腳,外部的電路需要將這個IRQ引腳和某一個GPIO連在一起,程序裏面通過讀取這個GPIO的狀態來判斷4463是否接收到了數據。
4 新建一個工程
4.1 工程配置
當然可以使用 Silicon Labs IDE新建工程,但是更快的方法是直接從C:\Program Files (x86)\SiliconLabs\WDS3\DemoExample目錄拿一個工程,在這個工程上進行修改。
比如使用Si446x_BidirectionalPacket,打開工程是這樣的
在編譯工程之前需要首先需要配置編譯工具,這裏需要你的電腦上安裝keilC51
- Project -> Tool Chain Integration -> Compiler
- Project -> Tool Chain Integration -> Linker
- Project -> Target Build Configuration -> Generation
4.2 編譯
4.2 調試
- 連接,Debug -> Connect
- 燒錄程序,Debug -> Download Object File… 或者直接點擊DL箭頭
- 正在燒錄
- 燒錄完成
程序最開始執行的代碼是一個STARTUP.A51,這裏面會做一些寄存器的初始化工作,初始化完成之後纔會進入到我們自己main函數。
當這個按鈕爲綠色表示當前的程序停在了某行代碼處,只有這個按鈕爲綠色的時候才能下斷點。
- 下斷點
當程序停在了某一行,在需要斷點的那一行右鍵 Insert/Remove Breakpoint
- 查看某個變量值
學會了調試,並且能看懂一個demo基本上就可以算是入門了。
5 提問
如果在開發的過程中遇到了一些難以解決的問題可以到這裏提,原廠的研發會回覆。