电平

STM32简易示波器开发总结

試著忘記壹切 提交于 2020-02-26 12:38:28
考研失利不用准备复试了,有了空闲时间做了个示波器,带宽80Khz,输入幅度0-3.3V,带有触发功能,接近实时的波形显示和FFT计算,不过存储深度太小了只有1024个点。最近要准备工作的面试了之后有时间再完善。简单总结一下设计思路,一些疑问和今后要完善的地方,采用的基本上都是固件库开发怎么配置网上都有就不细说了。 (ps:大四辣鸡一个,半瓶水晃荡着做的,有很多知识和理解受制于自己的视野,也还有许多地方设计的不合理欢迎大家交流,家里没有杜邦线剪了一截导线大家将就看8(狗头)) 一.STM32内部DA作为信号源 二.STM23内部AD不间断采样 总线72MHz,6分频,55.5个周期的采样时间,大概有160KHz的采样频率(不知道现在数字示波器还是不是和模拟的一样用扫描信号,没有仔细去找相关资料,但是感觉完全可以用足够的采样率和存储深度恢复波形) 三.DMA总线传输(单次、不循环) 总共传输1024个数据,可以设置更多点,不过本次用的是32内部的SRAM,如果想做更多点的使用外挂RAM不知道速度够不够 四.处理数据 1.触发:设置了俩种,(1)达到触发电平触发、(2)达到触发电平且为上升沿触发。T_point为触发位置,ADC_ConvertedValue为DMA传输的数据,T_value触发电平。 电平触发 int Trigger ( ) { for ( T_point = 0 ;

漏极开路

南笙酒味 提交于 2020-02-26 09:09:48
漏极开路是驱动电路的输出三极管的集电极开路,可以通过外接的上拉电阻提高驱动能力。 这种输出用的是一个场效应三极管或金属氧化物管(MOS),这个管子的栅极和输出连接,源极接公共端,漏极悬空(开路)什么也没有接,因此使用时需要接一个适当阻值的电阻到电源,才能使这个管子正常工作,这个电阻就叫上拉电阻。 漏极开路输出,一般情况下都需要外接上拉电阻,以使电路输出呈现三态之高阻态,例如,在有些芯片的引脚就定义为漏极开路输出;还有一些带漏极开路输出的反向器等都需要外接上拉电阻才能正常工作。 三极管(共射极)在数字电路中用到它的截止区和饱和区,因为在数字电路中输入信号是大幅度的脉冲信号,当输入为低时,三极管工作在截止区,输出Vce为高。当输入为高时,三极管工作在饱和区,输出Vce为低。 A:我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。 我们将图1简化成图2的样子。图2中的开关受软件控制,“1”时断开,“0”时闭合

蓝桥杯嵌入式设计开发——LED篇

陌路散爱 提交于 2020-02-26 03:04:31
博主将会从 硬件和软件 这两个方面去和大家分享怎么样去使用led。 硬件相关知识 :博主先提出几个问题。LED灯怎么样才能亮呢?怎么样去用STM32MCU去自由的控制led灯的亮灭呢?怎么去查看开发板的外围硬件电路呢? (1)我们首先去查看蓝桥杯嵌入式设计开发板的原理图(PS这个原理图在我们购买板子的时候,会提供给我们),然后找到LED部分。如下图所示。 我们以HD0为例,如果我们给HD0一个低电平信号,然后给再给NLE端口一个下降沿(ps也就是给NLE一个高电平,然后接着给一个低电平)。然后锁存器就会锁存HD0端口接入的低电平信号,一直到NLE端口下一个下降沿信号的来临继续锁存即时的HD端口信号。那么HD 0—8端口的电平信号从哪儿来呢,我们查看板子的原理图可以得知HD 0—8端口与MCU的PC8-PC15相连。我们控制MCU的PC8—PC15端口输出信号就可以控制LED。那么如何控制MCU的PC8—PC15的输出信号怎么控制呢,接下来将要分享的软件方面知识正在等着你哟。 软件相关知识 :伙伴们知道怎么去查看库函数的解释吗?我们控制LED需要用到哪些库函数呢?我们怎么去初始化PC8—PC15的工作方式呢? (1)我们需要知道mcu端口有各种工作方式,既然我们要通过mcu端口去控制LED,那么我们就应该初始化mcu端口的工作方式。 (2

RS485串口编程

故事扮演 提交于 2020-02-25 20:08:10
1.1 单工、半双工、全双工 首先,我使用的是芯片为 SP3485E 为半双工通信。 那么先要明确什么是单工、半双工、全双工。 单工数据传输只支持数据在一个方向上传输; 半双工数据传输允许数据在两个方向上传输 ,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; 全双工数据通信允许数据同时在两个方向上传输 ,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。 网卡的全双工(Full Duplex)是指网卡在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。目前的网卡一般都支持全双工。 提到全双工,就不能不提与之密切对应的另一个概念,那就是“半双工(Half Duplex)”, 所谓半双工就是指一个时间段内只有一个动作发生 ,举个简单例子,一条窄窄的马路,同时只能有一辆车通过, 当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开,这个例子就形象的说明了半双工的原理。早期的对讲机、以及早期集线器等设备都是基于半双工的产品。随着技术的不断进步,半双工会逐渐退出历史舞台。 1.2 关于RS485通信 RS232 标准是诞生于 RS485 之前的,但是 RS232 有几处不足的地方: 接口的信号电平值较高, 达到十几 V,使用不当容易损坏接口芯片

TTL和CMOS有什么区别?

删除回忆录丶 提交于 2020-02-23 15:16:10
谈谈TTL和CMOS电平(转贴) TTL——Transistor-Transistor Logic HTTL——High-speed TTL LTTL——Low-power TTL STTL——Schottky TTL LSTTL——Low-power Schottky TTL ASTTL——Advanced Schottky TTL ALSTTL——Advanced Low-power Schottky TTL FAST(F)——Fairchild Advanced schottky TTL CMOS——Complementary metal-oxide-semiconductor HC/HCT——High-speed CMOS Logic(HCT与TTL电平兼容) AC/ACT——Advanced CMOS Logic(ACT与TTL电平兼容)(亦称ACL) AHC/AHCT——Advanced High-speed CMOS Logic(AHCT与TTL电平兼容) FCT——FACT扩展系列,与TTL电平兼容 FACT——Fairchild Advanced CMOS Technology 1,TTL电平: 输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低电平 是0.2V。最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0

I2C总线概述及时序总结

。_饼干妹妹 提交于 2020-02-22 18:12:47
I2C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。 I2C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。 SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发) SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。 二.输出级 I2C总线概述及时序 每一个I2C总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。其中输出为漏极开路的场效应管,输入缓冲为一只高输入阻抗的同相器,这种电路具有两个特点: 1)由于SDA、SCL为漏极开路结构(OD),因此它们必须接有上拉电阻,阻值的大小常为 1k8, 4k7 and 10k ,但1k8 时性能最好;当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线"与"关系。 2)引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致,为"时钟同步"和"总线仲裁"提供了硬件基础。 三. 主设备与从设备 系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型

