一、特性参数

1、专门用来用音频处理的AD芯片

2、内部固定好8K的采样速率

3、8位AD芯片

二、内部结构图

三、芯片管脚图

四、管脚功能说明

管脚名称 功能
IN0~IN7 数据输入端
ABC 数据输入端口选择
ST

ST 为转换启动信号。当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D 转换;在转换期间,ST 应保持低电平。

EOC

EOC 为转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换

OE

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0 为数字量输出线。

D7-D0 数字量输出线
CLK

时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ

VREF(+) 参考电压输入正极
VREF(-) 参考电压输入负极

五、STM32F103ZE驱动程序

#include "stm32f10x.h"#define CLK GPIO_Pin_0
//#define B     GPIO_Pin_1
//#define C        GPIO_Pin_2
#define ALE GPIO_Pin_4
//#define IN0 GPIO_Pin_4
#define ST    GPIO_Pin_5
#define OE    GPIO_Pin_6
//#define A     GPIO_Pin_7#define D0     GPIO_Pin_0
#define D1     GPIO_Pin_1
#define D2     GPIO_Pin_2
#define D3     GPIO_Pin_3
#define D4    GPIO_Pin_4
#define D5     GPIO_Pin_5
#define D6     GPIO_Pin_6
#define D7     GPIO_Pin_7
#define EOC GPIO_Pin_8double val=0;void delay(u32 kk)
{while(kk--);
}/*
const unsigned short CLK= GPIO_Pin_0;
const unsigned short B=GPIO_Pin_1;
const unsigned short C=GPIO_Pin_2;
const unsigned short ALE=GPIO_Pin_3;
const unsigned short IN0=GPIO_Pin_4;
const unsigned short ST=GPIO_Pin_5;
const unsigned short OE=GPIO_Pin_6;
const unsigned short A=GPIO_Pin_7;const unsigned short D0=GPIO_Pin_0;
const unsigned short D1=GPIO_Pin_1;
const unsigned short D2=GPIO_Pin_2;
const unsigned short D3=GPIO_Pin_3;
const unsigned short D4=GPIO_Pin_4;
const unsigned short D5=GPIO_Pin_5;
const unsigned short D6=GPIO_Pin_6;
const unsigned short D7=GPIO_Pin_7;
const unsigned short EOC=GPIO_Pin_8;
*/void ad_init()
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_ResetBits(GPIOA, ALE);
//    GPIO_ResetBits(GPIOA, A);
//    GPIO_ResetBits(GPIOA, B);
//    GPIO_ResetBits(GPIOA, C);//delay(10);
GPIO_SetBits(GPIOA, ALE); //CLK
}void adc0809_input()
{//ST²úÉúÉÏÉýÑغÍϽµÑØ
    GPIO_ResetBits(GPIOA, ST);delay(10);GPIO_SetBits(GPIOA,ST);delay(10);GPIO_ResetBits(GPIOA, ST);delay(10);while(GPIO_ReadInputDataBit(GPIOB, EOC)==0);GPIO_SetBits(GPIOA,OE);val=GPIO_ReadInputDataBit(GPIOB, D0)*0x0001+GPIO_ReadInputDataBit(GPIOB, D1)*0x0002+GPIO_ReadInputDataBit(GPIOB, D2)*0x0004+GPIO_ReadInputDataBit(GPIOB, D3)*0x0008+GPIO_ReadInputDataBit(GPIOB, D4)*0x0010+GPIO_ReadInputDataBit(GPIOB, D5)*0x0020+GPIO_ReadInputDataBit(GPIOB, D6)*0x0040+GPIO_ReadInputDataBit(GPIOB, D7)*0x0080;GPIO_ResetBits(GPIOA,OE);//val=val*2*0.98;
}void timer_init()         //¶¨Ê±Æ÷ÖжÏÅäÖÃ
{NVIC_InitTypeDef NVIC_InitStructure;      //ÅäÖÃÖжϽṹ
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);                     //ÅäÖÃÄÚ²¿Ê±ÖÓNVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);//¶¨Ê±Æ÷3µÄÖжϳõʼ»¯
    TIM_TimeBaseStructure.TIM_Period=100;      //ÓëÏÂÒ»ÐÐÓï¾äÅäºÏ£¬µ¥Æ¬»úʱÖÓÐźÅĬÈÏÇé¿öÏÂÊÇ72MHz£¬¸Ä10000Õâ¸öÊý¿ÉÒÔÉèÖÃÖжÏʱ¼äTIM_TimeBaseStructure.TIM_Prescaler=72;    //ÕâÐÐÒ²¿ÉÒԸģ¬µ«ÊÇΪÁËÊý¾Ý·ÖÅäÇå³þ£¬»¹ÊÇÉÏÒ»ÐÐÕû°ÙÕû°ÙµØ¸Ä±È½ÏºÃTIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_ITConfig(TIM3,TIM_IT_Update|TIM_IT_Trigger,ENABLE);TIM_Cmd(TIM3, ENABLE);
}int i=1;
void TIM3_IRQHandler()
{if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET) //È·¶¨½øÈëÁËÕâ¸öÖжÏ
  {TIM_ClearITPendingBit(TIM3, TIM_IT_Update);            //    Çå³ý±êÖ¾£¬±£ÏÕÆð¼ûÒª¼Ó
    adc0809_input();if(i==1){GPIO_SetBits(GPIOA, GPIO_Pin_8);i=0;}else{i=1;GPIO_ResetBits(GPIOA, GPIO_Pin_8);}}
}void ADC0809_Clock()
{TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);//PWM--->100HzTIM_TimeBaseStructure.TIM_Period=10;      TIM_TimeBaseStructure.TIM_Prescaler=12;TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
//  //PA6--->50%                                             //?????TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;     TIM_OCInitStructure.TIM_Pulse=5;                    //pulse????period??????TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;   TIM_OC1Init(TIM2, &TIM_OCInitStructure);//  //PA7--->40%
//  TIM_OCInitStructure.TIM_Pulse=40;
//  TIM_OC2Init(TIM3, &TIM_OCInitStructure);
//  //PB0--->60%
//  TIM_OCInitStructure.TIM_Pulse=60;
//  TIM_OC3Init(TIM3, &TIM_OCInitStructure);
//  //PB1--->80%
//  TIM_OCInitStructure.TIM_Pulse=80;
//  TIM_OC4Init(TIM3, &TIM_OCInitStructure);
    TIM_Cmd(TIM2, ENABLE);
}int main()
{      ad_init();GPIO_SetBits(GPIOA, GPIO_Pin_3); ADC0809_Clock(); timer_init();   while(1){}
}

