2017年12月20日星期三

基于STM32F769I-DISCO开发板实现Embedded Wizard界面应用入门指南




本文主要介绍了创建一个用于STM32F769探索板的Embedded Wizard界面应用的所有必要步骤。请仔细按照这些指示,一步步进行操作,以确保您可以在目标开发板上运行结果。此外,本文假设您熟悉Embedded Wizard的基本概念。

前提条件
首先,您需要以下硬件:
★    意法半导体的STM32F769探索板(STM32F769I-DISC1)
★    USB电缆,将开发板连接到PC
此外,您还需要安装以下软件开发包:
★     Embedded Wizard Studio免费版或专业版
★     Embedded Wizard STM32平台开发包
★     用于STM32F769探索板的Embedded Wizard构建环境

小提示
如果您想使用免费版本的Embedded Wizard Studio和STM32平台开发包,请在Embedded Wizard官网进行注册,然后选择目标STM32F769 Discovery。这样你就可以下载上述的软件包。

2017年9月29日星期五

使用MCUXpresso IDE恢复和更新NXP OpenSDA引导加载程序

对于Windows 8.x或Windows 10来说,大多数NXP OpenSDA引导加载程序都比较脆弱:Windows的写入访问可能会使出厂的引导加载程序混乱,并使得调试固件和引导加载程序失去作用。在本文中,我将介绍如何使用MCUXpresso IDE和P&E Universal Multilink恢复引导加载程序。

前言
在本文中,我将介绍如何使用P&E Universal Multilink和MCUXpresso IDE V10.0.2重新编程OpenSDA V2.x引导加载程序。JTAG / SWD仿真器是必不可少的,否则无法重新烧写并修复Kinetis K20上的OpenSDA引导加载程序。
我使用的是恩智浦FRDM-K22F开发板。

2017年8月30日星期三

使用Arduino开发板实现基于指纹识别的生物特征考勤系统



考勤系统通常用来记录办公室和学校人员的考勤情况。从手动登记出勤情况,到使用高科技应用和生物识别系统,这些系统已经得到显着改善。在这个项目中,我们使用指纹模块和Arduino开发板来保存考勤数据和记录。使用指纹传感器,系统将让用户变得更加安全。以下部分介绍了使用Arduino制作基于指纹的生物识别考勤系统的技术细节。

SAM E54 Xplained Pro评估套件中文用户手册

SAM E54 Xplained Pro评估套件中文用户手册

前言
SAM E54 Xplained Pro评估套件是用于评估ATSAME54P20A微控制器的硬件平台。
由Atmel Studio集成开发平台支持,该套件可以轻松访问ATSAME54P20A的功能,并且介绍了如何将该元件集成到定制设计中。
Xplained Pro MCU系列评估套件包括板载嵌入式调试器,无需外部工具来编程或调试ATSAME54P20A。
Xplained Pro扩展套件提供了额外的外设,以扩展电路板的特性,并简化了定制设计的开发流程。

2.        简介
2.1        功能
•        ATSAME54P20A微控制器
•        一个机械复位按钮
•        一个机械可编程按钮
•        一个QTouch PTC按钮
•        一个黄色用户LED指示灯
•        256 Mb QSPI闪存
•        ATECC508 CryptoAuthentication设备
•        带有EUI-48 AC地址的AT24MAC402串行EEPROM
•        以太网
–        带内置磁性组件的RJ45连接器
–        KSZ8091RNA PHY
–        10Base-T/100Base-TX 兼容IEE 802.3以太网收发器
•        SD/SDIO卡连接器
•        并行捕获控制器头(ArduCAM兼容)
•        CAN连接器
•        备用超级电容
•        32.768 kHz晶振
•        12 MHz晶振
•        USB接口,主机和设备
•        三个Xplained Pro扩展头
•        带SWD的10引脚Cortex调试连接器
•        20引脚Cortex Debug + ETM连接器,带有SWD和4位跟踪
•        嵌入式调试器
–        用于在Atmel Studio中电路板识别的自动识别码
–        一个黄色状态LED
–        一个绿色电路板电源LED
–        复杂数据类型的符号调试,包括范围信息
–        编程和调试,包括功耗测量
–        数据网关接口:SPI、I2C、四个GPIO
–        虚拟串行端口(CDC)
•        嵌入式电流测量电路(XAM)
–        测量ATSAME54P20A和/或外设的功耗
–        测量电流在100 nA到400 mA之间
–        Microchip Data Visualizer显示当前的量数据
•        USB供电
•        支持Atmel START中的应用示例