零基础学习嵌入式系统应该怎样设计硬件电路

只愿长相守 提交于 2020-02-21 11:43:27
1、MCU的选择 选择MCU时要考虑MCU所能够完成的功能、MCU的价格、功耗、供电电压、I/O口电平、管脚数目以及MCU的封装等因素。MCU的功耗可以从其电气性能参数中查到。供电电压有5V、3.3V以及1.8V超低电压供电模式。为了能合理分配MCU的I/O资源,在MCU选型时可绘制一张引脚分配表,供以后的设计使用。 2、电源 (1)考虑系统对电源的需求,例如系统需要几种电源,如24V、12V、5V或者3.3V等,估计各需要多少功率或最大电流(mA)。在计算电源总功率时要考虑一定的余量,可按公式“电源总功率=2×器件总功率”来计算。 (2)考虑芯片与器件对电源波动性的需求。一般允许电源波动幅度在±5%以内。对于A/D转换芯片的参考电压一般要求±1%以内。 (3)考虑工作电源是使用电源模块还是使用外接电源。 2、电源 (1)考虑系统对电源的需求,例如系统需要几种电源,如24V、12V、5V或者3.3V等,估计各需要多少功率或最大电流(mA)。在计算电源总功率时要考虑一定的余量,可按公式“电源总功率=2×器件总功率”来计算。 (2)考虑芯片与器件对电源波动性的需求。一般允许电源波动幅度在±5%以内。对于A/D转换芯片的参考电压一般要求±1%以内。 (3)考虑工作电源是使用电源模块还是使用外接电源。 3、普通I/O口 (1)上拉、下拉电阻:考虑用内部或者外部上/下拉电阻,内部上

差动放大器总结

