[MCU新闻] NUC121 USB单片机

[复制链接]
 楼主| zhuomuniao110 发表于 2019-11-18 15:44 | 显示全部楼层 |阅读模式
640035dd24bd48e429.png
NUC121ZC2AE 为32位USB单片机系列,支持主频最高可至50 MHz、 32 KB Flash、8 KB SRAM、12位 ADC、内置48 MHz高精度高速RC晶振并支持 USB 传输不须外挂晶体(Crystal-less)与17路 PWM/BPWM,使得 NUC121ZC2AE 于USB传输与控制处里相当有效率。NUC121ZC2AE 支持工业等级工作温度范围(-40℃~105℃)与宽广的工作电压(2.5V~5.5V)与高的抗干扰能力(8KV ESD, 4KV EFT),提供QFN33封装。
NUC121ZC2AE 也内嵌一个额外的安全保护Flash区块(SPROM, Security Protection ROM),提供一个独立且安全加密执行区域以便保护开发者的知识产权。
应用领域:
USB复合装置、电竞鼠标/键盘/手柄、USB Type-C 耳机、工业自动化、物联网装置等。

 楼主| zhuomuniao110 发表于 2019-11-18 15:44 | 显示全部楼层
关键特性:

內核(Core)
- ARM® Cortex®-M0 32位单片机

- 工作频率可达50 MHz

- 单周期 32-位硬件乘法器

内存(Memory)
- 32 KB应用程序(APROM)

- 4.5 KB在系统编程(ISP)加载程序(LDROM)

- 512 B安全保护 (SPROM)

- 8 KB内嵌SRAM支持PDMA模式

- 可编程数据储存(Data Flash)

- 支持程序更新方式:

在线系统更新ISP (In-System Programming)
在线电路更新ICP (In-Circuit Programming)
在线应用程序更新IAP (In-Application Programming)
PDMA (Peripheral DMA)
- 5个独立可编程的通路independent configurable channels

- 单一(single)或突冲(Burst)传输型态

模拟转数字转换器(ADC)
- 支持12位 SAR ADC

- 最多4路单端模拟输入通道或2路差分通道

- 支持PDMA 传输

PWM/BPWM
- 17路 PWM/BPWM/Capture 最高时钟频率可达100 MHz

- 针对三种不同事件,PWM/BPWM支持触发ADC

- PWM 支持煞车(brake)功能

周边(Connectivity)
- 一组USCI 接口可设置为UART、SPI与I²C

- 独立的一组UART, 一组SPI/I²S与两组I²C

- 不须外挂晶体(Crystal-less) USB 2.0 FS

时钟控制(Clock Control)
- 内部48 MHz 高速震荡器 (HIRC)

- 内部10 kHz 低速震荡器 (LIRC)

- 外部4~24 MHz 高速晶振 (HXT)

- 外部32.768 kHz 低速晶振 (LXT)

- PLL 高达 100 MHz

内置温度传感器(1℃ 分辨率)
工作电压 : 2.5至5.5V
工作温度 : -40℃至105℃
 楼主| zhuomuniao110 发表于 2019-11-18 15:45 | 显示全部楼层
DS_NUC121_125_Series_EN_Rev1.02.pdf (2.24 MB, 下载次数: 13)
 楼主| zhuomuniao110 发表于 2019-11-18 15:46 | 显示全部楼层
HW_NUC121_Gaming_LED_Lighting_V1.0.zip (1.04 MB, 下载次数: 8)
HW_NUC121_125_Gaming_Mouse_V1.0.zip (280.25 KB, 下载次数: 8)
这是用这个系列单片机做的鼠标电路。
 楼主| zhuomuniao110 发表于 2019-11-18 15:48 | 显示全部楼层
