查看: 805|回复: 23
打印 上一主题 下一主题

【新技能get】开发板一起学起来——F429教程第五讲 示波器

[复制链接] qrcode

27

主题

31

帖子

94

积分

注册会员

Rank: 2

积分
94
楼主
跳转到指定楼层
发表于 2015-7-30 01:07 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式




 本教程作者为ICkey网友@HelloWii ,回帖参与讨论、提问、分享,就能赢取超多丰厚奖励哦~  
@HelloWii 也将随时和大家交流学习中的问题。(PS:本教程未经允许谢绝转载)

学教程,送奖励,活动说明详见:
【新技能get√】开发板STM32F429I Discovery技术一起学起来






ADC(Analoag to Digital Conventor)

模拟到模拟转换器,这个现在已经成了单片机的标配了,市场上的单片机很少有不带数模转换器的,只不过精度和采样频率可能有很大的差距。宏晶科技的STC12是国内的不错的51单片机,超高的性价比,一块才4元左右,同样也具有ADC,以前一颗普通的ADC芯片可能要好几块钱,不得感叹科技的进步太快,倘若不去学习新知识,很快就会被落下。


STM32F4系列拥有12bit 的逐次逼近ADC,具有19个输入通道。其中19个通道,三个内部通道来测量内部源和VBAT的信号,16个可以测量外部的通道。可进行单次、连续、扫描活断续模式的AD转换。

 

ADC特性

    12bit 、 10bit 、8bit 、6bit 可配置分辨率

    转换完成、注入转换结果、模拟看门狗、溢出时间等情况下可产生中断

    单次和连续转换模式

    扫描模式自动转换通道0到通道N

    内部数据一致性的对齐

    通道采样时间间隔可编程

    外部触发配置规则组 和外部触发极性选择

    非连续模式

    双/三模式 (具有2个ADC以上的设备)

    可配置DMA存储在双/三模式下

    可配置转换延时在双/三交错模式下

    ADC 转换类型(参考数据手册)

    ADC供电在2.4V-3.6V 可全速运行,当电压下降到1.8V慢速运行

    ADC输入电压范围: VREF– ≤ VIN ≤ VREF+

 

图5-1:ADC框架图

ADC固件库使用如下:

This file provides firmware functions to manage the following

           functionalities of the Analog to Digital Convertor (ADC) peripheral:

             + Initialization and Configuration (in addition to ADC multi mode

               selection)

             + Analog Watchdog configuration

             + Temperature Sensor & Vrefint (Voltage Reference internal) & VBAT

               management

             + Regular Channels Configuration

             + Regular Channels DMA Configuration

             + Injected channels Configuration

             + Interrupts and flags management

 

ADC初始化和配置,首先要启用ADC的时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADCx,ENABLE);

配置ADC的引脚选择:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx,ENABLE);

其它的在 ADC_Init();  对ADC的一些模式进行配置,ADC_Cmd()使能ADC。


DMA(Direct  Memory Access)

直接内存访问用的来提供高速上数据外设和内存之间、内存与内存的数据传输。数据可以快速移动,通过DMA而不需要CPU的干预,不占用CPU的时间。

DMA控制器结合一个功能强大的双AHB主总线结构,具有独立的FIFO,在一个复杂的总线矩阵控制结构的基础上,优化系统的带宽。



图5-2:DMA框架图

打开STM32F429I-Discovery_FW_V1.0.1ProjectsPeripheral_ExamplesADC_DMAEWARM ADC_DMA.eww编译下载到F429开发板中,就可以看到如下下的内容(ADC使用的CH13通道,对应的是PC3引脚)。

悬空效果如下:

 

图5-3:悬空


接地、接3V0效果如下:

  

图5-4:ADC效果

 

CooCoX CoIDE

CoIDE 是一个免费的集成开发环境致力ARM Cortex-M0/M0+/M3/M4处理器的开发。使用GCC(GCC-ARM-Embedded),工具链,基于eclipse。

CooCox隶属于全球领先的电子元器件分销商英国派睿(Premier Farnell)集团,是派睿旗下独立的开发工具品牌。CooCox的人员组织、知识产权均归属于派睿。

派睿于2011年底收购了CooCox和英蓓特信息技术有限公司,并整合成一家公司:英蓓特科技。

CooCox起源于武汉理工大学UP Team的研究项目,至今仍有武汉理工的老师和学生参与。 Logo Logo CooCox品牌名称的含义是Cooperate on Cortex。

自2009年成立之日起,CooCox团队就一直致力于为用户提供免费和开源的ARM开发工具,专注于ARM Cortex M系列的开发。

目前CooCox工具已支持大部分主流Cortex M4,M3,M0和M0+芯片。

 

CooCox IDE下载http://www.coocox.org/index.html

注:CooCoxIDE下载需要注册用户。


下载安装CooCoxIDE如下:


 

图5-5:CooCox 安装


安装完成之后,并不能直接开发。因为CooCox IDE是基于Eclipse的,所以用过eclipse的可能都知道,需要在安装GCC的工具链。并在CoooCoxIDE中配置。

GCC编译器下载:https://launchpad.net/gcc-arm-embedded/+download

下载的版本我选择的是最新的。如下图所示:

 

图5-6:GCC版本

 

安装好之后,在CooCoxIDE中选择 Project -> Select  Toolchain Path  然后点选刚刚才安装的  GCC的目录的bin文件夹 。如下图所示:

 

图5-7:GCC 配置



图5-8:工具链选择

 