狂风中的少年 提交于 2020-02-18 02:06:10
差动工作方式优点: 1. 对环境噪声具有更强的抗干扰性; 2. 抑制共模噪声; 3. 增大了最大电压摆幅; 4. 更简单的偏执电路和更高的线性度 一、基本概念(公式推导略): 1. 差动信号:两个结点电位之差,并且这两个结点相对于某个固定电位大小相等,极性相反,严格地说,这两个电位与固定结点的阻抗也必须相等。 在差动信号中,这个固定的中心电位称为 共模电平。 2. 基本差动对:为了避免增益、摆幅、波形等受器件偏置电流的影响,引入电流源来提供电路的偏置电流,如下图: 虽然在这里,电流源的目的是抑制输入共模电平的变化对管子和输出电平的影响,但是并不意味着输入共模电平的值可以任意取,为了保证管子工作在饱和区,输入共模电平允许范围如下: 考虑输出电压的摆幅,显然输入共模电平越小(输出最大值V DD ,最小值为V in,CM -V TH ),允许的输出摆幅就越大,但实际中,前级电路可不能提供这么低的电平。 考虑增益,研究电路的小信号特性,分为两种方法:叠加法和半边电路法。叠加法主要思想是利用戴维宁等效分别独立考虑两个输入端,求出V X ,V Y ;半边电路法也是利用戴维南等效的思想,因为完全对称,所以只考虑一边电路的工作情况,将尾巴结点当成交流地对待。半边电路法为全差动的对称差动对提供了一个简便的方法,对于不是全差动的输入信号,我们可以把信号看成一个差动输入和一个共模变化的叠加

SAM4E单片机之旅——6、LED闪烁之按钮控制

荒凉一梦 提交于 2020-02-17 14:05:58
现在试试用按钮控制LED灯……让LED在一个按钮按下时亮起;弹起时灭掉。 主要目的是学习GPIO的输入及中断。 一、 电路 图中的J39-n是几个跳线插座,位置在开发板LCD附近,往下进行前要先确保跳线是接通的。 可以看到,当按钮按下时,引脚接地。即若引脚接个上拉电阻,则在按钮弹起状态下,引脚处于高电平状态;而在按钮按下时,则处于低电平状态。 这次使用的按钮是BP3,即PA20引脚;LED为蓝色LED,即PA0。 二、 最简单的办法 在开发版重置时,所有的引脚就默认接了上拉电阻。 所以,直接使用一根杜邦线将PA20和PA0短接,就可以用BP3控制蓝色LED了。 三、 稍微有技术含量的思路 假设,身边不存在杜邦线…… 那么很直接的思路就是根据按钮引脚的电平,来控制LED灯引脚的电平。可以选择通过不断查询来获取按钮引脚的电平状态,但我们现在使用更高级的武器: 中断。 我们让按钮引脚在电平变换时产生一个中断,然后在中断服务函数中控制LED引脚电平。 四、 LED 引脚的配置 这个配置已经做过多次了…… 五、 输入引脚的配置 1. 启用PIO控制器的时钟。启用中断、获取引脚电平需要开启相应PIO控制器的时钟。 PMC->PMC_PCER0 = (1 << ID_PIOA); 2. 引脚配置为仅做输入用途 #define BUTTON_PIO PIO_PA20 /* 使用PIO控制器控制引脚

GPIO输入与输出设置

淺唱寂寞╮ 提交于 2020-02-17 02:21:12
GPIO(也称为通用输入/输出)是控制器中最简单也是最重要的配置。但即便如此,IO也有各种各样的类型和配置选项,有输入,输出,上拉,下拉,推挽等。虽然我们天天都和它打交道,但是你真的了解其中的配置吗? 输入模式 通常,GPIO输入主要通过以下三种方式之一进行配置: ● 高阻抗 (Hi-Z,也称为浮动floating) ● 上拉 (Pull-up,内部电阻连接到VCC) ● 下拉 (Pull-down,内部电阻连接到地) 当Input port被处在高阻抗的模式下,若没有外部讯号源进来的话,此时是无法确定port的状态(不能确定现在处在高电位或低电位),除非有外部讯号来驱动电路。换句话说,Input floating,这个Input电位状态完全是由外部讯号来决定,没有讯号驱动的话,就会呈现高阻抗状态。 如果我们需要这个port有一个明确的预设状态时,必须借助pull-up(pull-down)resistor来做调整,在pull-up resistor(pull-up外接高电压,pull-down通常会接地)的作用之下,让port的维持在明确的高电压状态(pull-down则是让port维持在低电压状态)。 至于具体电阻的大小,一般在芯片手册中都有详细的描述。在实际配置中,除了要考虑port口内的上下拉电阻大小,还需要考虑MCU外围电路所带来的影响。 输出模式 GPIO的输出模式