一、簡介
TEA5767是由菲利普公司推出的一款低功耗立體聲收音機(jī)接收器芯片。頻率范圍從76-108MHz自動(dòng)數(shù)字調(diào)諧。高靈敏度,高穩(wěn)定性,低噪音,收音模塊。一片低功耗電調(diào)諧調(diào)頻立體聲收音機(jī)電路,其內(nèi)部集成了中頻選頻和解調(diào)網(wǎng)絡(luò),可以做到完全免調(diào)。
電源 5V
I2C 總線通訊
可以使用軟件進(jìn)行靜音和消除噪音
二、硬件連接
功能口 | 引腳 |
---|---|
SCL | PB.6 |
SDA | PB.5 |
三、添加I2C驅(qū)動(dòng)
查看 STM32F103學(xué)習(xí)筆記(1)——FreeRTOS下模擬I2C
四、移植文件
注意:以下出現(xiàn)缺失common.h文件錯(cuò)誤,去除即可。uint8改為uint8_t或unsigned char或自己宏定義
鏈接:https://pan.baidu.com/s/1KlliOYSGgdlYcb5J52Twrw 提取碼:xp0z
將 board_i2c.c、board_i2c.h、board_tea5767.c 、 board_tea5767.h 四個(gè)文件加入到工程
4.1 board_tea5767.c
/*********************************************************************
* INCLUDES
*/
#include 'stdlib.h'
#include 'stm32f10x.h'
#include 'board_i2c.h'
#include 'board_tea5767.h'
#include 'common.h'
/*********************************************************************
* GLOBAL VARIABLES
*/
unsigned long g_frequency = TEA5767_MIN_KHZ;
/*********************************************************************
* LOCAL VARIABLES
*/
static uint8 s_radioWriteData[5] = {0x31,0xA0,0x20,0x11,0x00}; // 要寫入TEA5767的數(shù)據(jù),默認(rèn)存臺(tái)的PLL,104.3MHz
static uint8 s_radioReadData[5] = {0}; // TEA5767讀出的狀態(tài)
static uint32 s_pll = 0;
/*********************************************************************
* PUBLIC FUNCTIONS
*/
/**
@brief 向TEA5767寫入5個(gè)字節(jié)數(shù)據(jù)
@param 無
@return 無
*/
void TEA5767_Write(void)
{
uint8 i;
IIC_Start(); // 發(fā)送起始信號(hào)
IIC_SendByte(TEA5767_ADDR_W); // TEA5767寫地址
IIC_WaitAck(); // 等待應(yīng)答
for(i = 0; i < 5; i++)
{
IIC_SendByte(s_radioWriteData[i]); // 連續(xù)寫入5個(gè)字節(jié)數(shù)據(jù)
IIC_Ack(); // 發(fā)送應(yīng)答
}
IIC_Stop(); // 發(fā)送停止信號(hào)
}
/**
@brief 讀TEA5767狀態(tài)
@param 無
@return 無
*/
void TEA5767_Read(void)
{
uint8 i;
uint8 tempLow;
uint8 tempHigh;
s_pll = 0;
IIC_Start();
IIC_SendByte(TEA5767_ADDR_R); // TEA5767讀地址
IIC_WaitAck();
for(i = 0; i < 5; i++) // 讀取5個(gè)字節(jié)數(shù)據(jù)
{
s_radioReadData[i] = IIC_ReadByte(); // 讀取數(shù)據(jù)后,發(fā)送應(yīng)答
}
IIC_Stop();
tempLow = s_radioReadData[1]; // 得到s_pll低8位
tempHigh = s_radioReadData[0]; // 得到s_pll高6位
tempHigh &= 0x3f;
s_pll = tempHigh * 256 + tempLow; // PLL值
}
/**
@brief 由頻率計(jì)算PLL
@param 無
@return 無
*/
void TEA5767_GetPLL(void)
{
uint8 hlsi;
hlsi = s_radioWriteData[2] & 0x10; // HLSI位
if(hlsi)
{
s_pll = (uint32)((float)((g_frequency+225)*4)/(float)32.768); // 頻率單位:k
}
else
{
s_pll = (uint32)((float)((g_frequency-225)*4)/(float)32.768); // 頻率單位:k
}
}
/**
@brief 設(shè)置頻率
@param frequency -[in] 頻率,單位:KHz
@return 無
*/
void TEA5767_SetFrequency(uint32 frequency)
{
g_frequency = frequency;
TEA5767_GetPLL();
s_radioWriteData[0] = s_pll / 256;
s_radioWriteData[1] = s_pll % 256;
s_radioWriteData[2] = 0x20;
s_radioWriteData[3] = 0x11;
s_radioWriteData[4] = 0x00;
TEA5767_Write();
}
/**
@brief 由PLL計(jì)算頻率
@param 無
@return 無
*/
uint32 TEA5767_GetFrequency(void)
{
uint8 hlsi;
uint32 pll = 0;
pll = s_pll;
hlsi = s_radioWriteData[2] & 0x10;
if(hlsi)
{
g_frequency = (unsigned long)((float)(pll)*(float)8.192-225); // 頻率單位:KHz
}
else
{
g_frequency = (unsigned long)((float)(pll)*(float)8.192+225); // 頻率單位:KHz
}
return g_frequency;
}
/**
@brief 手動(dòng)搜索電臺(tái),不用考慮TEA5767用于搜臺(tái)的相關(guān)位:SM,SUD
@param mode -[in] 搜索方式,mode=1,向上搜索,頻率值+0.1MHz;mode=0,向下搜索,頻率值-0.1MHz
@return 無
*/
void TEA5767_Search(uint8 mode)
{
TEA5767_Read(); // 讀取當(dāng)前頻率值
if(mode) // 向上搜索
{
g_frequency += 100;
if(g_frequency > TEA5767_MAX_KHZ) // 頻率達(dá)到最大值
{
g_frequency = TEA5767_MIN_KHZ;
}
}
else
{
g_frequency -= 100;
if(g_frequency < TEA5767_MIN_KHZ)
{
g_frequency = TEA5767_MAX_KHZ;
}
}
TEA5767_GetPLL(); // 計(jì)算PLL值
s_radioWriteData[0] = s_pll / 256;
s_radioWriteData[1] = s_pll % 256;
s_radioWriteData[2] = 0x20;
s_radioWriteData[3] = 0x11;
s_radioWriteData[4] = 0x00;
TEA5767_Write();
TEA5767_Read();
if(s_radioReadData[0] & 0x80) // 搜臺(tái)成功,RF=1,可保存其頻率值待用
{
printf(' frequency=%dn', (int)g_frequency);
}
}
/**
@brief 自動(dòng)搜索電臺(tái)
@param mode -[in] 搜索方式,mode=1,頻率增加搜臺(tái),頻率值+0.1MHz;mode=0,頻率減小搜臺(tái)
@return 無
*/
void TEA5767_AutoSearch(uint8 mode)
{
uint8 radioRf = 0; // 1=發(fā)現(xiàn)一個(gè)電臺(tái),0=未找到電臺(tái)
uint8 radioIf = 0; // 中頻計(jì)數(shù)結(jié)果
uint8 radioLev = 0; // 信號(hào)電平ADC輸出
// 直到搜臺(tái)成功,RF=1,0x31 { if(mode) // 頻率增加搜臺(tái) { s_radioWriteData[2] = 0xC0; // SUD=1,SSLadc=7,HLSI=0 g_frequency += 100; if(g_frequency > TEA5767_MAX_KHZ) // 頻率達(dá)到最大值
上一篇:STM32F103學(xué)習(xí)筆記(3)——讀寫內(nèi)部Flash
下一篇:STM32F103學(xué)習(xí)筆記(1)——FreeRTOS下模擬I2C
推薦閱讀最新更新時(shí)間:2025-06-17 12:39




設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- #第八屆立創(chuàng)電賽#語音時(shí)鐘
- 使用 Analog Devices 的 ADP2311 的參考設(shè)計(jì)
- AM2S-0503SH30Z 3.3V 2瓦直流轉(zhuǎn)直流轉(zhuǎn)換器的典型應(yīng)用
- 用電設(shè)備智能監(jiān)控系統(tǒng)畢設(shè)
- 使用 ON Semiconductor 的 FAN7171_F085 的參考設(shè)計(jì)
- LT3460EDC-1 5V 至 36V 升壓轉(zhuǎn)換器的典型應(yīng)用電路
- OM13560: PTN3356評(píng)估板
- NCP300LSN20T1 2V 窗口電壓檢測器的典型應(yīng)用
- Recoil 電機(jī)控制器 G431 DRV8350RS
- 【訓(xùn)練營】【物聯(lián)網(wǎng)實(shí)戰(zhàn)】-智能RGB燈-699720A
- "智能汽車芯片大戰(zhàn)升級(jí):高通最新方案為何獲中國車企追捧?
- 電壓精度0.5% @25°C!思瑞浦發(fā)布全新車規(guī)并聯(lián)基準(zhǔn)芯片TPR43xQ系列產(chǎn)品
- AI技術(shù)在方便面生產(chǎn)質(zhì)量監(jiān)控中的應(yīng)用
- 潤石科技推出RS3215-Q1系列低壓差線性穩(wěn)壓器
- CANape 23開啟智能測試新時(shí)代(下)
- 軟件定義汽車電源管理設(shè)計(jì):NXP的PMIC選型攻略解析
- 深度測評(píng)時(shí)空壺X1同聲傳譯器:全球最先進(jìn)AI同傳設(shè)備的非凡實(shí)力
- 作為領(lǐng)先的垂直整合制造商(IDM),英飛凌在 300mm氮化鎵生產(chǎn)路線圖方面取得突破
- 鐵威馬F6-424 Max:六盤位擴(kuò)容+國產(chǎn)系統(tǒng)兼容,小白也能玩轉(zhuǎn)NAS
- 開關(guān)電源給鉛酸電池恒流恒壓充電的電流跳動(dòng)問題解析
- 進(jìn)出地庫無需司機(jī)!百度自動(dòng)泊車方案宣布年內(nèi)量產(chǎn)落地:方便到家
- ABB在京設(shè)立首個(gè)智慧建筑客戶體驗(yàn)中心,慶祝低壓北京工廠25周年
- 松湖煙雨話創(chuàng)新,灣區(qū)機(jī)器人與新工科教育迎發(fā)展新機(jī)遇
- 技術(shù)文章—5G SA和NSA到底有啥區(qū)別?
- DeepNude現(xiàn)在火了,看看一鍵脫衣AI原理的秘密
- 士蘭微:2018年第一次臨時(shí)股東大會(huì)決議公告
- 英特爾CES發(fā)布自駕車進(jìn)展 盼吸引更多合作伙伴
- 高通提供平臺(tái)相挺 Cortana打入智能音響增添新管道
- 智能語音介面太旺 音效、無線連接芯片急升級(jí)
- AMD推2018年高速處理器競逐市場大餅