显示标签为“开发板”的博文。显示所有博文
显示标签为“开发板”的博文。显示所有博文

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制作基于指纹的生物识别考勤系统的技术细节。

2017年7月13日星期四

如何使用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年5月23日星期二

Arduino Tian开发板:一个功能强大的天气预报中心



每天都在出现新的连接设备。 Arduino携手云平台一起加入这场战斗,于是出现了一个新的挑战者 - Arduino Tian!

使用python和经典Arduino框架,本教程将引导您将您的Arduino Tian开发板变成一个天气预报中心。 但由于Lucky扩展板有那么多传感器,所以涉及到的内容可能会更多些!

第一部分:所需的设备

使用LPCXpresso开发板调试外部的电路板

MCUXpresso IDE开发环境有一个主要的功能:支持LPC-Link2仿真调试器。通过这种方式,对于基于ARM的电路板,我可以使用这个功能强大的仿真调试器来调试。在NXP的众多LPCXpresso开发板上都有该LPC-Link2电路。那么为什么不用它来调试自制硬件?

概述
本文主要介绍如何使用LPCXpresso V2/V3开发板的LPC-Link-2电路来调试另一个电路板。您需要:
■    LPCXpresso V2 / V3开发板,例如LPCXpresso54102
■    10针SWD / JTAG电缆
■    跳线
■    Kinetis或LPC微控制器的目标电路板
■    需要USB电缆为两块电路板供电
■    调试器和IDE,例如MCUXpresso IDE

为LPC1549 LPCXpresso评估板开发基于mbed的项目

本文将主要介绍如何使用Visual Studio和VisualGDB为LPC1549 LPCXpresso开发板创建一个使用mbed框架的基础项目。

LPC1549 LPCXpresso开发板载一个LPC-Link调试器,可用于调试板载的固件。

为了能够从VisualGDB调试该开发板,我们将从Segger下载并安装一个特殊的固件,使其与Segger J-Link软件和VisualGDB兼容。

1.  在开始之前,请先从恩智浦网站下载并安装LPCScrypt软件。
2.  将LPCXpresso开发板连接到USB端口,如下所示:

在STM32F746G-DISCO开发板上使用Nabto + FreeRTOS的演示热泵应用

当使用STM32 ARM Cortex-M微控制器时,ST的免费嵌入式软件STM32Cube提供了所有必要的驱动程序和中间件组件,以减少初始的开发工作。在上述提到的中间件组件中,其中一个是非常受欢迎的FreeRTOS实时操作系统,Nabto正在努力建立一个强大的FreeRTOS + Nabto组合的解决方案。

我们最新推出AppMyProduct应用平台可帮助您快速开发远程控制设备的高质量应用程序。本文介绍了在STM32F746G-DISCO开发板上使用Nabto + FreeRTOS的演示热泵应用,该应用程序可由我们的Heat Control Ionic启动器应用程序控制。


2016年2月14日星期日

【NUCLEO-L476RG学习笔记】基于HAL库的GPIO例程介绍

在上一篇文章中,我们介绍了搭建Keil开发环境,并建立了第一个LED例程。现在我们来看看这个例程是怎么工作的。

根据NUCLEO-L476RG的原理图,可以看出LD2二极管连接到PA5,USER按键连接到PC13。
使用GPIO的第一步时使能时钟。该功能通过RCC(Reset and clock control)寄存器控制。所有的GPIO连接到AHB2总线。HAL库提供了专门的函数来启用GPIOA的时钟:
  1. __HAL_RCC_GPIOA_CLK_ENABLE
复制代码
该函数定义可在文件stm32l4xx_hal_rcc.h找到,其实现函数如下:
  1. #define __HAL_RCC_GPIOA_CLK_ENABLE()           do { \
  2.                                                        __IO uint32_t tmpreg; \
  3.                                                       SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN); \
  4.                                                      /* Delay after an RCC peripheral clock enabling */ \
  5.                                                      tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN); \
  6.                                                      UNUSED(tmpreg); \
  7.                                                      } while(0)
复制代码
通过实现函数可知,主要方式是通过RCC_AHB2ENR寄存器的第0位(GPIOA EN)置位来实现。

接下来我们需要定义一个GPIO_InitTypeDef结构体来设置GPIO的参数设置。
  1. GPIO_InitTypeDef  GPIO_InitStruct;
