跳转到主要内容

单片机

流量检测中MSP430单片机的应用分析

judy /

对于传统流量检测系统而言,其多数选用的是电磁传感器,而电磁传感器易受外界磁场的影响而导致流量计量的不正确,MSP430单片机作为一种超低功耗的16位混合信号处理器,其在流量检测中的应用得到了越来越广泛的应用,因此,本文重点就基于MSP430单片机的流量检测仪的设计进行了研究。

<font size="3"><strong>1.以MSP430单片机为基础的流量检测仪的工作原理分析</strong></font>

考虑到流量检测仪低功耗等方面的特性,控制器选用的为MSP430F149,具体而言,此流量检测仪的工作原理如下:
当液体经过流量检测仪的过程中,检测仪内部的旋转磁盘进行转动,因而旋转磁盘上所设置的磁钢会触发传感器,并使其发出极为微弱的电信号,通过将此信号进行逐级放大和滤波之后,信号通过输出进入到检测仪的CPU中,CPU计数器对其进行输入,而后系统周期对脉冲个数进行读取,并借助于相应的软件对流量进行计算,后经处理形成所谓的差动信号,此差动信号以脉冲的形式传送至显示器中进行显示,这样其参数及流量信息可通过MSP430F149的I/O接口进行输入/输出。

STM32单片机USB传输数据时出现卡顿现象

judy /

1 前言

在进行 USB 开发的过程中,有多个客户反馈,USB 传输数据时出现卡顿现象。本文将针对这
一问题进行分析。

2 问题分析

这几个客户问题现象基本差不多,采用 STM32 作为 Device 设备,在与上位机或者 PC 端双向通讯一段时间后,从 Device 端到 Host 端的数据能够正常,而从 Host 端到 Device 端的数据异常,也就是说,STM32 在一段时间后不再能正常接收数据,但是,如果只是单向通信,就一直都是正常的。

这几个客户,有用 STM32F2 的,也有用 STM32F4 的,有用 CDC 类的,也有用作 HID 设备的,但都使用了 Cube 库。

下面就具体问题以其中一个客户使用 STM32F411 的 USB CDC 类的案例来分析问题,现象如
下 USB 通讯数据(CDC 类):

【视频】MSP430单片机发展及特点

judy /

MSP430单片机称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供"单片机"解决方案。该系列单片机多应用于需要电池供电的便携式仪器仪表中。

MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。

基于555定时器的电容测试仪设计

judy /

<strong>1、引言</strong>

随着电子工业的发展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在应用中我们常常要测定电容的大小[1]。因此,一种简单、实用的电容测试工具在实际中具有一定的实用价值。一般元件参数的数字化测量是把被测参数转换成频率后再进行测量[2],本设计采用555为核心的振荡电路,将被测电容值转化为频率,并利用AT89S51处理器测量出频率,再通过该频率值计算出电容参数值。

<strong>2、系统的原理框图</strong>

系统主要采用了555定时器构成的RC振荡电路和单片机技术。设计思路:被测电容C通过RC振荡转换成频率信号f,送入单片机测频,对该频率进行运算处理求出被测电容的值,并送显示器显示。系统框图如图1所示,其主要由测量电路和控制电路两部分组成。当接入被测电容后,由555定时器构成RC振荡器产生方波信号,把此信号通过接口传到AT89C51单片机I/O口上,对此方波信号进行测频,通过软件编程,计算出得到被测电容值,由LCD1602液晶显示。

【下载】ESD和EOS的原因、差异及预防

judy /

在许多基于单片机的应用中,单片机都受到各类电磁噪声的影响。电气噪声可能导致应用出现异常行为。其中的两种噪声事件分别称为静电放电(ElectrostaticDischarge,ESD)和电过载(Electrical Overstress,EOS)。本应用笔记讨论了这两种事件、导致这些事件的原因以及如何最大程度降低它们对应用的影响。

<span class="download"><a href="http://mcu.eetrend.com/files/2017-09/wen_zhang_/100008232-27412-0000178…《ESD和EOS的原因、差异及预防》</a></span>

8位单片机中如何对16位INT型数据进行操作?

judy /

在8位单片机中没有16位数的操作指令,所有的int型数据都要通过两个字节分开操作,使用的方法不用,生成的代码也不相同,当然效率也不一样,通过指针对16位数进行操作可以得到高效的代码。

比如通过串行口接收数据,或者从串行的EEPROM中读取的数据,或者从大于8位的A/D读取的数据,由于8位单片机的数据线是8位的,高于8位的数据都要分成两个字节分别读取,然后写入到RAM中去再进行计算,或者把16位的int型数据从RAM中读出再分别把高低字节存到EEPROM或者送到D/A,或者通过串行口发送出去,方法有很多种,下面用多种方法进行实现该操作,这里只演示写入到16位的情况,读取的情况非常相似,不赘述。

<strong>(1)使用联合 (union)</strong>

typedef union{unsigned int i;unsigned char c[2];}u_int;unsigned char dH = 0x11, dL=0x22;unsigned int d;u_int ud;ud.c[0] = dH;ud.c[1] = dL;d = ud.i;此时d = 0x1122;

<strong>(2) 使用移位指令</strong>

单片机执行指令的过程

judy 提交于

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。

取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。

分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。

计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。

下面我们将举个实例来说明指令的执行过程:

开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。

DSP与单片机的一种高速通信实现方法

judy /

<strong>1.引言</strong>

数字信号处理器是一种适合于实现各种数字信号处理运算的微处理器,具有下列主要结构特点:
(1)采用改进型哈佛(Harvard)结构,具有独立的程序总线和数据总线,可同时访问指令和数据空间,允许实际在程序存储器和数据存储器之间进行传输;
(2)支持流水线处理,处理器对每条指令的操作分为取指、译码、执行等几个阶段,在某一时刻同时对若干条指令进行不同阶段的处理;
(3)片内含有专门的硬件乘法器,使乘法可以在单周期内完成;
(4)特殊的指令结构和寻址方式,满足数字信号处理FFT、卷积等运算要求;
(5)快速的指令周期,能够在每秒钟内处理数以千万次乃至数亿次定点或浮点运算;
(6)大多设置了单独的DMA总线及其控制器,可以在基本不影响数字信号处理速度的情况下进行高速的并行数据传送。

STM32单片机DfuSeCommand的使用

judy /

<strong>前言</strong>

STM32 提供了灵活的固件加载模式,其中大部分型号支持 DFU 加载。并且在电脑端,提供了配套的演示软件 DfuSe。

包含可视化版 DfuSeDemo.exe 和命令版 DfuSeCommand.exe。本文主要介绍 DfuSeCommand.exe 的使用。

<strong>前期步骤</strong>

1. 在电脑上安装 DfuSe(可通过“相关工具 & 链接”小节中,提供的链接获取安装包)。

2. STM32 硬件正确配置,使其能够满足进入 System Bootloader 模式。更多详细介绍请参考《AN2606 STM32 microcontroller system memory boot mode》。如果应用中,利用 IAP 实现 DFU 升级,同样可以利用 DfuSe 工具。

3. 利用 USB 数据线连接电脑和 STM32 的全速 USB 接口,等待驱动自动安装完成。如果驱动无法正确安装,可指定驱动路径,重新安装驱动。驱动位于 DfuSe 安装目录\ Bin\Driver。

4. 打开 DfuSe 安装目录下的 DfuSeCommand.exe。