QN8035 FM收音機芯片 驅動程序

QN8035介紹

發射頻率:60MHz~108MHz
供電電壓:2.7~5.0V
通訊接口:IIC

芯片引腳

在這裏插入圖片描述在這裏插入圖片描述

IIC通訊時序

在這裏插入圖片描述

IIC 設備地址,寫:0x20 讀:0x21,讀寫方法和AT24C02相同,

寄存器設置

時鐘輸入方式

REG 01H[7],
1:數字信號方波輸入,
0:正弦波輸入
在這裏插入圖片描述

頻道設置

REG 0AH[1:0] CH的高2bit
REG 07H[7:0] CH 的第8bit
FM頻道=(60+CH*0.05)MHz
例如計算105.8MHz
CH=(105.8-60)*20=9160(23C8H)

XTAL設置

在這裏插入圖片描述
REG 15H[7:0] XTAL_DIV[10:0]的低8bit
REG 16H[2:0] XTAL_DIV[10:0]的高3bit
round()是四捨五入的意思

PLL設置

在這裏插入圖片描述
REG 16H[7:3] PLL_DLT[12:0]的低5bit
REG 17H[7:0] PLL_DLT[12:0]的高8bit

晶振參照表

我這裏計算了幾個常見晶振對應是數值

頻率 6MHz 12MHz 24MHz 11.0592MHz 22.1184MHz
XTAL_DIV[10:0] B7 16E 2DC 151 2A3
PLL_DLT[12:0] A80 A80 A80 8ED B81

部分程序

#define QN_8035 0x20
#define DEFAULT_CHANNEL	 1000 //例如105.8MHz  表示爲1058


bit QN8035_Init()
{
	delay10ms();
	//復位
	if(IIC_Write_Byte(QN_8035,0x00,0x80))return 1;
	delay10ms();
	//外部時鐘
	if(IIC_Write_Byte(QN_8035,0x01,0x00))return 1;
	//分頻,倍頻						//24MHz
	if(IIC_Write_Byte(QN_8035,0x15,0xDC))return 1;
	delay10ms();
	if(IIC_Write_Byte(QN_8035,0x16,0x02))return 1;
	delay10ms();
	if(IIC_Write_Byte(QN_8035,0x17,0x54))return 1;
  	//設置頻道
  	if(setChannel(DEFAULT_CHANNEL))return 1;	
	//關閉自動搜臺 開啓收音機
	if(IIC_Write_Byte(QN_8035,0x00,0x11))return 1;
	return 0;
}

數據手冊鏈接:QN8035

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章