复制代码
该结构体有5个参数:
1. Pin 选择引脚编号
2. Mode 设置GPIO的工作模式
3. Pull 设置引脚的上拉/下拉
4. Speed 设置GPIO输出的最大频率
5. Alternate 设置选择引脚的复用功能
其中每项都有自己的选项
■  Pin:指定需要配置的GPIO管脚,该选项可以是以下的任何值:
   ■  GPIO_PIN_0:  选择引脚0;
   ■  GPIO_PIN_1: 选择引脚1;
   ■  GPIO_PIN_2:  选择引脚2;
   ■  GPIO_PIN_3:  选择引脚3;
   ■  GPIO_PIN_4:  选择引脚4;
   ■  GPIO_PIN_5:  选择引脚5;
   ■  GPIO_PIN_6:  选择引脚6;
   ■  GPIO_PIN_7:  选择引脚7;
   ■  GPIO_PIN_8:  选择引脚8;
   ■  GPIO_PIN_9:  选择引脚9;
   ■  GPIO_PIN_10:  选择引脚10;
   ■  GPIO_PIN_11:  选择引脚11;
   ■  GPIO_PIN_12:  选择引脚12;
   ■  GPIO_PIN_13:  选择引脚13;
   ■  GPIO_PIN_14:  选择引脚14;
   ■  GPIO_PIN_15:  选择引脚15;
   ■  GPIO_PIN_All: 选择所有的引脚;
   ■  GPIO_PIN_MASK:引脚掩码;
■  Mode:指定选择引脚的工作模式
   ■  GPIO_MODE_INPUT:悬浮输入模式
   ■  GPIO_MODE_OUTPUT_PP:推挽输出模式
   ■  GPIO_MODE_OUTPUT_OD:漏极开路输出模式
   ■  GPIO_MODE_AF_PP:复用功能推挽模式
   ■  GPIO_MODE_AF_OD:复用功能漏极开路模式
   ■  GPIO_MODE_ANALOG:模拟模式
   ■  GPIO_MODE_ANALOG_ADC_CONTROL:模拟模式,用于ADC转换
   ■  GPIO_MODE_IT_RISING:上升沿触发检测的外部中断模式
   ■  GPIO_MODE_IT_FALLING:下降沿触发检测的外部中断模式
   ■  GPIO_MODE_IT_RISING_FALLING:上升/下降沿触发检测的外部中断模式
   ■  GPIO_MODE_EVT_RISING:上升沿触发检测的外部事件模式
   ■  GPIO_MODE_EVT_FALLING:下降沿触发检测的外部事件模式
   ■  GPIO_MODE_EVT_RISING_FALLING:上升/下降沿触发检测的外部事件模式
   ■  Pull:指定引脚的上拉/下拉
   ■  GPIO_NOPULL:无上拉/下拉电阻
   ■  GPIO_PULLUP:带有上拉电阻
   ■  GPIO_PULLDOWN:带有下拉电阻
■  Speed:指定引脚的输出频率:
    ■  GPIO_SPEED_FREQ_LOW:输出频率最大为5MHz
    ■  GPIO_SPEED_FREQ_MEDIUM:输出频率范围5MHz-25MHz   
    ■  GPIO_SPEED_FREQ_HIGH:输出频率范围25MHz-50MHz
    ■  GPIO_SPEED_FREQ_VERY_HIGH::输出频率范围50MHz-80MHz

HAL库提供了GPIO的初始化函数HAL_GPIO_Init()。该函数声明位于stm32l4xx_hal_gpio.h文件中。

STM32F746G-DISCO探索板中文用户手册

UM1907用户手册  
STM32F7系列探索套件(STM32F746NG微控制器)

简介

STM32F746G-DISCO探索板是用于评估意法半导体基于ARM Cortex-M7内核的STM32F746NGH6微控制器的完整演示和开发平台。该微控制器具有4个I2C、6个SPI(其中3个可复用为单工I2S)、SDMMC、4个USART、4个UART、2个CAN、3个12位的ADC、2个12位的DAC、2个SAI、8到14位数码相机模块接口、内置320+16+4K字节的SRAM及1M字节的Flash、USB高速OTG、USB全速OTG、以太网MAC、FMC接口、四通道SPI接口、JTAG调试支持。该探索板提供所需的一切,使得用户可以快速上手并且方便地开发应用程序的一切。