SAM E54 Xplained Pro评估套件简介

SAM E54 Xplained Pro评估套件(ATSAME54-XPRO)
SAM E54 Xplained Pro评估套件是用于评估ATSAME54P20A微控制器的硬件开发平台。由Atmel Studio集成开发平台支持,该套件可以轻松访问ATSAME54P20A的功能,并且展示了如何将该元件集成到定制设计中。
Xplained Pro MCU系列评估套件包括板载嵌入式调试器,无需外部工具来编程或调试ATSAME54P20A。 该套件提供了额外的外设,以扩展电路板的特性,并简化了定制设计的开发流程。

2017年7月13日星期四

使用LM386制作Arduino音乐播放器


在我们的项目中添加声音或音乐总是会使其看起来更酷一些,听上去更有吸引力。特别是如果您使用的是Arduino开发板,并且有很多空余的引脚,只需要添加一个SD卡模块和一个普通的扬声器即可轻松添加音效。在本文中,我将向您展示使用您的Arduino开发板来播放音乐以及添加音效是多么容易。感谢Arduino社区开发了一些库,可以使用快速而简便的方式实现。。我们也在这里使用了LM386芯片进行放大和噪声消除。

需要的硬件:
1.  Arduino UNO开发板
2.  SD卡读卡器模块
3.  SD卡
4.  LM386音频放大器芯片
5.  10uf电解电容
6.  100uf电解电容
7.   1K和10K电阻
8.  按键
9.  面包板
10.  连接导线

准备WAV音频文件:
为了使用Arduino开发板从SD卡播放声音,我们需要.wav格式的音频文件,因为Arduino开发板可以播放wav特定格式的音频文件。要制作一个arduino mp3播放器,使用arduino开发板有很多可用的mp3扩展板。或者为了在arduino中播放mp3文件,有些网站可以用来将您计算机上的任何音频文件转换成特定的WAV文件。

所以要将任何音频文件转换为wav格式,请按照以下步骤操作:
步骤1:点击“Online Wav Converter”进入网站。

步骤2:Arduino可以播放下列格式的wav文件。稍后您可以尝试各种设置,但以下这些设置经过验证是质量最好的。
位分辨率
8位
采样率
16000 Hz
音频频道
PCM格式
PCM无符号8位

步骤3:在网站上点击“choose file”,选择要转换的文件。然后进入上述设置。一旦完成,它应该看起来类似下面的图像:

如何使用Arduino和SIM900A GPRS / GSM模块将数据发送到Web服务器


今天我们在这里介绍一个非常有趣的项目,我们将使用Arduino开发板和GPRS将数据发送到SparkFun服务器。这是一个基于IoT的项目,我们将使用GSM模块SIM900A将一些数据发送到互联网上的Web服务器。

在这个项目中,我们将使用4x4数字键盘输入一些文本,并使用Arduino和GPRS将其发送到SparkFun网站,从那里您可以通过互联网在任何地方看到这些数据。在这里,我们还连接​​了一个16x2液晶显示器,以便在本地查看数据。这种数据发送技术在物联网项目中非常有用,您可以在世界上任何地方监控数据,如监测温度和湿度、监测车辆位置、监测心跳、监测空气污染等等。

所需的组件:
2.    GSM模块SIM900A
3.   16x2 LCD显示屏
4.    4x4矩阵键盘
5.    面包板或PCB
6.    连接导线
7.    12V电源
8.    SIM卡

