最近做项目用到了TEA5767这个收音机芯片。TEA5767收音机芯片没有寄存器,只有两个地址,一个是读地址(TEA5767ADDR_R 0xc1),另一个是写地址(TEA5767ADDR_W 0xc0)用来控制读写芯片,读写芯片所用的协议就是IIC协议(见IIC例程)。他的数据格式如下。



TEA5767手动调频:
SM位要为0:手动调频,然后进行频率的加和减。进行频率值得步进。
TEA5767自动调频:
对于自动调频TEA5767的SM位要置位为1,利用SUD位进行控制;RF信号的ADC输出以及IF6-0位来判断。但是我直接用的是频率自动步进(SM=0)然后判断RF的ADC强度来确定是否搜到台,发现效果也挺好的,就是有一些噪音,可能是板子的设计有一些问题。直接上代码。

int main(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init();
LED_Init();    KEY_Init();OLED_Init();IIC_Init();PAM8610_Init();  //amplifier TDA7440_Write();  //shift chipFrequency_Write= 93600;
Radio_Set_Frequency();Read_TEA5767();Radio_Frequency_Display();while(1){Key_Search();Display_Power_mode();}
}
void Write_TEA5767()
{unsigned char i=0;IIC_Start_TEA();IIC_Send_Byte_TEA(W_TEA5767);   if(!IIC_Wait_Ack_TEA()){temp8=1;for(i=0;i<5;i++){IIC_Send_Byte_TEA(Radio_Write_Buf[i]);temp9++;if(temp9>100){temp9=100;}if(IIC_Wait_Ack_TEA())    {temp10=1;break;}}}else {  temp7=1;}IIC_Stop_TEA();
}
nsigned char temp11=0;
void Read_TEA5767()
{unsigned char i=0;IIC_Start_TEA();IIC_Send_Byte_TEA(0xc1);if (!IIC_Wait_Ack_TEA())                                        //chip addr of read data {temp11=1;for (i=0;i<5;i++){Radio_Read_Buf[i] =(i==4)? IIC_Read_Byte_TEA(0):IIC_Read_Byte_TEA(1);}IIC_Stop_TEA();}else  {IIC_Stop_TEA();}pll=(Radio_Read_Buf[0]&0x3f)*256+Radio_Read_Buf[1]+1;     if(Radio_Write_Buf[2]&0x10)    {Frequency_Read=pll*8192-225000;   }else{Frequency_Read=pll*8192+225000;  }}
void Radio_Manual_Search()
{if(Search_Mode_Flag)  //Search_Mode_FlagÊÇÅжÏËÑË÷ƵµÀʱÊÇÏòÉϼӻ¹ÊǼõÉÙƵÂÊ{Frequency_Write+=100;if(Frequency_Write>Max_frequency)Frequency_Write=Max_frequency;}else{Frequency_Write-=100;if(Frequency_Write<Min_frequency)Frequency_Write=Min_frequency;}   Radio_Set_Frequency();Manual_Search_Flag=0;
}
void Key_Search()
{flag=KEY_Scan(0);if(flag==1)  {OLED_Clear();Search_Mode_Flag=1;  //°´Ï°´¼ü1ƵÂʼÓdir=1;Auto_Search_Flag=1;Manual_Search_Flag=1;}if(flag==2){OLED_Clear();Search_Mode_Flag=0;//°´Ï°´¼ü2ƵÂʼõdir=0;Auto_Search_Flag=1;Manual_Search_Flag=1;}if(flag==3)   // volume increase{OLED_Clear();count--;if(TDA7440_Write_Buf[0]==0x03)  //FM mode {if(count<=0){count=0;}if(count>=13){count=13;}}if(TDA7440_Write_Buf[0]==0x02) // bluetooth mode{if(count<=6){count=6;}if(count>=13){count=13;}}}if(flag==4)   // volume decrease{OLED_Clear();count++;if(TDA7440_Write_Buf[0]==0x03)  //FM mode {if(count<=0){count=0;}if(count>=13){count=13;}}if(TDA7440_Write_Buf[0]==0x02) // bluetooth mode{if(count<=6){count=6;}if(count>=13){count=13;}}}if(flag==5)   //mode shift{ OLED_Clear();if(TDA7440_Write_Buf[0]==0x02){TDA7440_Write_Buf[0]=0x03;if(count<=0){count=0;}if(count>=13){count=13;}}else if(TDA7440_Write_Buf[0]==0x03){TDA7440_Write_Buf[0]=0x02;if(count<=6){count=6;}if(count>=13){count=13;}}}if(flag==6){OLED_Clear();if(Manual_Auto==1){Manual_Auto=0;}else if(Manual_Auto==0){Manual_Auto=1;}}TDA7440_Write_Buf[2]=Volume_temp[count];TDA7440_Write();if(Manual_Search_Flag==1&&Manual_Auto==0){Radio_Manual_Search();}if(Auto_Search_Flag==1&&Manual_Auto==1){Radio_Search();}//×Ô¶¯µ÷Ƶ }
博客代码不太好复制,完整的代码在附件中,不对的地方请批评指正。

TEA5767芯片使用相关推荐

  1. 嵌入式设计 | 基于51单片机的TEA5767 FM收音机

    我们现在想要实现,51单片机控制TEA5767收音模块,自动搜台,功放发声,并在1602液晶上面显示 还是那句话,要学会看芯片手册.这个项目无非通过就是I²C写数据输出,喇叭发声,然后把变化的数据显示 ...

  2. 关于TEA5767收音机模块以及TEA5767寄存器介绍。

    首先:TEA5767芯片,基本资料 ①高灵敏.低噪声高频放大器. ②收音频率:87.6MHz~108MHz,(支持频率范围在76MHz~87.5MHz 之间的校园收音频道),③LC 调谐振荡器使成本更 ...

  3. 使用TEA5767和stm32制作一台数字FM收音机

    本节我们来使用stm32控制一款集成收音机芯片TEA5767,来制作一台FM收音机. TEA5767是一款低功耗立体声收音IC,接收频率76MHz-108MHz(适应日本/美国/欧洲各FM频段选择)并 ...

  4. AD入门学习—元件库(原理图库)的创建

    目录 1.1 电阻类.电容类.电感类元件创建 1.2 LED灯.按键类元件创建 1.3 IC芯片类元件创建 学习目录 创建一个PCB工程,原理图库,原理图. 1.1 电阻类.电容类.电感类元件创建 左 ...

  5. 使用树莓派打造一台收音机

    一.材料 先放上图片 材料:树莓派3b+.tea5767模块(收音机模块)和4根杜邦线. 树莓派3b+大约200元,tea5767模块大约25元吧,杜邦线不值钱. 顺便说一下,tea5767芯片更便宜 ...

  6. FM收音机芯片TEA5767

    FM收音机芯片TEA5767 一)概述 TEA5767是飞利浦公司生产的一款收音机芯片;可直接驱动耳机; 通过I2C通信发出指令,指令读写都是5字节数据, 写入地址0xC0 读取地址0xC1 二)模块 ...

  7. 收音机c语言程序,51单片机驱动TEA5767调频收音机芯片C程序

    /*-----------  TEA5767 驱动-----------*/ /*------   外部晶振为  12MHz-------*/ /*--------最后修改2011.02.26---- ...

  8. 45 STM32 IIC主机、从机通信实例(ma51t12b触摸按键芯片)

    45.1引言 最近在研究触摸按键板的通信,按键板主要用到的通信协议为IIC,事实上IIC的例子有很多,但大都都是模拟IIC的主机(引用某网友的评论),从机这边的内容还是比较少. 早在两三年前就跟着原子 ...

  9. 华大单片机 HC32F460 驱动BM8563ESA RTC芯片

    前言 因华大单片机没有单独VBAT管脚,无法使用,如果用单片机自带的RTC模块,系统断电后时间无法准确,需要重新设置,影响用户体验,说以系统加入单独的RTC芯片. RTC时钟电路 单片机管脚定义 RT ...

最新文章

  1. enyo官方开发入门教程翻译一Layout之Fittables
  2. 静态网站任何优化怎么设置_网站关键词怎么设置对网站推广优化有利?
  3. draw_circle_mod预生成交互式圆形
  4. 当程序员真难,又一次被编辑器坑了!
  5. 透析 | 卷积神经网络CNN究竟是怎样一步一步工作的?
  6. 统计无符号整数二进制中 1 的个数(Hamming Weight)
  7. LeetCode--026--删除排序数组中的重复项(java)
  8. cuba study
  9. JPA/Hibernate 中@Formula的作用
  10. MCU芯片设计和软件开发
  11. 用Python爬虫获取NBA球员的生涯数据
  12. 不管你学的是什么专业,你都应该多少懂些 (来自qq空间)(分享)(转载)
  13. A - 简单密码(C语言)
  14. Navicat的安装及简单使用
  15. R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算accuray、准确率指标
  16. freeswitch + dbl 呼入设置
  17. JVM知识整理----基础和垃圾处理
  18. 计算机专业技能比赛方案,计网系第二届计算机技能比赛方案
  19. MT6735VCM和MT6735VCA在代码选工程是否有区别?
  20. python爬取淘宝排名

热门文章

  1. Gmail之父发声:有了ChatGPT,搜索引擎活不过两年了...
  2. 抓住偷懒的年轻人,味知香想靠预制菜掀起“厨房革命”难
  3. android把图片保存到手机相册,并更新相册目录
  4. elementUI el-table 默认滚动条在表格的最底部
  5. AI赋能医疗大健康产业 千亿市场触手可及
  6. smtplib python_python模块smtplib学习
  7. 确定性随机数发生器测试向量——DRBG-CTR-AES192
  8. 如何用ChatGPT搭建品牌文本体系?(品牌名+slogan+品牌故事)
  9. vs2017无法查找或打开 pdb 文件
  10. MATLAB 小波包分析进行信号去噪