SW_NUC121_125_Gaming_Mouse_V1.2.zip (2.4 MB, 下载次数: 8)
这个是上面那个电路配套软件。
 楼主| zhuomuniao110 发表于 2019-11-18 15:48 | 显示全部楼层
  1. /**************************************************************************//**
  2. * [url=home.php?mod=space&uid=288409]@file[/url]     main.c
  3. * [url=home.php?mod=space&uid=895143]@version[/url]  V3.00
  4. * [url=home.php?mod=space&uid=247401]@brief[/url]    Toggle PB.4 to turn on/off LED.
  5. *
  6. * [url=home.php?mod=space&uid=17282]@CopyRight[/url] (C) 2016 Nuvoton Technology Corp. All rights reserved.
  7. ******************************************************************************/
  8. #include "stdio.h"
  9. #include "NuMicro.h"

  10. void SYS_Init(void)
  11. {

  12.     /*---------------------------------------------------------------------------------------------------------*/
  13.     /* Init System Clock                                                                                       */
  14.     /*---------------------------------------------------------------------------------------------------------*/

  15.     /* Enable HIRC clock (Internal RC 48MHz) */
  16.     CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);

  17.     /* Wait for HIRC clock ready */
  18.     CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);

  19.     /* Select HCLK clock source as HIRC and HCLK clock divider as 1 */
  20.     CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));

  21.     /* Enable UART module clock */
  22.     CLK_EnableModuleClock(UART0_MODULE);

  23.     /* Select UART module clock source as HIRC/2 and UART module clock divider as 1 */
  24.     CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UARTSEL_HIRC_DIV2, CLK_CLKDIV0_UART(1));

  25.     /* Update core clock */
  26.     SystemCoreClockUpdate();

  27.     /*---------------------------------------------------------------------------------------------------------*/
  28.     /* Init I/O Multi-function                                                                                 */
  29.     /*---------------------------------------------------------------------------------------------------------*/

  30.     /* Set PB multi-function pins for UART0 RXD(PB.0) and TXD(PB.1) */
  31.     SYS->GPB_MFPL = (SYS->GPB_MFPL & (~SYS_GPB_MFPL_PB0MFP_Msk)) | SYS_GPB_MFPL_PB0MFP_UART0_RXD;
  32.     SYS->GPB_MFPL = (SYS->GPB_MFPL & (~SYS_GPB_MFPL_PB1MFP_Msk)) | SYS_GPB_MFPL_PB1MFP_UART0_TXD;

  33. }

  34. void UART0_Init()
  35. {
  36.     /*---------------------------------------------------------------------------------------------------------*/
  37.     /* Init UART                                                                                               */
  38.     /*---------------------------------------------------------------------------------------------------------*/
  39.     /* Reset UART0 */
  40.     SYS_ResetModule(UART0_RST);

  41.     /* Configure UART0 and set UART0 baud rate */
  42.     UART_Open(UART0, 115200);
  43. }

  44. void delay_loop(void)
  45. {
  46.     __IO uint32_t j;

  47.     for (j = 0; j < 60000; j++);

  48.     for (j = 0; j < 60000; j++);

  49.     for (j = 0; j < 60000; j++);

  50.     for (j = 0; j < 60000; j++);
  51. }

  52. /*---------------------------------------------------------------------------------------------------------*/
  53. /*  Main Function                                                                                          */
  54. /*---------------------------------------------------------------------------------------------------------*/
  55. int32_t main(void)
  56. {
  57.     /* Unlock protected registers */
  58.     SYS_UnlockReg();

  59.     /* Init System, peripheral clock and multi-function I/O */
  60.     SYS_Init();

  61.     /* Lock protected registers */
  62.     SYS_LockReg();

  63.     /* Init UART0 for printf */
  64.     UART0_Init();

  65.     printf("\n\nCPU [url=home.php?mod=space&uid=72445]@[/url] %d Hz\n", SystemCoreClock);
  66.     printf("+-------------------------------------------------+\n");
  67.     printf("|        NUC121/125 Toggle LED Sample Code        |\n");
  68.     printf("+-------------------------------------------------+\n\n");

  69.     /* Configure PB.4 as Output mode */
  70.     PB4 = 1;
  71.     GPIO_SetMode(PB, BIT4, GPIO_MODE_OUTPUT);

  72.     while (1)
  73.     {
  74.         PB4 ^= 1;
  75.         delay_loop();
  76.     }

  77. }
IO使用也方便,可以位操作。
yiy 发表于 2019-11-18 17:36 | 显示全部楼层
这个系列不错,学习一下。
zhuotuzi 发表于 2019-11-18 20:16 | 显示全部楼层
USB家族性价比比较好
dongnanxibei 发表于 2019-11-21 13:56 | 显示全部楼层
  PB4 ^= 1;
这种操作特别亲切。
tianxj01 发表于 2019-11-21 17:48 | 显示全部楼层
zhuomuniao110 发表于 2019-11-18 15:44
关键特性:

內核(Core)

这个可以有。
价格合适的,则性价比就很高。
21mengnan 发表于 2019-11-21 20:17 | 显示全部楼层
可以加密保护不错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

232

主题

3495

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部