技术
作者: Regine Monique Aurellano Microchip Technology Inc.
<strong>简介</strong>
串行外设接口(Serial Peripheral Interface,SPI)一直以来是PIC® MCU内核外设集的一部分。PIC18(L)F2X/4XK42单片机系列引入的最新特性之一是用于实现SPI功能的单独模块。以前的器件将SPI功能与其他串行通信协议集成,并在SPI共享寄存器和中断标志等资源的主同步串行端口(Master Synchronous Serial Port,MSSP)模块中实现。SPI的专用模块可显著改进SPI的传统功能并扩展新功能,从而提高灵活性并加强用户控制。
本技术简介旨在讨论SPI模块的实现、工作模式和其他有用的附加特性。
前段时间有一个客户需要用到4线电阻触摸屏,为了节省一片触摸屏控制芯片,客户决定使用MCU直接控制4线电阻触摸屏,主要使用到了MM32的ADC外设资源,通过ADC采集触摸屏的X+\Y+的电压,算出相对应的坐标轴,并且显示在显示屏上。所以今天将结合该例程和大家一起熟悉、了解MM32的ADC配置流程。
<strong>一、触摸屏操作原理 </strong>
LCD的接口有多种,分类很细。主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式,DSI模式。MCU模式(也写成MPU模式的)。只有TFT模块才有RGB接口。
但应用比较多的就是MUC模式和RGB模式,区别有以下几点:
1.MCU接口:会解码命令,由timing generator产生时序信号,驱动COM和SEG驱器。
RGB接口:在写LCD register setting时,和MCU接口没有区别。区别只在于图像的写入方式。
2.用MCU模式时由于数据可以先存到IC内部GRAM后再往屏上写,所以这种模式LCD可以直接接在MEMORY的总线上。
PCB布线设计中,对于布通率的的提高有一套完整的方法,在此,我们为大家提供提高PCB设计布通率以及设计效率的有效技巧,不仅能为客户节省项目开发周期,还能最大限度的保证设计成品的质量。
<strong>1、确定PCB的层数</strong>
电路板尺寸和布线层数需要在设计初期确定。如果设计要求使用高密度球栅数组(BGA)组件,就必须考虑这些器件布线所需要的最少布线层数。布线层的数量以及层叠(stack-up)方式会直接影响到印制线的布线和阻抗。板的大小有助于确定层叠方式和印制线宽度,实现期望的设计效果。
作者: Mary Iva Rosario Salimbao,Microchip Technology Inc.
<strong>简介</strong>
振荡器模块用于处理8位PIC®单片机的时钟源选择。该模块内含内部高频振荡器(HFINTOSC)、外部高频振荡器(EXTOSC),辅助振荡器模块(SOSC)、PLL和其他低频振荡器。图1给出了振荡器在振荡器模块中的连接方式。
在 Cube 软件包中,为不同系列 MCU、不同外设提供了对应的例程方便开发参考。其中,针对STM324xG-EVAL 平台提供了 UART 中断发送接收的例程。开发者参考了这个例程进行 UART 功能开发,并且为了实现不间断的接收功能,在接收回调函数中,再次调用中断接收函数。在这种情况下,出现了例程执行异常。本文分析了这种情况出现原因及解决方法。
<strong>问题描述</strong>
测试验证板: STM3240G-EVAL
参考例程路径:
STM32Cube_FW_F4_V1.15.0\Projects\STM324xG_EVAL\Examples\UART\UART_Hyperterminal_IT
布尔处理功能是MCS-51系列单片机的一个重要特征,这是出于实际应用需要而设置的。布尔变量也即开关变量,它是以位(bit)为单位进行操作的。
在物理结构上,MCS-51单片机有一个布尔处理机,它以进位标志做为累加位,以内部RAM可寻址的128个为存储位。
既然有布尔处理机功能,所以也就有相应的布尔操作指令集,下面我们分别谈论。
<strong>[1]. 位传送指令</strong>
位传送指令就是可寻址位与累加位CY之间的传送,指令有两条。
MOV C,bit ;bit→CY,某位数据送CY
MOV bit,C ;CY→bit,CY数据送某位
<strong>[2]. 位置位复位指令</strong>
P0口作为I/O口输出的时候时,输出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态,也就是说P0 口不能真正的输出高电平)。给所接的负载提供电流,因此必须接(一电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流。
P0作输入时不需要上拉电阻,但要先置1。因为P0口作一般I/O口时上拉场效应管一直截止,所以如果不置1,下拉场效应管会导通,永远只能读到0。因此在输入前置1,使下拉场效应管截止,端口会处于高阻浮空状态,才可以正确读入数据。
由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。
<font size="3"><strong>一、血压测量原理</strong></font>
血压的概念就是血液流经血管壁时的压力。由心脏出来的血液,需要有推力,才能绕行身体一周,心脏就是借着不停的收缩、放松,将血液推送前进。血压有两种,一是收缩压:是当心脏收缩将血液打到血管所测得的血压,另一是舒张压:是心脏在不收缩所测得的压力。当袖带的压力等于血压时,血液开始可以流通而产生所谓的袖带声,这时候表现为收缩压,从这一刻开始做记录,直到最后袖带声音消失的时候,记录此点即为舒张压。
<font size="3"><strong>二、电子血压计工作原理</strong></font>
<font color="blue"><strong>1、引言</strong></font>
目前,集成电路的嵌入式技术发展越来越快,各色嵌入式产品也越来越受欢迎,尤其是以大屏幕多功能的手机、平板电脑等为典型代表,做为其控制核心的高性能、低功耗的微控制器(MCU)起到了决定性作用。因此以CPU为核心MCU的设计也成为了诸多高等院校、各大公司进行市场竞争的一个主流发展方向。
</strong></font>
<font color="blue"><strong>2、MCU选型技术
对于传统流量检测系统而言,其多数选用的是电磁传感器,而电磁传感器易受外界磁场的影响而导致流量计量的不正确,MSP430单片机作为一种超低功耗的16位混合信号处理器,其在流量检测中的应用得到了越来越广泛的应用,因此,本文重点就基于MSP430单片机的流量检测仪的设计进行了研究。
<font size="3"><strong>1.以MSP430单片机为基础的流量检测仪的工作原理分析</strong></font>
时钟模式的配置以及使用对MCU来说一直是最基础的东西,在何种情况下使用哪一种时钟模式是我们在使用MCU的过程中最常见的问题之一。
Kinetis系列微控制器具有复杂的时钟系统,时钟系统中多功能时钟发生器、锁相环、锁频环、晶振系统等功能模块相互之间的协调工作能为MCU以及各种外设模块提供稳定的时钟源。通过对KL25时钟系统的结构和配置方法的剖析,以及对多功能时钟发生器运行机制的梳理,提出了时钟源性能的测试方法以及各外设模块时钟源的选择方法。
可见,时钟的正确合理配置对于MCU以及各种外设模块来说是非常重要的,下面我将着重介绍八种模式的时钟如何正确配置。
<font size="3"><strong>前言</strong></font>
STM32 提供了灵活多样的外扩存储器访问实现。本文中,介绍如何利用 QSPI (QuadSPI) 外扩串行
NOR Flash 存储器。首先对 QSPI 接口功能特性进行介绍,然后分别介绍硬件设计和软件开发。并基于 STM32CubeMX,提供访问 MICRON N25Q128A13EF840F 的实现参考。
<font size="3"><strong>一 实现环境</strong></font>
TrustZone是ARM对ARM6的扩展,其实只是增加了一条指令,一个配置状态位,以及一个新的有别于核心态和用户态的安全态。ARM并没有把TrustZone设计成能够解决所有的安全问题,它的目标是希望TrustZone能把一些安全性要求高的代码放在安全区域里执行,这也就是TrustZone名字的由来。
ARM把TrustZone固化在硬件里的道理是,系统的安全性不能全靠软件来保证,而且改写现有的不安全的软件,使之更安全也不大可行。较为可行的方案就是引入一块安全的硬件逻辑,并且只让一小块软>件控制此安全逻辑。这样既保护了既有投资,也把系统的安全风险降到最小。
因为操作系统和普通应用都可以运行在安全态,所以安全态不同于传统的运行态环状的特权划分,因此ARM把安全态描述成一个平行区域,称之为安全区,又称为安全监控模式。
<font color="blue"><strong> 一、存储器格式(字对齐)</strong></font>
Arm体系结构将存储器看做是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存储的字数据,一次排列。作为32位的微处理器,arm体系结构所支持的最大寻址空间为4GB。
<strong>存储器格式</strong>
1、大端格式:高字节在低地址,低字节在高地址;
2、小端格式:高字节在高地址,低字节在低地址。
<strong>指令长度</strong>
RS485通信想必大家都知道,在学习RS232时,都会拿485(RS485下文就用485代替)和其作对比。485优缺点不说,网上有。
我用的是STM32库函数学的485通信,所以接下来就讲讲STM32串口实现485双机通信的原理:
485和232都是基于串口的通讯接口,在数据的收发操作上都是一致的。但是他两的通讯模式却大不相同~!232是全双工(例:A->B的同时B->A,瞬时同步)工作模式,而485是半双工(发时不能收,收时不能发)工作模式。在232通信中,主机在发送数据的同时可以收到从机发过来的数据;但在485通信中,收发要经过模式位的切换来进行,譬如,发送数据时,会把模式为置‘1’,表示为发送模式,此时不能接收;当接收数据时,会把模式位置‘0’,表示为接收模式,此时不能发送。
uC/OS- II是最早进入国内的一款开源RTOS,因为代码开源,又有配套的书籍,加上不大的代码量,在嵌入式群体中最为流行。在写“实用单片机系统”第一版之后,就接触了uC/OS-II,虽然大致的明白其工作原理,但一直似懂非懂,尤其有太多的宏定义,严重的干扰了源码的阅读,加上RTOS带来太多的概念,而这些概念都没有实际用过,不知道如何应用,并且听说有很多陷阱,所以心里有些空,把握不住风险,一直都回避RTOS。
高频机开发的后期,菜单界面编程的复杂性严重的干扰了业务逻辑,逼迫我设计msOS的时候,考虑把业务逻辑与菜单界面分离开,这必须要引入RTOS,而uC/OS-II因为广为人知又相对简单一些,所以选择了uC/OS-II。
1 前言
在进行 USB 开发的过程中,有多个客户反馈,USB 传输数据时出现卡顿现象。本文将针对这
一问题进行分析。
2 问题分析
这几个客户问题现象基本差不多,采用 STM32 作为 Device 设备,在与上位机或者 PC 端双向通讯一段时间后,从 Device 端到 Host 端的数据能够正常,而从 Host 端到 Device 端的数据异常,也就是说,STM32 在一段时间后不再能正常接收数据,但是,如果只是单向通信,就一直都是正常的。
这几个客户,有用 STM32F2 的,也有用 STM32F4 的,有用 CDC 类的,也有用作 HID 设备的,但都使用了 Cube 库。