cost effective c handbook - holtek · 2018-07-17 · bcm-32f7611-g01開發工具應用範例...
Post on 13-Mar-2020
11 Views
Preview:
TRANSCRIPT
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 1 / 13 July 11, 2018
BCM-32F7611-G01 開發工具應用範例
文件編碼:AN0479T
簡介
本文件是為了讓客戶迅速上手 BCM-32F7611-G01。內容包含如何將 Patch Code 放入,軟體應
該如何使用等。
第一部分:硬體架構。
第二部分:設定與操作。
第三部分:如何置換 Patch Code。
第四部分:Bluetooth Device Address。
第五部分:Demo Code 軟體架構。
第六部分:傳送/接收。
第七部分:休眠模式。
第八部分:注意事項。
BCM-32F7611-G01 (Demo Board)
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 2 / 13 July 11, 2018
硬體架構
1. BCM-32F7611-G01
2. 3 PIN for BLE Control DIP Switch
3. 3 KEY/3 LED DIP Switch
4. USB Bridge UART DIP Switch
5. KEY X 3/LED X3
6. Reset Button
7. BCM-32F7611-G01 Download PIN
8. I/O PIN
9. USB to UART Bridge IC (HT42B534)
10. POWER SUPPORT
1
8
4 9
7 10
6
3
2
5
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 3 / 13 July 11, 2018
設定與操作
3 Pin for BLE Control
在傳送接收時,有 3 Pin 很重要,分別是:nRST、EXTINT and WAKEUP;此 EVB 提供 PB4、
PB12 and PB9 I/O 控制,若不需要,請將對應的指撥開關"OFF"即可。
nRST Pin
使用 BC32F7611 操控前,需要先做硬體的 Reset,動作如下:
1. 將 nRST Pin 與 Power Down Pin:PDN(IC 內部使用 PB8 控制)腳位設定為 Output Low。
2. 先將 PDN 拉 High;後 Delay 100µs 將 BRES 拉 High
不建議使用硬體 Reset 電路,因為有可能導致 Reset 不完全而使 IC 操作上產生問題。
EXTINT Pin
當 BLE IC 有任何 Command or Event,也就是 BLE IC 有資料需要傳給主控 MCU,此時 EXTINT
PIN 即會拉 Low,為了通知主控 MCU 讀取資料;且等待 TX FIFO 為空,EXTINT PIN 會自動
拉 High。
WAKEUP Pin
首先要介紹 STATE PIN(IC 內部 PB5 控制)。就是所謂的 Chip State,可以透過 STATE Pin 瞭
解目前 BLE IC 是 Work Mode or Sleep Mode。
1. 喚醒 BLE IC 進入 Work Mode。若 WAKEUP Pin Keep High,BLE IC Always Work Mode。
2. 當主控 MCU 要發送一筆 Command 或 Data 時,需將 WAKEUP Pin 拉 High (請注意需要等
約 3ms 才可以傳輸;當傳送完畢時需將 WAKEUP Pin 拉 Low,已達省電之效)。
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 4 / 13 July 11, 2018
3 KEY/3 LED
此 EVB 提供 3 組 Key 與 3 組 LED;分別使用 PA0、PA1、PA2、PA3、PA4 and PA5 I/O 做控
制。若不需要請將對應的指撥開關"OFF"即可。
USB Bridge UART
此 EVB 可利用 USB Port(轉 UART)直接使用電腦的終端機軟體下達 Command 與接收 Event;
分別使用 PB1(UTXD) and PB0(URXD)。若不需要請將對應的指撥開關"OFF"即可。
Power Support
電源供應有兩種方式。
1. 使用 USB Port:此時請將 Jump 插入,將會提供 3.3V。
2. 外部供電:請將外部正 DC 電源(VINmax=3.6V)接到"VDD";外部 DC GND 電源接到
"GND"。
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 5 / 13 July 11, 2018
附上電路圖提供參考。
BCE-32F7611-G01 Schematic
如何置換 Patch Code
請使用 Tool "BLE Configuration Setting Tool" 設定您所需要的參數 (請參閱檔 "BLE
Configuration Setting User’s Guide")。
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 6 / 13 July 11, 2018
當您按下Generate Icon,您選擇儲存Bin檔位置也會產出BC76xx_Patch.c and BC76xx_Patch.h。
請將此兩檔案與 Demo Code (\Source) 中檔案置換。
並 ReBuild 即可。
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 7 / 13 July 11, 2018
Bluetooth Device Address
BC 32F7611 內部有設定 default Bluetooth Device Address 於 MCU Flash Register Address CIDR0
and CIDR1。
共分二個部分。
1. CIDR1 (4 Bytes):
High nibble 為 BLE Verification ID,若數值為 0xF0 0x5A,表示 default BDA 是合法可用的。
Low nibble 為 BDA 的 Bluetooth Device Address 最高 2 個 Bytes。
2. CIDR0 (4 Bytes):為 Bluetooth Device Address 較低 4 個 Bytes。
暫存器 偏移量 描述 複位值
FMC 基址 = 0x4008_0000
TADR 0x000 Flash 目標地址暫存器 0x0000_0000
WRDR 0x004 Flash 寫入數據暫存器 0x0000_0000
OCMR 0x00C Flash 操作命令暫存器 0x0000_0000
CIDR0 0x310 自定義 ID 暫存器 0 0xXXXX_XXXX
CIDR1 0x314 自定義 ID 暫存器 1 0xXXXX_XXXX
CIDR2 0x318 自定義 ID 暫存器 2 0xXXXX_XXXX
CIDR3 0x31C 自定義 ID 暫存器 3 0xXXXX_XXXX
Table1 FMC 的暫器列表
於 Demo Code 中會去判斷 BLE Verification ID 是否合法:
合法會直接使用 default BDA;否則將會使用 Patch Code 裡設定的 BDA (BC:20:18:01:10:
11)。
相關 Patch Code 參數的設定方式請參閱上一章節。
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 8 / 13 July 11, 2018
Demo Code 軟體系統架構
軟體系統架構分為三層:Physical Layer、Protocol Layer 與 Application Layer。
Code System Architecture
本章節會針對每個 Layer 的功能性以及程式做細部的說明。
Radio
Mode Control
Patch
Demo Code List
Physical Layer
撰寫軟/韌體就如同蓋樓房,底層寫的完善,就可以蓋得更高更穩固!首先就先以 SPI 介紹
起,然後在說明 UART、Timer、Library、Button、GPIO 的處理程式,最後再說明 Patch 的處
理程式。
1. SPI 處理程式
BC32F7611 內部的 MCU 與 RF 是透過 SPI Interface 做 Command/Event 的傳輸,所以可以
說是很重要的功能。就連 RF 初始化也是使用 SPI。
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 9 / 13 July 11, 2018
2. UART 處理程式
本開發工具包可由 HT42B534 透過 USB Port 連接電腦(Host),利用電腦的 COM Port Toolkit
監控 BC32F7611 的傳輸。
3. Timer 處理程式
BFTM0 Timer 是 1ms 中斷一次。
4. Library 處理程式
內容如下,為 BC32F7611 Official Library。
5. Button 處理程式
為處理 Button 的相關程式。
6. GPIO 處理程式
為設定 GPIO 相關的附程式。
7. Patch Code 處理程式
此處分兩個部分:
1. patchcode.c::負責將 Patch 依照規則順序的透過 SPI Interface 寫入 BC32F7611。
2. BC76xx_Patch.c:為 Tool "BLE Configuration Setting Tool" 產出的 Raw Data。
Protocol Layer
主要分兩個部分:1. Radio、2. Mode Control。
1. Radio 處理程式(bc76xx.c/bleprocess.c)
主要負責 BLE Process,包含 BLE Power Up、BLE FW Download、BLE Transceiver。
2. Mode Control 處理程式(systemstate.c)
主要負責 MCU 與 BLE 的 Power Mode Control。
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 10 / 13 July 11, 2018
Application Layer
此 Layer 可以說是最接近 End User,如何讓使用者感覺用起來很順手是非常重要的。main.c
主要分為四的部分:1.初始化、2.Timer 應用、3.BLE process/mode control、4.使用者應用。
1
2
34
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 11 / 13 July 11, 2018
傳送/接收
使用 bc76xx.c 中的 Function 可以對 BC32F7611 下達傳送 Command/接收 Event,以下為 Function
List。
函數名稱 說明
BC76xx_send_hci_cmd_pkg 下達 HCI command
BC76xx_send_ctrl_cmd_pkg 下達 ACI command
BC76xx_rcv_packet_parser 讀取 ACI packet
BC76xxSPI_read_register 讀取 SPI Register
BC76xxSPI_write_register 寫入 SPI Register
BC76xxSPI_read_fifo 讀取 SPI FIFO
BC76xxSPI_write_fifo 寫入 SPI FIFO
BC76xx_send_data_pkg 下達 Payload Packet Command
BC76xx_send_read_phy_pkg 讀取 physical address command
BC76xx_send_write_phy_pkg 寫入 physical address command
Transceiver Function List
Example:
配對成功後,當 Demo Board Key 被按下時,填好需要傳送給 Host 的資料後,呼叫
BC76xx_send_data_pkg 把資料傳出去。
當EXTINT有動作時(BC32F7611收到資料),請呼叫BC76xx_rcv_packet_parser把資料讀下來。
休眠模式
分為 MCU 與 BLE 的休眠模式。請於 defineGlobal.h #50 設定休眠模式。
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 12 / 13 July 11, 2018
參數名稱 說明
blePWR =_BLE_PWR_NONE:BLE 進入 Normal Mode
=_BLE_PWR_Sleep:BLE 進入 Sleep Mode
=_BLE_PWR_PD_:BLE 進入 Power down Mode
_CM0_PWR =_CM0_PWR_NONE_:MCU 進入 Normal Mode
=_CM0_PWR_DEEPSLEEP_1_:MCU 進入 Deep Sleep1
=_CM0_PWR_DEEPSLEEP_2_:MCU 進入 Deep Sleep2
Mode Control Parameter
請注意!當 MCU 進入 DeepSleep2 時,只有 PB12 可以將其喚醒!
當 BLE 進入 Power Down Mode 時,EXTINT 腳位並不會因為收到資料而動作!
注意事項
1. 本 Demo Code 是使用 uVision V4.7 版本撰寫,並搭配 BCE-32F7611-G01(Demo Board)。
2. 若要重新設定不同的休眠模式,但是發生 Demo Code 無法燒錄狀況,此時是因為先前設
定的休眠模式所耗的電流過低,導致 e-Link32 無法燒錄。此時請按下 Reset Pin 並在 500ms
內再行燒錄即可。
結論
本文介紹了 BCE-32F7611-G01 Demo Board 功能,後續使用者於程式編輯上亦可以透過盛通
公司取得簡易的範例程式。
參考資料
參考文件 BC32F7611 DataSheet。
如需進一步瞭解,敬請瀏覽 Holtek 官方網站 http://www.holtek.com。
版本及修改資訊
Date 日期 Author 作者 Issue 發行、修訂說明
2018.07.11 徐鴻文(Harry Hsu) V1.10。更新硬體架構圖。
2018.01.12 徐鴻文(Harry Hsu) V1.00
BCM-32F7611-G01 開發工具應用範例
AN0479T V1.10 13 / 13 July 11, 2018
免責聲明
本網頁所載的所有資料、商標、圖片、連結及其他資料等 (以下簡稱「資料」),只供參考
之用,盛群半導體股份有限公司 (以下簡稱「本公司」) 將會隨時更改資料,並由本公司決
定而不作另行通知。雖然本公司已盡力確保本網頁的資料準確性,但本公司並不保證該等
資料均為準確無誤。本公司不會對任何錯誤或遺漏承擔責任。
本公司不會對任何人士使用本網頁而引致任何損害 (包括但不限於電腦病毒、系統固障、資
料損失) 承擔任何賠償。本網頁可能會連結至其他機構所提供的網頁,但這些網頁並不是由
本公司所控制。本公司不對這些網頁所顯示的內容作出任何保證或承擔任何責任。
責任限制
在任何情況下,本公司並不須就任何人由於直接或間接進入或使用本網站,並就此內容上
或任何產品、資訊或服務,而招致的任何損失或損害負任何責任。
管轄法律
本免責聲明受中華民國法律約束,並接受中華民國法院的管轄。
免責聲明更新
本公司保留隨時更新本免責聲明的權利,任何更改於本網站發佈時,立即生效。
top related