[CW32F030系列] 基于CW32的MAX4466放大器模块的应用

[复制链接]
1103|4
 楼主| CW32生态社区 发表于 2023-10-10 16:06 | 显示全部楼层 |阅读模式
本帖最后由 CW32生态社区 于 2023-10-10 16:08 编辑

1.MAX4466是一款低噪声、高增益的放大器模块。该模块采用了集成放大器芯片,能够在低电压下提供高增益。它的输入阻抗较高,能够与多种信号源(例如麦克风、传感器)实现良好的匹配。同时,MAX4466还具备很低的噪声水平,能够有效地提取和放大微弱的信号,提高系统的灵敏度。MAX4466模块的应用场景包括但不限于以下几个方面:
音频处理:可以作为音频信号的前置放大器,将低电平的音频信号放大到适合后续处理的水平,如音乐播放、语音识别、语音通信等。
声音检测与分析:结合麦克风等音频传感器,可以实现声音的检测、分析和识别,如声音传感器、语音识别设备等。
无线通信:可以用于接收无线通信模块的输入信号,对其进行放大,以提高通信距离和信号质量。

2.本实验使用到了CW32f030c8小蓝板、MAX4466模块、LED交通信号灯模块、0.96寸OLED显示屏、Keil5开发环境及VOFA+上位机软件。

   图片16.png
CW32f030c8小蓝板
图片17.png
MAX4466模块
图片18.png
实物(俯视)
图片19.png
实物(正视)
【单片机与MAX4466连线】:3.3V--VCC
  GND---GND
  PA0---OUT
【单片机与OLED屏连线】: GND---GND
  3.3V--VDD
  PB8--SCK
  PB9--SDA
【单片机与LED灯连线】:  GND--GND
  PC15--R
  PC14--Y
  PC13--G

3.核心代码
  1. ADC.c
  2. #include "ADC.h"

  3. #include "main.h"

  4. #include "delay.h"



  5. void ADC_Configuration(void)

  6. {

  7.    ADC_SingleChTypeDef ADC_SingleInitStruct;



  8.   __RCC_ADC_CLK_ENABLE();    // ADC时钟使能

  9.         __RCC_GPIOA_CLK_ENABLE();  //GPIOA使能



  10.   PA00_ANALOG_ENABLE();

  11.   ADC_SingleInitStruct.ADC_Chmux = ADC_ExInputCH0;                 //PA00 通道0

  12.   ADC_SingleInitStruct.ADC_InitStruct.ADC_AccEn = ADC_AccDisable;   //转换结果累加不使能

  13.   ADC_SingleInitStruct.ADC_InitStruct.ADC_Align = ADC_AlignRight;   //ADC转换结果右对齐

  14.   ADC_SingleInitStruct.ADC_InitStruct.ADC_ClkDiv = ADC_Clk_Div16;   //PCLK  

  15.   ADC_SingleInitStruct.ADC_InitStruct.ADC_DMAEn = ADC_DmaDisable;   //关闭DMA传输

  16.   ADC_SingleInitStruct.ADC_InitStruct.ADC_InBufEn = ADC_BufEnable;  //开启跟随器

  17.   ADC_SingleInitStruct.ADC_InitStruct.ADC_OpMode = ADC_SingleChOneMode;//单通道单次转换模式   

  18.   ADC_SingleInitStruct.ADC_InitStruct.ADC_SampleTime = ADC_SampTime10Clk; //10个ADC时钟周期

  19.   ADC_SingleInitStruct.ADC_InitStruct.ADC_TsEn = ADC_TsDisable;    //内置温度传感器禁用

  20.   ADC_SingleInitStruct.ADC_InitStruct.ADC_VrefSel = ADC_Vref_VDDA; //VDDA参考电压



  21.   ADC_SingleChOneModeCfg(&ADC_SingleInitStruct);                                                                        //开始转换

  22.   ADC_Enable();                                                   // 使能ADC

  23.        

  24.         ADC_SoftwareStartConvCmd(ENABLE);                                //转换使能

  25. }



  26. uint16_t Get_Data(void) //ADC数据采集

  27. {

  28.         unsigned int temp_dat_adc = 0;

  29.        

  30.         ADC_SoftwareStartConvCmd(ENABLE);       //开始转换

  31.         while(ADC_GetITStatus(ADC_IT_EOC))

  32.         {

  33.                 ADC_ClearITPendingBit(ADC_IT_EOC);    //清除标志位   

  34.                 temp_dat_adc=ADC_GetConversionValue();//电压采集               

  35.         }

  36.         return         temp_dat_adc;

  37. }



  38. uint16_t Cal_Average_Data(void)

  39. {

  40.         float dat;

  41.         uint8_t i=0;

  42.         for(i=0;i< 50;i++)   //连续采集50次ADC的值

  43.         {

  44.                 dat+=Get_Data();  //累加

  45.                 Delay_ms(1);

  46.         }

  47.         return dat/50;                        //返回平均值

  48. }
  1. main.c
  2. int main()  

  3. {

  4.         uint16_t temp;

  5.         LED_Init();  //LED灯初始化

  6.         OLED_Init(); //OELD屏初始化

  7.         UART_Init(); //串口初始化

  8.         ADC_Configuration(); //ADC配置

  9.         OLED_ShowString(1,1,"present:");   //提示字符串

  10.         OLED_ShowString(2,1,"record_max:");

  11.         while(1)

  12.         {

  13.                 temp=Cal_Average_Data();  //获取ADC数值累加后的平均值

  14.                 printf("%dn",temp);   //通过串口借助VOFA+软件打印波形图

  15.                 LED_Indicator(temp);                //LED灯指示

  16.                 Delay_ms(100);   

  17.         }

  18. }

