Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例...

13
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)

Transcript of Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例...

Page 1: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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)

Page 2: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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

Page 3: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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,已達省電之效)。

Page 4: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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"。

Page 5: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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")。

Page 6: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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 即可。

Page 7: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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 參數的設定方式請參閱上一章節。

Page 8: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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。

Page 9: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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。

Page 10: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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

Page 11: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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 設定休眠模式。

Page 12: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

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

Page 13: Cost Effective C Handbook - Holtek · 2018-07-17 · BCM-32F7611-G01開發工具應用範例 AN0479T V1.10 1 / 13 July 11, 2018 BCM-32F7611-G01 開發工具應用範例 文件編碼:AN0479T

BCM-32F7611-G01 開發工具應用範例

AN0479T V1.10 13 / 13 July 11, 2018

免責聲明

本網頁所載的所有資料、商標、圖片、連結及其他資料等 (以下簡稱「資料」),只供參考

之用,盛群半導體股份有限公司 (以下簡稱「本公司」) 將會隨時更改資料,並由本公司決

定而不作另行通知。雖然本公司已盡力確保本網頁的資料準確性,但本公司並不保證該等

資料均為準確無誤。本公司不會對任何錯誤或遺漏承擔責任。

本公司不會對任何人士使用本網頁而引致任何損害 (包括但不限於電腦病毒、系統固障、資

料損失) 承擔任何賠償。本網頁可能會連結至其他機構所提供的網頁,但這些網頁並不是由

本公司所控制。本公司不對這些網頁所顯示的內容作出任何保證或承擔任何責任。

責任限制

在任何情況下,本公司並不須就任何人由於直接或間接進入或使用本網站,並就此內容上

或任何產品、資訊或服務,而招致的任何損失或損害負任何責任。

管轄法律

本免責聲明受中華民國法律約束,並接受中華民國法院的管轄。

免責聲明更新

本公司保留隨時更新本免責聲明的權利,任何更改於本網站發佈時,立即生效。