Amiccom RF IC GIO1/GIO2/CKO 介紹&使用(以7196為例)
本篇介紹Amiccom RF IC GIO1/GIO2/CKO pin如何使用
Amiccom 絕大部分的RF IC都會有GIO1/GIO2/CKO這3支,我們稱之為RF IC的Output debug pin,它是支多功能復用的Pin,可以用來觀察RF IC當前狀態使用。
少部分RF IC 只有GIO1/CKO(ex:A7169),需看當下使用的RF IC 手冊 。
可以根據每顆RF IC的使用手冊找到這3支PIN的暫存器位置,以A7196為例,GIO1的暫存器=0Bh
我們可以調整GIO1S[3:0]數值,改變GIO1 模式(預設為0000),WTR表示用來觀察TX/RX是否成功啟動 或 結束
用戶可以自行修改想測試的狀態ex:
[0001] =TX mode時為檢測ID CODE是否發送完成 ;RX Mode時為檢測是否成功收下ID Code
[0010] =TX mode時為檢測 Tx調變是否成功啟動 ;RX Mode時為檢測是否檢測到相同頻率載波
[0011] =檢測FIFO Mode前4Byte ID(SID1)是否正確或在Direct mode時檢測前導碼是否正確
[0110] =使用GIO1 Pin 為 4線SPI的SDO Pin,原先RF IC的SDIO則為SDI Pin
[0111][1000][1001]=Direct mode時的data 輸入/輸出Pin
[1010]=Rx Standby pin用來控制LNA使用的參考Pin
[1101]=FIFO extension(詳細FIFO extension介紹可以參考FIFO Extension介紹這篇文章)
[1110]=啟動Auto Resend時才會用到
[1111]=FIFO TX data 輸出,可以使用此pin輸出前導碼+ID+Payload資料
以上都是可以自行修改去觀察RF IC當下狀態
GIO2也是相同概念,可以調整GIO2S[3:0]數值,來決定想觀察的RF 狀態
比較不同地方在於GIO2多了
[1100]=BDF : Low Battery Detection Flag,這需要根據每顆IC手冊上定義的為主,並不是每顆IC都相同
CKO為RF IC輸出的Clock的依據,注意這邊是RF IC Output,一樣可以修改CKOS[3:0],來決定想輸出的Clock
經常使用的是[0000],[0001]用來觀察TX or Rx時的DataRate Clock
以上就是介紹Amiccom RF IC內建3支可以自由使用的Debug output pin
底下使用Ref代碼做解說:
Tx端:當mcu對A7196下TX命令後,GIO1(WTR mode)會自動拉HIGH,此時會使用while(GIO1)等待TX完成後GIO1拉Low,代碼才會繼續往下執行
A7196_WriteFIFO(); //write data to tx fifo StrobeCmd(CMD_TX); //entry tx & transmit while(GIO1); //wait transmit completed
Rx端:當mcu對A7196下RX命令後,GIO1(WTR mode)會自動拉HIGH,此時會使用while(GIO1)等待RX完成後GIO1拉Low,代碼才會繼續往下執行
StrobeCmd(CMD_RX); while(GIO1); //wait receive completed RxPacket();