示波器对攻城狮来说是很重要的一个东西,我自己编写了一下,感觉效果并不是理想,就用了一个国外的牛人写的一个现成示波器的案例(地址:http://mikrocontroller.bplaced.net/wordpress/?page_id=3290),这里做个分析:

因为它的项目是用的CooCox IDE这也是之前我们为何介绍CooCoxIDE开发环境的原因。

示波器通道1和2分别对应的是PA5和PA7引脚。

CH1 an PA5

CH2 an PA7

示波器的源码可以去上面的网站下载,也可以在帖子的附件里下载,都是一样的。

打开CooCoxIDE环境 Project -> OpenProject …点击刚刚你下载的示波器项目文件,如下所示:

 

图5-9:DSCO项目选择

 

点击编译。

右击项目,选择Configuration 如下所示:

 

图5-10:项目配置

 

然后选择Download,在Programming Algorithm选择default。如下图所示:


图5-11:下载选择

 

点击下载,等待如下图所示,即可将文件烧录到开发板中。

图5-12:下载完成

整体界面如下。接入 1KHz vpp=2V 的方波信号之后的显示:



图5-13:效果图

 

功能还是蛮强大的,通过点击屏幕可以出现相应的按键,调节各个功能参数,

如下图所示:

     

图 5-14:效果图

    

图5-15:具体演示



 

 

工程的大体结构如下:

 

图5-16:工程目录

 

 好吧,这一讲都到这里,具体的内容还是靠自己去学习,多去看官网的资料,多去翻看固件库。。。

希望这些东西对你能有用处,倘若对你有用,我心里也会非常开心的。

有什么问题可以跟帖回复。

分享铸就美好未来。。。



【新技能get】开发板一起学起来——STM32F429 Discovery简介



示波器源代码:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

83

帖子

23

积分

新手上路

Rank: 1

积分
23
沙发
发表于 2015-7-30 02:05 PM | 只看该作者

盼星星,盼月亮终于等到大神的最后一期教程了~

在此先分享一个我用CoIDE编译后的bin文件,和楼主的应该是差不多的,供大家体验:

我的这个频率不高,最高只能到40k左右,信号输入端是PA5和PA7,500HZ自检信号输出是PB2。

最后在此表示我对 HelloWii 大神的崇敬之情,请收下我的双膝,和一点点积分、IC币,以表达我的心意~

回复 支持 反对

使用道具 举报

0

主题

95

帖子

10

积分

新手上路

Rank: 1

积分
10
板凳
发表于 2015-7-30 02:19 PM | 只看该作者

在此奉上我在学习STM32F429IDISCOVERY这块板子的过程中用到的一些工具~

是针对STM32F4系列的STM32Cube软件包(HAL驱动,USB,以太网,文件系统)

http://pan.baidu.com/s/1sj1cd6d

回复 支持 反对

使用道具 举报

0

主题

99

帖子

2

积分

新手上路

Rank: 1

积分
2
地板
发表于 2015-7-30 03:51 PM | 只看该作者
你把我吓坏了,,,我就是个写代码的,,,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

86

帖子

18

积分

新手上路

Rank: 1

积分
18
5#
发表于 2015-7-30 06:14 PM | 只看该作者
我对大神您的敬仰犹如滔滔江水,延绵不绝,望大神笑纳我早已跪破的双膝~
回复 支持 反对

使用道具 举报

0

主题

94

帖子

20

积分

新手上路

Rank: 1

积分
20
6#
发表于 2015-7-30 08:55 PM | 只看该作者
我也想做一个,示波器是工程师的眼睛,真的是必不可少,可惜只有在公司用公用的,回家了就没得用了
回复 支持 反对

使用道具 举报

0

主题

71

帖子

6

积分

新手上路

Rank: 1

积分
6
7#
发表于 2015-7-30 09:38 PM | 只看该作者
买个虚拟的吧,20MHz 一般还够用,要不就攒钱买个好点的。。这个示波器玩玩还行,毕竟硬件水平低。。
回复 支持 反对

使用道具 举报

332

主题

923

帖子

2062

积分

金牌会员

Rank: 6Rank: 6

积分
2062
8#
发表于 2015-7-31 12:19 AM | 只看该作者

1、我还第一次,看过gcc工具链。支持C++吧,我手里有一本这样的书,看过,没试过。

2、类似ucgui,fatfs我也都移植和试过(ucgui的摇杆和鼠标没试过,尤其摇杆当鼠标不知道可能不),感觉没啥意思!亲,我这也是小屌丝叫嚣一下哈!你敢不敢玩点我没玩过的,比如,那个ucos,freertos,rtx之类的。我也不会哈(多说是用过rtx实验了一下led小灯)。需要帮助的时候,我可以和你一起研究!

arm高级别的芯片,我估计系统是跑不了。以前我是总回避,现在我想试试了。当然了,我可以为你提供proteus版本的开发工具!

3、IC币评不了呢?想给你了,应该最高是5。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

1

主题

80

帖子

5

积分

新手上路

Rank: 1

积分
5
9#
发表于 2015-7-31 08:28 AM | 只看该作者
其实这个示波器没有外围电路,仅仅用了内部的AD采集的功能,然后在LCD液晶屏上画点,实现示波器功能,我以前参加比赛的时候刚好也做过示波器,也是用的32,可以加入一个输入程控放大电路,程控放大电路决定了示波器的输入带宽和垂直分辨率,可以有效提高这个数字示波器的性能。

回复 支持 反对

使用道具 举报

0

主题

93

帖子

60

积分

注册会员

Rank: 2

积分
60
10#
发表于 2015-7-31 08:48 AM | 只看该作者
上传一下阿莫电子论坛的  魏坤自制示波器教程                                                       
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表