在GSM模块中使用GPRS
这里我们使用了一个带有SIM卡的GSM模块,用于GPRS连接。在这个项目中,GPRS负责向Sparkfun服务器发送数据。以前,我们已经做了很多项目,其中我们使用Wi-Fi模块ESP8266通过互联网将数据发送到不同的服务器。但这次我们使用的是GPRS。

GPRS代表通用分组无线电服务,其是基于分组的无线通信服务,工作在数据速率为56-114kbps并提供到因特网的连接。
对于GPRS,我们不需要购买任何特殊的模块或硬件,因为GSM已经拥有GPRS设备。我们只需要使用以前的项目中用于GSM接口的相同方法或AT命令来访问它。 SIMCOM SIM900A GSM模块数据表中已经提到了许多AT命令。

基于ATtiny85轻松制作一款智能手表

这是基于ATtiny85系列的简约手表系列中的第三款。该款手表通过在微型64x48 OLED显示屏上绘制模拟的手表来显示时间。它使用独立的晶振控制的低功耗RTC芯片来保持每月几秒钟的时间,并在不显示时间的时候将处理器和显示器置于睡眠状态,以便使得使用寿命超过一年。
当按下手表表面上的按钮时会显示时间,并且会在显示屏上显示模拟的手表,并且带有一个移动的秒针。 30秒后显示屏将自动变暗,以保持电池的使用寿命。

简介
这款手表基于Maxim Integrated的DS2417 RTC芯片,该芯片采用一个小型6脚封装,使用32.768 kHz晶振来保持精确的时间。它可以通过1线接口与主控制器ATtiny85进行通信,该接口仅使用一个I/O引脚来发送和接收数据。因为RTC芯片主要工作是计时,ATtiny85在其不需要实际显示时间时可以在掉电模式下保持睡眠,从而大大降低了功耗。

该显示器使用一个SPI接口的小型单色64x48 OLED显示屏,具有可从Aliexpress购买,或可从Sparkfun购买类似的。显示器需要4个引脚驱动,ATtiny85刚好满足应用要求,剩余一个引脚用于1-Wire接口。您不能读取显示内存,因此要做图形,您需要写入RAM中的缓冲区,然后将其复制到显示器上。因为显示器是64x48像素,因此它需要68x48 / 8或384字节的存储器用于图形缓冲区,这也刚好在ATtiny85的能力之内。

现在显示屏变暗的总功耗约为8μA,单个CR2016电池估计超过一年的电池寿命。

电路
以下是Tiny Face手表的电路:

使用DHT11制作一个Arduino温度数据记录仪



作为工程师/开发人员,我们总是会依靠收集的数据来设计或改进系统。记录数据并进行分析是大多数行业的常见做法,在这里我们将制作一个Arduino数据记录仪项目,通过该项目我们将学习如何在一段特定时间间隔内记录数据。我们将使用一个Arduino开发板读取一些数据(温度、湿度、日期和时间),并且将它们保存在SD卡和计算机上。

保存的数据可以在Excel表格中轻松打开,并进一步分析。为了保留日期和时间,我们将使用通用的RTC模块DS3231,并且使用DHT11传感器获得温度和湿度。在项目的末尾时,您将学习到如何将日期、时间和传感器值等数据记录到SD卡中以及如何通过串行通讯将数据直接写入到Excel表格中。

需要的设备
●    面包板
●    Arduino UNO开发板
●    DHT11温度传感器
●    DS3231 RTC模块
●    SD卡模块和SD卡
●    连接导线
●    台式计算机或笔记本
       

电路原理图
Arduino温度数据记录仪项目的电路图如下所示。
如电路图所示,连接非常简单,由于我们使用的是模块,因此可以直接在面包板上进行制作。详细的连接方式如下表所示:

如何使用MCUXpresso IDE和LPCOpen库创建一个新项目