探索板上全面的的硬件功能,有助于评估几乎所有的外设(USB高速OTG、USB全速OTG、10/100Mb以太网、microSD卡、USART、带有插孔输入和输出的SAI音频DAC立体声音频、MEMS数字麦克风、SDRAM、四通道SPI Flash存储芯片、带有电容式多点触控面板的4.3寸彩色TFT-LCD、SPDIF RCA输入等),并且开发自己的应用程序。 Arduino Uno V3接口使其能够根据具体应用方便地连接扩展板或者子板。集成的ST-LINK/V2-1提供了一个STM32微控制器的嵌入式调试器和编程器。

图1. STM32F746G-DISCO探索板(顶视图)
STM32F746G-DISCO中文用户手册.jpg

图2. STM32F746G-DISCO探索板(底视图)
001.jpg




UM1974 - STM32 Nucleo-144开发板中文用户手册

简介
STM32 Nucleo-144开发板(NUCLEO-F207ZG、NUCLEO-F303ZE、NUCLEO-F429ZI、NUCLEO-F446ZE、NUCLEO-F746ZG)为用户试验新想法提供了一条成本低廉且灵活的途径,并且用户可以依据从性能、功耗和功能的不同组合中选择出的任何STM32微控制器产品线构建原型。Arduino Uno的扩展接口ST Zio接口可以访问更多的外设,并且通过选择众多的专属扩展板,ST Morpho接口很容易地扩展STM32 Nucleo 开放式开发平台的功能。STM32 Nucleo-144开发板集成了调试器/编程器 ST-LINK/V2-1 ,因此不需要任何单独的仿真器。STM32 Nucleo 板自带 STM32 全面的软件 HAL 库,其中包含各种打包的软件示例,并且直接访问ARM mbed 在线资源。
图1. Nucleo 144开发板(顶视图)
1.jpg

图2. Nucleo 144开发板(底i视图)
DM00244518.jpg




STM32 Nucleo-F746ZG开发板入门指南

全新的Nucleo-F746终于到手上了,这是ST的Nucleo-144产品线的第一个开发套件,而且可以说,如果考虑到一个正品的Arduino DUE价格超过40美元且其MCU只是Cortex-M3内核,Nucleo-F746的街机的价格(大约23美元)大概是一个创客在市场上可以找到的最好的开发套件。

nucleo-144-vs-nucleo-64.jpg

和经典的Nucleo-64相比,该开发板更让人印象深刻:更宽并提供了很多更标准的外设。现在用户LED有三个(红、蓝和绿),并且电源指示灯变成了绿色。最大的变化时,该开发板配备了LAN接口、磁力计和SMSC物理层收发器PHY。这意味着,我们可以使用运行在216MHz的功能强大的Cortex-M7内核开始开发物联网应用。和ST的以一个低价的F7开发板STM32F746-Discovery相比,它并没有提供LCD显示屏。但是,Nucleo-144通过Zio接口引出了大多数MCU的信号I/O,而Discovery-F7仅有少量的信号布线到Arduino式的连接器。如果你想要使用Nucleo-144开发一个定制产品,那么它是最好的选择。

在这篇文章中,我将一步步展示开始使用这个奇妙般的硬件。我们将使用LwIP栈在Nucleo上创建一个简单的Web服务器。该Web应用允许我们通过使用bootstrap和jQuery和Nucleo板上的LED及用户按键进行交互。以下视频展示了HTTP服务器时如何工作的。

NUCLEO开发板硬件电路分析(四) - ST-LINK编程/调试电路


NUCLEO硬件电路分析(四) - ST-LINK编程/调试电路

NUCLEO板嵌入了ST-LINK V2-1调试仿真器,具有虚拟串口功能、大容量存储功能以及仿真调试,和ST-LINK V2不同的是,板载的仿真器仅支持SWD仿真模式,不支持SWIM接口。
ST-LINK V2-1的MCU采用LQFP48封装的STM32F103CBT6,具有128KB的内部Flash和20KB的SRAM,最高运行主频可达71MHz。外设接口比较丰富,有两个12位的ADC、两个I2C、两个SPI、三个USART、USB和CAN接口。
NUCLEO板识别码(Board Ident):STM32F103的PC13和PC14作为NUCLEO板的识别码,当PC13=0时,认为该板属于NUCLEO系列。
主时钟:STM32F103外接8MHz的晶振,采用外部高速时钟信号HSE作为主时钟。
虚拟串口功能:STM32F103的PA2和PA3作为USART使用,与目标MCU的串口进行通讯,作为虚拟串口的物理实现接口。
SWD调试接口:当CN2的跳线短接时,ST-LINK/ V2-1可以编程调试NUCLEO板,这时用到4个信号:SWCLK、SWDIO、T_NRST和T_SWO。当当CN2的跳线短接时,ST-LINK/ V2-1可以作为独立的编程器通过CN4接口对外部应用程序的MCU进行编程调试。CN4接口的定义如下:
引脚
CN4
描述
1
VDD_TARGET
应用程序的VDD
2
SWCLK
SWD 时钟
3
GND
地
4
SWDIO
SWD 数据输入/输出
5
NRST
目标MCU的RESET
6
SWO
保留