4.VOFA+软件简易使用说明
fe36dc4cac8e3e68dca9a0bbdac42d29 e4f467d33cb7138591bf6efd24ad35fb 472ad3798c740954551867fa9716c3c3
①配置协议与连接:数据引擎选择”FireWater”,(注意:在程序中使用printf函数时,必须在%d后面加上\n才能在FireWater模式下被上位机正确识别),数据接口选择”串口”,正确选择端口号和配置波特率;
②在控件中找到波形图,拖拽到主窗口中,选择整窗口填充;
8e35aa182540a0cb8bc4cae2abffba18 bc633ff8dd230ca228e117689dec2424
③右击窗口选择Y轴中的All打开Y轴数据显示;
④在图形种类中(默认)选择波形图;
9fa3d868fdb5fc78ed60ea301aab77cf
⑤点击左上角灰黑色圆圈打开串口进行通信,看到圆圈变蓝并且闪烁代表通信正常,之后可以像调节示波器显示一样通过鼠标滚轮手动将波形调整到合适的显示范围,也可以点击Auto一键调整波形显示范围。
软件官网下载地址: HYPERLINK "https://www.vofa.plus/downloads/"

效果演示

图片7.png
  正常音量
图片8.png
  正常音量波形图
图片9.png   
较大音量
图片10.png
较大音量波形图
图片11.png
过大音量
图片12.png
  过大音量波形图


两只袜子 发表于 2023-10-11 09:29 | 显示全部楼层
总之,基于CW32和MAX4466的放大器模块可以在各种应用中实现高性能、高保真、低噪声的信号放大、调理和缓冲。
小夏天的大西瓜 发表于 2023-11-15 13:08 | 显示全部楼层
总结的挺精辟,性能高
LOVEEVER 发表于 2023-11-17 13:01 | 显示全部楼层
max4466和max9814这俩谁好?
星辰大海不退缩 发表于 2023-11-20 13:29 | 显示全部楼层
LOVEEVER 发表于 2023-11-17 13:01
max4466和max9814这俩谁好?

max9814可以自动过滤直流,在0附近,但max4466不能过滤直流
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

13

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部