本文档主要介绍了如何使用MCUXpresso IDE为LPCXpresso1549开发板创建一个新项目。
值得一提的是,官方没有提供针对LPC15xx器件系列的SDK,因此我们使用的是LPCOpen库。

MCUXpresso IDE介绍
MCUXpresso IDE基于Eclipse IDE,并包含业界标准的ARM GNU工具链。它为基于Cortex-M内核的NXP MCU(LPC和Kinetis)提供了易于使用和无限制代码大小的开发环境。 MCUXpresso IDE调试连接支持Freedom、Tower、LPCXpresso和您的定制开发板,并且具有行业领先的开源和商业级的调试仿真器,包括LPC-Link2、P&E和SEGGER。全功能调试器支持SWD和JTAG调试,并且可以直接下载到片上闪存。

当安装了MCUXpresso IDE时,它将包含大多数基于LPC的MCU的预安装的器件支持。这些预安装器件的示例代码由复杂的LPCOpen软件包(和代码包)提供。每个软件包都包含了代码库,以支持MCU功能、LPCXpresso开发板(以及其他一些常见的),同时包含了大量的代码示例和驱动程序。

此外,MCUXpresso IDE的器件支持可以使用免费提供的MCUXpresso SDK2.x软件包进行扩展。这些可以通过简单的“拖放”进行安装,并且使用新的器件知识和示例自动扩展IDE。
MCUXpresso IDE的SDK可以根据需要使用MCUXpresso Config Tools网站上的SDK Builder生成和下载:http://mcuxpresso.nxp.com/

创建一个新项目
在本文档中,我们使用的是LPCXpresso1549开发板(提供了该MCU的LPCOpen项目),同时对于任何LPCXpresso开发板,该过程是相同的。
需要为您的目标MCU /开发板板下载相关的LPCOpen软件包,并将其导入工作区,LPCOpen可以在以下链接中获得:http://www.nxp.com/lpcopen

1.   在“QuickStart panel”面板中选择“New project”,然后打开一个新窗口:

2.   选择期望的开发板。本例中,我们使用的是LPCXpresso1549开发板,然后单击“Next”。
注意:当选择该开发板时,可以从上图中突出显示的部分看到MCU(器件)会自动选择匹配。如果没有匹配的开发板,则可以从预安装的MCU列表中选择所需的MCU。


2017年6月14日星期三

NUCLEO-L496ZG防火墙 - 可执行的易失性数据段

STM32L496ZG微控制器提供了防火墙的功能,用于保护FLASHSRAM中的代码或数据。STM32CubeL4提供了两个使用防火墙功能的示例,FIREWALL_VolatileData_ExecutableFIREWALL_VolatileData_Shared。本文主要结合FIREWALL_VolatileData_Executable示例简单介绍防火墙功能的使用方法。

HAL提供的示例主要介绍了如何使用防火墙来保护定义为可执行的易失性数据段。易失性数据段存储在SRAM1中。在防火墙初始化示例中,受保护的易失性数据段是定义为非共享的,以便在防火墙关闭时不受保护的代码时无法访问。

防火墙初始化的一般步骤如下:
1.       配置RCC,使能防火墙模块的时钟;
2.       配置RCC,使能系统配置寄存器的时钟;
3.       设置每个段的起始地址和长度(CSSACSLNVDSSANVDSLVDSSAVDSL寄存器);
4.       设置防火墙的配置寄存器(FW_CR寄存器);
5.       启用防火墙,清除系统配置寄存器中的FWDIS位。

系统配置寄存器
该寄存器连接到APB2总线上,向APB2外设时钟使能寄存器RCC_APB2ENRSYSCFGEN位置1,可以打开系统配置寄存器的时钟。系统配置寄存器(SYSCFG_CFGR1)中的FWDIS位控制防火墙保护功能的使能和禁止,所以需要使能该寄存器。默认情况下是禁止使用防火墙。HAL提供了API函数:__HAL_RCC_SYSCFG_CLK_ENABLE();