LED指示灯:ST-LINk通过LED指示灯显示通讯连接状态,可以显示绿色、橙色和红色三种颜色。LED指示灯LD1采用的是安华高科技AVAGO的多色LED灯HSMF-A201-A00J1,该指示灯的手册可以在安华高的官网下载,下载地址:http://docs.avagotech.com/docs/AV02-0501EN。 LD1默认的颜色是红色。 LD1变成绿色,表明PC和ST-LINK / V2-1的通讯正在进行中,其他通讯状态信息可以参考NUCLEO板的用户手册UM1724。LD1由微控制器的PA9控制,实现原理如下:当控制脚PA9输出高电平时,LD1发出红光;当控制脚PA9输出低电平时,LD1发出绿光;当控制脚PA9输出一个1 kHz左右的频率时,高、低电平的变化使得LD1指示灯交替发红、绿光,但因其颜色变化频率较快,人眼所见光为橙色。在设计过程中,应注意,LD1的电流不应低于5mA。

NUCLEO开发板硬件电路分析(三) - 扩展接口部分电路

NUCLEO硬件电路分析(三) -  扩展接口部分电路

在上一篇《NUCLEO硬件电路分析(二) - MCU电路分析》我们分析了NUCLEO的MCU部分设计电路,本篇文章主要介绍一下NUCLEO板的扩展接口电路设计部分。
NUCELO带有两种类型的扩展资源:Arduino Uno V3接口和ST Morpho扩展插头,其中ST Morpho扩展插头支持访问所有STM32的I/O。

Arduino Uno V3接口
下图以NUCLEO-F103为例,展示了Arduino接口对应MCU的IO引脚或功能。

ST Morpho扩展插头
下图以NUCLEO-F103为例,展示了ST Morpho扩展插头对应MCU的IO引脚或功能。
NUCLEO板的扩展接口电路部分位于设计文件Connectors.SchDoc中。Arduino接口由CN5、CN6、CN8和CN9端子共同组成,采用的是单排插座的方式。ST Morpho扩展接口由CN7和CN10组成,采用的是双排19×2插针。

参考资料
2.  MB1136C_schematic_layout图纸 http://www.stmicroelectronics.co ... cleo_64pins_sch.zip

NUCLEO开发板硬件电路分析(二) - MCU电路分析

NUCLEO硬件电路分析(二) - MCU电路分析

在上一篇《NUCLEO硬件电路分析(一) - 概述及电源电路》我们介绍了NUCLEO的整体设计,并对其中的电源部分进行了介绍,本篇文章主要介绍一下NUCLEO板的MCU电路设计部分。

NUCLEO板专为64引脚LQFP封装的STM32微控制器设计。NUCLEO板的MCU部分位于设计文件MCU_64.SchDoc中,从图中可以看出MCU分为两个部分:IO引脚部分U5A和MCU电源部分U5B。

IO引脚部分U5A:
MCU的大多数引脚都连接到到扩展接口,如PA0、PB4、PC7。下面介绍几个特殊的IO引脚使用:PA2和PA3。这两个引脚可以通过连接焊桥SB62和SB63作为普通的IO使用,也可以通过连接焊桥SB13和SB14,连接至ST-LINK,作为虚拟串口的物理通讯方式。默认是作为虚拟串口使用。PA13、PA14和PB3没有作为普通的IO使用,而是作为SWD调试仿真的TMS、TCK和SWO;其中PA13作为SWD的数据输入/输出SWDIO,PA14作为SWD的时钟信号SWCLK。PC13作为USER用户按键的输入端口。

电源部分U5B:
在MCU的电源部分中,每个VDD端口都放置着100nF的去耦电容。在这部分中,主要介绍两个方面:复位和时钟。
MCU可以通过两种方式进行复位,一种是通过使用复位按钮B2,另一种是通过清零NRST信号。ST-LINK的PB0连接至MCU的复位引脚NRST,便于ST-LINK对MCU进行仿真监控。
NUCLEO的时钟源:有四种方法可以配置相应的外部高速时钟外部(HSE)的引脚:来自ST-LINK的MCO: ST-LINK MCU的MCO输出用来作为输入时钟。该时钟频率不能改变,固定为8MHz,连接到STM32微控制器的OSC_IN-PF0/PD0/PH0。 来自板载的X3晶体振荡器;来自外部PF0/ PD0/ PH0的振荡器;通过连接器CN7引脚29的外部振荡器 不使用HSE。

