博客
虽然目前的高分辨率SAR ADC和Σ-Δ ADC可提供高分辨率和低噪声,但系统设计师们可能难以实现数据手册上的额定SNR性能。而要达到最佳SFDR,也就是在系统信号链中实现无杂散的干净噪底,可能就更加困难了。杂散信号可能源于ADC周围的不合理电路,也有可能是因恶劣工作环境下出现的外部干扰而导致。
针对高分辨率、精密ADC应用中的杂散问题,这里将介绍6种判断其根本原因的方法,并提出相应的解决方案。这些技术和方法将有助于提高终端系统的EMC能力和可靠性。
<strong>先说说杂散与SFDR</strong>
<strong><font color="#FF0000">作者: Clarence.Mayott</font> </strong>
驱动直接采样高速ADC时,最有可能降低性能的地方是最终放大器与ADC之间的接口。任何直接采样ADC都会在采样过程中产生非线性电荷。每次采样开关闭合时,此电荷就会反射到输入网络中。如果不加以衰减,它会反射回ADC且被重新采样,致使ADC的失真或交调失真性能下降。ADC的输入网络应尽可能接近50 Ω,以便最大限度地吸收此非线性电荷。使用高吸收性滤波器可抑制采样过程中产生的非线性信号音,从而改善SFDR。
<strong>利用LTC6409驱动AD9265</strong>
上期的参考电路,大家表示很感兴趣→<a data-containerid="2020" data-containertype="14" data-objectid="16634" data-objecttype="1" href="https://ezchina.analog.com/thread/16634" se_prerender_url="complete">——采用ADI/LTC产品组合的超高精度可编程电压源</a>
首先什么是执行效率。我们平常所说的执行效率就是使用相同的算法在相同输入条件下完成相同计算所产生的系统开销,目前来说一般会更多关注执行时间方面的开销。所有语言编写的代码最终要运行,都要转化成机器码。在更短的时间内完成相同的事那么效率就高。
关于如何提高C语言程序的执行效率,以我多年的编程经验在这里我来谈谈我的想法:
<strong>1.尽量避免调用延时函数</strong>
PCB设计工程师在设计PCB时,往往很想使用自动布线。通常,纯数字的电路板(尤其信号电平比较低,电路密度比较小时)采用自动布线是没有问题的。但是,在设计模拟、混合信号或高速电路板时,如果采用PCB设计软件的自动布线工具,可能会出现一些问题,甚至很可能带来严重的电路性能问题。
在本月的文章中,我将讨论时钟相位噪声测量中的杂散。大多数了解时钟的人都会认识到杂散是下面相位噪声图中的独特的尖峰。杂散通常是不受欢迎的,在频率合成中低水平杂散并不少见。它们就像是啤酒上的泡沫。这个特定的曲线来自一个AWG(任意波形发生器),配置为1 MHz FM的100 MHz正弦输出。在本文中,我将使用此数据或类似的数据。
此次PSoC 6先锋套件的评测,其实还了作者自己的一个心愿,那就是对EInk屏幕的原理与驱动代码进行一个深入的分析。
作为9年前就开始使用电纸书进行阅读的本文作者,一直没有抽出时间与精力来对它的原理进行了解确实有点小小遗憾。希望本文能给有需要的朋友能带来一点知识和阅读的兴趣。Happy Reading and Happy Coding!
<strong>概览</strong>
先来两张效果图:
设计这个电子墨水屏的温湿度计还是比较费脑子的,原因是我之前设计好的传感器板子是标准Arduino接口,因为板子的Arduino接口的所有引脚都被电子墨水屏占用了。虽然还有很多剩余的插针没用到。
CY8CKIT-062-BLE_Kit的PSoC 6也有很多GPIO都可以实现I2C功能,可就是没有哪个能与这个板子搭上的。因为不想把板子耷拉在外边飞线,想了很久最后终于想出一招。原来测试时是这么接的,因为这样接就没法再插电子墨水屏。
<strong>PSoC 6使用PSoC Creator调试时不能使用sprintf输出float的解决办法</strong>
使用CY8CKIT-062-BLE PSoC 6 BLE Pioneer Kit测试温湿度时使用sprintf把float转换成string,温湿度已经测量出来,可是使用sprintf打印出来的都是0。
以前使用IAR时遇到过,PSoC Creator用的不多,找设置费了一翻功夫,最后在工程的Build Settings中对应处理器核的Linker中找到一个叫Use newlib-nano Float Formatting的。把设置改成True问题解决。
<strong>前 言</strong>
<center><img src="http://mouser.eetrend.com/files/2018-02/博客/100010180-35065-p1.jpg" alt=“” width="600"></center>
<strong>CY8CKIT-062-BLE PSoC 6 BLE Pioneer Kit是一块强大的开发板。</strong>
<strong>PSoC 6——专为物联网而生的MCU</strong>
PSoC 6号称专为物联网而生,自然少不了互联与低功耗方面的特性。现有的互联技术中,大多还是以WiFi及BLE为主,我们都知道WiFi是耗电大户,但是WiFi可以直接接入现有的网络中,BLE虽则能实现低功耗传输,但是并不能直接接入现有的互联网中。比较而言,二者各有千秋,各有自己适用的场景。
PSoC 6 BLE Pioneer Kit提供的互联技术是BLE,低功耗毫无压力,只是联网时需要结合手机、平板等移动终端或者IoT网关才能实现真正的接入互联网,在当今的应用场景中,也不是大问题。
<strong>多核心与并行概述</strong>
“Single core processors are a shrinking minority of all the processors in the world. Multicore processors, offering parallel computing, have displaced single core processors permanently. The future of computing is parallel computing, and the future of programming is parallel programming.”
---James Reinders from Intel
<strong>前 言</strong>
短短几年时间,物联网应用已从概念走向市场,遍地开花。有些物联网产品是直接从传统的消费电子中脱壳而出,而有些则是从无到有的全新创意,当然,支撑如此丰富多样的物联网产品快速落地离不开相爱相杀的各大半导体巨头提供的看家解决方案,是的,功不可没。
如今,物联网应用在稳步增长的同时也有几大问题困扰着工程师,比如在可穿戴设备等类似的应用上尽可能利用更小的空间创造更丰富的创意、功能;在电池技术停滞不前的情况下,多数使用电池供电的物联网产品急需更低或者更加合理的功耗分配的解决方案;最后一点则是毋庸置疑的安全连接性问题,物联给人们带来了前所未有的便利,但同时也对个人隐私安全提出了更高的挑战。
<strong>据说PSoC 6是一颗专为物联网而生的MCU</strong>
PSoC 6 BLE PIONEER KIT开发板上的PSoC 63是一颗支持BLE的双核ARM处理器,符合BLE 5.0规范。一个主频为150MHz的Cortex-M4F和一个主频为100MHz的Cortex-M0+。套件里带了一块2.7寸电子墨水屏,支持264*176分辨率。
这是我第一次接触电子墨水屏,想玩很久了,开箱时屏幕显示了CYPRESS的LOGO。
<strong>前 言</strong>
老子有云:大音希声,大象无形。低调而不失张扬,这是笔者初见PSoC 6 BLE Pioneer 时的感受。
虽然早已在媒体介绍上见过PSoC 6 BLE Pioneer的宣传照片,但是第一次看到PSoC 6 BLE Pioneer摆在面前,还是小小的惊喜了一下。PSoC 6 BLE Pioneer无论在设计还是包装,到软件开发等方面,都为我们带来了更好的体验!
奇美拉(Chimera)是古代西方神话中的一种怪兽,版本有很多种,但是有一个共同特点:身体由各种不同动物的部分组成。现代语言中,Chimera成为了一个典故,表示比较稀奇古怪的事物。将芯片比喻为奇美拉有点过于离奇,但是此文中介绍的芯片确实有类似的特征。
<center><img src="http://mouser.eetrend.com/files/2018-01/博客/100010040-34352-c1.jpg" alt=“” width="300"></center>
<strong>三种常用电路如下:</strong>
<strong>1、基本的RS485电路<strong>
<center><img src="http://mouser.eetrend.com/files/2018-01/博客/100010004-34210-z1.jpg" alt=“” width="800"></center>
<strong>前言:</strong>
1.要想学习STM32中断,要先掌握STM32对优先级的定义;
2.有51单片机开发经验会比较容易理解中断优先级;
3.本篇博文基于STM32F103ZET6芯片和3.5.0标准库编写;
4.本篇博文从寄存器入手,最终实现编程的步骤;如有不足之处,还请前辈多多指教;
<strong>一 基础知识</strong>
1. cortex-m3支持256个中断,其中包含了16个内核中断,240个外部中断。(本博文只介绍60个外部可屏蔽中断)
2. stm32只有84个中断,包括16个内核中断和68个可屏蔽中断
3. stm32f103上只有60个可屏蔽中断,f107上才有68个中断
<strong>ROM:(Read Only Memory)程序存储器</strong>
在单片机中用来存储程序数据及常量数据或变量数据,凡是c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS,一些低端的单片机是没有这个的)通通都存储在ROM中。
<strong>RAM:(Random Access Memory)随机访问存储器</strong>
用来存储程序中用到的变量。凡是整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。
## STM32的IO口基本操作 ##
<center><img src="http://mouser.eetrend.com/files/2018-01/博客/100009940-33991-t1.png" alt=“” width="600"></center>
<strong>1.初始化结构体</strong>
先来看下GPIO_InitTypeDef这个结构体,源代码如下