防火墙功能配置
HAL提供了防火墙功能配置的API函数:HAL_FIREWALL_Config。该函数主要有三个功能:使能防火墙时钟、配置各段(代码段、易失性数据段和非易失性数据段)的起始地址和长度、配置FW_CR寄存器。
●   使能防火墙时钟
防火墙连接在APB2总线上,地址为0x4001 1C00 - 0x4001 1FFF。向RCC_APB2ENR寄存器的FWEN位置1,使能防火墙时钟。HAL同样提供了一个API函数:__HAL_RCC_FIREWALL_CLK_ENABLE
●   各段的起始地址和长度
HAL中的FIREWALL_InitTypeDef结构体保存着各段的信息。本示例演示的是易失性数据段,因此代码段和非易失性的起始地址和长度都设置为0,易失性数据段的起始地址为0x2000F100,段长为0xF00
●   配置FW_CR寄存器
FW_CR寄存器可以设置易失性数据段的共享性和可执行性。本示例设置为可执行的,并且是非共享的。
  1.     /* No protected code segment (length set to 0) */   
  2.     fw_init.CodeSegmentStartAddress      = 0x0;
  3.     fw_init.CodeSegmentLength            = 0;
  4.     
  5.     /* No protected non-volatile data segment (length set to 0) */   
  6.     fw_init.NonVDataSegmentStartAddress = 0x0;
  7.     fw_init.NonVDataSegmentLength       = 0;
  8.     
  9.     /* Protected volatile data segment (in SRAM1 memory) start address and length */   
  10.     fw_init.VDataSegmentStartAddress    = 0x2000F100;
  11.     fw_init.VDataSegmentLength          = 3840; /* 0xF00 bytes */  
  12.     
  13.     /* The protected volatile data segment can be executed */  
  14.     fw_init.VolatileDataExecution       = FIREWALL_VOLATILEDATA_EXECUTABLE;
  15.     
  16.     /* The protected volatile data segment is not shared with non-protected
  17.       application code */    
  18.     fw_init.VolatileDataShared          = FIREWALL_VOLATILEDATA_NOT_SHARED;
  19.     
  20.     /* Firewall configuration */
  21.     if (HAL_FIREWALL_Config(&fw_init) != HAL_OK)
  22.     {
  23.       Error_Handler();
  24.     }  
复制代码

实验代码
代码的分布通过分散加载文件实现。可执行的易失性数据段位于0x2000F104处,保护的易失性数据段位于0x2000FE00处。当调用vdata_protected_function()函数时,程序进入到可执行的易失性数据段,按照“call gate”序列打开防火墙。退出该函数时,关闭防火墙。
  1.     /* In the example, the protected function processes
  2.        non-protected input data and outputs an internal computation result. 
  3.        For demonstration purposes, vdata_protected_function() accesses as well
  4.        data located in the protected volatile data segment. 
  5.        vdata_protected_function() itself ensures that FPA bit is set
  6.        before exiting the protected area.
  7.        */ 
  8.      
  9.     vdata_function_output = vdata_protected_function(unprotected_vdata); 
  10.     
  11.     /* The Firewall is now closed again. */
  12.         
  13.     /* Check that the output is that expected */
  14.     if (vdata_function_output != expected_vdata_function_output_1)
  15.     {
  16.       /* Processing issue, log it in filling up RTC back-up register BKP0R 
  17.          with 0x2, then exit in Error */  
  18.       WRITE_REG( RTC->BKP0R, 0x2 ); 
  19.       Error_Handler();
  20.     }
复制代码

如果返回的计算结果符合预期,则LED1指示灯常亮。
如果vdata_protected_function退出时未置位FPA,则会触发系统复位,LED1指示灯闪烁。

参考资料
1. STM32L4x6系列用户手册RM0351:https://www.yiboard.com/thread-720-1-1.html

2017年八大顶尖的技术趋势