参考资料:
1.  UM1724 - STM32 Nucleo开发板用户手册 http://www.yiboard.com/thread-65-1-1.html
2.  MB1136C_schematic_layout图纸 http://www.stmicroelectronics.co ... cleo_64pins_sch.zip

NUCLEO开发板硬件电路分析(一) - 概述及电源电路

NUCLEO硬件电路分析(一) - 概述及电源电路


概述
ST的NUCLEO板的设计文件是开源的,所以很容易在官网找到NUCLEO板的原理图及PCB布线图。ST绘图使用的EDA软件是国内比较常见的Altium Designer。官网提供的工程文件名是MB1136C_schematic_layout,下载地址:http://www.stmicroelectronics.co ... cleo_64pins_sch.zip。该图纸使用的MCU是LQFP64的封装形式,适用于全部现有的NUCLEO板系列。
打开下载的文件,可以看到文件夹目录下共包含8个文件,其中:MB1136.PrjPCB是Altium Designer的工程文件;MB1136.SchDoc是NUCLEO板整体设计的原理图及电源电路;MCU_64.SchDoc是MCU部分的设计原理图;Connectors.SchDoc是NUCLEO板的对外接口部分的设计原理图文件;ST_LINK_V2-1.SCHDOC是板载的编程器/调试器ST_LINK_V2-1的原理图;MB1136.PcbDoc是NUCLEO的PCB布线图;MB1136.SCHLIB是工程使用的元件库;MB1136.pdf是原理图的PDF版本。可以看出ST的NUCLEO板提供的资料挺全的。
NUCLEO的原理图采用的是自上而下的层次图设计的方式,MB1136.SchDoc是层次图设计中的模块连接结构图,该原理图中放置着U_MCU_64、U_Connectors和U_ST_LINK_V2-1三个电路方块图,分别对应着MCU_64.SchDoc、Connectors.SchDoc和ST_LINK_V2-1.SCHDOC三个原理图文件。


NUCLEO板的电源设计
NUCLEO板的电源部分的原理图设计电路位于MB1136.SchDoc文件中。原理图如下:
在NUCLEO用户手册UM1724的5.3 电源供电和电源选择章节中提到“电源供电可以由PC主机通过USB电缆提供,也可以外部电源CN6或者CN7的电源引脚VIN(7V-12V),E5V(5V)或+3V3提供”,下面根据原理图依次介绍:

■  从USB接口U5V接入电源
STM32 NUCLEO核心板和扩展板的所有部件都可以由ST-LINK的USB连接端口CN1(U5V或VBUS)供电。当JP5的引脚1与引脚2之间的跳线短接时,U5V与+5V的网络连接,NUCLEO板由USB提供的电源(U5V)供电。
这里应当注意,如果NUCLEO板由USB充电器供电,这时因为没有USB枚举过程,所以LD3指示灯将会永久处于灭状态,而且目标MCU未通电。正常情况下,USB枚举成功后,ST-LINK发出一个信号,使能PWR_ENn(低电平有效)。PWR_ENn控制P沟道的MOS管T2(STS7PF30L)导通,U5V才会与+5V相连。
STS7PF30L的门限电压Vgs在1V-2.5V之间,典型值是1.6V,能够提供7A的Id电流,而且在导通时,DS之间的电阻Rds非常小。具体参数可以参考STS7PF30L的数据手册。

■  外接电源输入:VIN和EV5
电源VIN连接着CN6的8脚CN7的24脚,通过低压差线性稳压器U3(LD1117S50TR)输出恒定的电压5V,当JP5的引脚2与引脚3之间的跳线短接时,NUCLEO板由外部输入电源供电。LD1117S50TR最大支持输出800mA的电流,具体的电气参数如下:
电源EV5连接CN7的6脚,与+5V直接相连。EV5与U3之间有一个二极管D4,防止电流倒灌至U3,引起U3损坏。


以上的两种外部电源输入都会通过U4(LD39050PU33R)转换成+3.3V,通过JP6连接至VDD,向NUCLEO的MCU部分供电。