转载于:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4741394.html

电赛总结(二)——AD芯片总结之音频处理芯片ADC8009相关推荐

  1. 电赛汇总(二):常用传感器电路模块设计

    电赛汇总(二):常用传感器电路模块设计 这一章节主要详细记录各种常用的传感器的电子芯片型号.设计原理与思想,以便随时查看翻阅.这部分内容出自黄根春等学者著的<全国大学生电子设计竞赛教程–基于TI ...

  2. 无名创新——2019年TI杯电赛飞行器赛题关键问题汇总

    从2018年12月以来,无名创新TI飞控累计服务了全国高校累计超400个电赛飞行器学生团队,无名创新TI系列产品根据客户反馈.市场需求,完成了一次次软硬件迭代升级,比赛临近,针对近期客户担心是否能直接 ...

  3. 都2021年了,你还在考虑电赛飞行器赛题,备赛是否有必要用基于TI处理芯片的飞控问题?

    无名创新售后群问题节选 @无名小哥 能问下今年国赛会不会指定某一款飞控呀? 答:都2021年了,你还在考虑电赛飞行器赛题备赛是否有必要用基于TI处理芯片的飞控问题? 暂不论官方是否会限定TI芯片的飞控 ...

  4. 电赛综合测评题练习(二)-(与2015年电赛综合测评要求类似)

    2015年电赛综合测评(部分要求有区别) 系列文章 T1:电赛综合测评题练习(一)-(与2013年电赛综合测评要求类似) 点击下载仿真文件1(请使用Multisim 14及以上版本打开) T2:电赛综 ...

  5. (电赛)数字信号发生方案和dds芯片选型经验

    目录 前言 一.什么是DAC.DDS? 1.DAC介绍 2.DDS介绍 3.电流输出DDS 二.FPGA+DAC方案 1.芯片调试记录:AD9708 2.备注 三.MCU+DDS方案 0.几种常用DD ...

  6. 带学生参加电赛,5个国一,2个国二!15个省奖!

    大家好,我是张巧龙,转眼21年的各省电赛就结束了,今年的电赛确实让人难忘,不管是题目还是比赛形式,亦或是比赛时间一拖再拖. 国赛结果也在前段时间公示了,参与人数再次增长. 据我所知,有一些省份由于疫情 ...

  7. 基于stm32非接触式物体尺寸形态测量仪(电赛获得省二)

    目录(获取原文及完整代码进入主页) 一.系统方案论证与比较 1.1 系统结构 1.2 方案选择与比较 1.2.1方案一 1.2.2 方案二 1.2.3 方案选择及论证 二.理论分析与计算 2.1 图形 ...

  8. 2020电赛省赛实战(二)ADS1292心电检测仪

    在电赛开始前的最后时间我再给大家分享一下我自己实战的结果. 首先这是我个人准备的套件,包括: 1.一个stm32单片机 2.ad1292心电检测模块(按技术手册布线即可) 3.用于捕获心电信号的电极( ...

  9. 如何准备电赛?19年电赛经验总结!

    关注.星标公众号,直达精彩内容 写在前面的话 最近忙着各大厂的实习面试,趁着准备简历的功夫回顾了一下19年电赛的比赛经历,总体来说还算说得过去,现在把我参加电赛的经验分享出来,希望对之后的学弟学妹们有 ...

最新文章

  1. 台风怎么看内存颗粒_生态板、密度板、颗粒板各有好处,看你怎么用了!
  2. 如何查他人【思科CCIE证书真伪、有效期】
  3. Unicode、UTF-8、Big Endian、Little Endian、GBK、UCS-2
  4. PS 色调——老照片效果
  5. [ JS 进阶 ] Repaint 、Reflow 的基本认识和优化 (2)
  6. STM32F407之资源
  7. group by很多字段是不是会很慢_3分钟短文 | MySQL在分组时,把多列合并为一个字段!
  8. spring作用域单例和global_面试必备 | 69道Spring面试题
  9. 深入浅出PHP amp; MySQL,深入浅出 PHP MySQL
  10. Android开发——监听Android手机的网络状态
  11. 编译ionic应用时遇到“To run dex in process, the Gradle daemon needs a larger heap.”
  12. 谷歌大中华区总裁李开复离职
  13. DX11:先定一个小目标,比如:把DX11龙书上的知识点系统的总结下来
  14. JS鼠标放上移开 显示隐藏图标 的代码思路
  15. Python编程基础——编程环境准备工作
  16. Android使用WebView加载Url时提示“请在微信客户端打开链接”
  17. python按哪个键运行代码_python运行快捷键是哪个
  18. Mac 超详细入门指南,收藏了!
  19. 谷歌浏览器Chrome无法翻译的解决办法
  20. Ableton Max for Live Collection ALP 音频MIDI效果合成控制设备拓展合集

热门文章

  1. scratch教程 03
  2. 几年经验才能算java高级,快来看鸭~
  3. java基于安卓微信小程序的医院核酸检测预约挂号系统 uniapp 小程序
  4. visa paywave检测流程
  5. 程序员改变世界:拼音输入法
  6. 【BZOJ3930】【CQOI2015】选数
  7. PCL区域生长分割算法
  8. Ansys专题仿真分析全套视频教程
  9. 关于ENSP上路由设备40错误,创建的虚拟网卡为VirtualBox Host-Only Network #2
  10. 计算机主板电容组,揭开主板电容鲜为人知的“秘密”(组图)