技术日新月异,我们都必须跟上步伐。新技术带来了新的商机。那些忽视技术趋势的人最终都被遗忘在竞争激烈的世界中。那些及时做出调整,并能适应开展业务的新方式的人,会马上取得领先优势,并获得财务回报。

所以,如果你在经营一个企业,不管是大是小,找出正在发生哪些技术变革。这些新的发展通常会被忽视,只有当新的小玩意出现在市场上时,人们才会知道他们。但是,这些第一批首先注意新技术趋势的人会在市场竞争中脱颖而出,

企业,特别是小企业,可以从现代技术中受益匪浅。新技术将大幅降低运营成本和其他成本,增加小企业家的利润率。

事实上,越来越多的企业家正在采用新技术作为其业务发展战略的一部分。根据一项调查,76%的商业决策者认为,人工智能是其组织成功的关键

但哪些新技术正在获得世界的跟进和关注?其实有很多。事实上,我们每年都会了解新兴技术。然而,不一定所有的新技术都在这里留下来。许多技术会很快消失,因为企业会发现他们不可行。


1.    虚拟现实
直到过去两年,虚拟现实才被大众熟识。但技术已经吸引了人们的想象力。它正在逐渐转变为主流。许多专家期望虚拟现实成为下一件大事。企业已经感受到了该技术带来的机会。例如,许多制造商都推出了自己的VR耳机。

2.    AI个人助理
人工智能在许多国家越来越受欢迎,用于日常工作。事实上,正因为AI设备的普及和实用,像亚马逊和Google这样的公司在提供最好的AI个人助理设备。家里的人们可以和这些设备通话,询问有关天气、温度、订单,控制灯的开启或关闭,为特定情况提供建议,翻译等。 Google Home是一个基于AI的设备,可以采用多种方式在日常生活中帮助人们。

3.    无人机
无人机技术是另一个在全球迅速崛起的新技术趋势。之前主要用于军事目的,直到现在,这种技术才用于商业目的。亚马逊最近才开始商用无人机。在接下来的几个月中,这项技术只会被一些公司用来传递信息、订单等等。 2017年,沃尔玛还将开始使用无人机进行交付。

4.   增强现实
增强现实是一项新技术,企业将以许多方式利用它们的优势。当人们开始玩Pokemon Go时,世界才了解到这项技术。现在,企业都在这项技术探索使用用途,如在现实世界中模拟3D模型。 B2B的增强现实允许用户获得他们业务的模拟模型,然后打印出来将其分发给销售团队。

5.    智慧家园
越来越多的人采用智能家居技术来保护家庭免受任何盗窃、破坏和入侵。该技术允许房主或业主在物业上保持紧密关系,并考虑到安全方面。

但技术不仅仅是安全和保障。它还为人们提供了一些有用的帮助,用于诸如供暖和空调家庭的一些作品。许多公司在这种快速发展的技术中感受到商机。他们已经开发了众多的智能家居产品。


6.    无人驾驶
引起人们和业主关注的另一种新时代技术是无人驾驶。实际上无人驾驶技术被视为一个巨大的商机。在未来的日子,我们将会看到无人驾驶的汽车。谷歌、Uber和Ford已经表现出打算自主制造自动驾驶汽车,竞争已经加剧。这是2017年的主要技术趋势。

7.     情感工具
情感工具技术是制造商迅速崛起的另一个业务领域。情感工具用于社会互动、竞赛和环境。这些工具很快就会用于智能家居和智能车。将来,协作式机器人我们将会看到。

8.     3D打印
消费级3D打印将无处不在,打印机的价格从2017年开始下降。3D打印机的价格已经从200美元到300美元跌至99美元。 随着成本的降低,技术将会很普遍。 可能是在2017年,人们开始给3D打印机作为礼物。 人们会打印多于购买东西。3D打印技术也已经用于打印公司标志设计

所以,这几个技术趋势,我们认为在2017年将继续占据主导地位。更多的技术正在兴起,继续创造新的商机。