当前位置: 首页 > news >正文

MCU FT61F14x入门

目录

  • 前言
  • 一、CMIDE的使用
  • 二、系统时钟与睡眠
    • 2.1 上电复位 (POR)与系统复位
    • 2.2 振荡器和系统时钟
    • 2.3 SLEEP睡眠模式 (POWER-DOWN)
    • 2.4 低电压检测/比较器 (LVD)
  • 三、I/O端口与中断
  • 四、串口USART
  • 五、定时器
  • 六、ADC
  • 七、EEPROM

前言

  FT61F14x是辉芒微电子的微控制器,是一款8位基于EEPROM的RISC MCU。官方提供CMIDE3.0.9可用于编译调试,本文主要讲解其开发环境及部分外设使用,资源见附件。官网链接:https://www.fremontmicro.com/#/home


一、CMIDE的使用

  首先需要新建工程,直接编写并编译可能会出现以下链接警告
在这里插入图片描述
  点击工程->新建工程,设置工程名以及工程路径,然后选择相应的芯片类型,最后点击OK就可以一键生成工程
在这里插入图片描述
  对生成工程直接点击编译,弹出Options选项配置,可以按照下图修改,点确定便可编译成功。
在这里插入图片描述
注意:提示系统占用不可以删除和修改的地方,不要删除,否则会提示链接报警

二、系统时钟与睡眠

2.1 上电复位 (POR)与系统复位

在这里插入图片描述
  上电过程,即 VDD 从低于 Power-On-Reset 电压(VPOR)上升至高于 VPOR 的过程。当 CPU 重新上电时,VDD 可能没有完全掉电至 0V。初始化配置由CMIDE 界面设置,不能通过指令修改。初始化配置时序如下:
在这里插入图片描述
  与 POR 不同,系统复位(system reset) 并不会完全复位。系统复位时,CPU 是否启动初始化配置过程则取决于复位触发类型。若启动初始化配置则空闲等待4ms,然后重新加载初始化配置寄存器值,如果使能 PWRT 将额外延时64ms,随后系统正常启动。在系统复位中:

  • 除初始化配置寄存器外,POR 过程中被重置的寄存器在系统复位时也会被同样重置;
  • 程序计数器 PC = 0x00, 指令寄存器 = “NOP”, 堆栈指针 = “TOS” (栈顶);

  除仿真调试的 OCD(On-Chip Debugger) 模块外,以下 7 种事件可触发系统复位:

  1. 欠压复位 (BOR / LVR) – 总会启动初始化配置;
  2. 非法指令复位;
  3. 看门狗复位 (WDT,CPU 处于非 SLEEP 状态);
  4. EMC 复位– 总会启动初始化配置;
  5. 软件复位 (执行指令 “RESET”);
  6. 堆栈溢出复位 (上溢或下溢);
  7. 外部 I/O 复位 (/MCLRB) – 总会启动初始化配置 ( ≥ VerB 芯片)。

在这里插入图片描述
  系统复位的大多数设置均由 IDE 界面配置,而不能通过指令修改。系统复位相关寄存器汇总:
在这里插入图片描述

2.2 振荡器和系统时钟

在这里插入图片描述
  系统时钟(SysClk) 可通过指令选择为内部高速振荡器 HIRC 16MHz,内部低速振荡器 LIRC 32KHz,或外部振荡器。如果选择外部振荡器,那么由初始化配置寄存器 “FOSC”选定3 种外部振荡器之一。系统时钟还可通过指令进一步选择为内部或外部振荡器的分频 。系统时钟用于产生指令时钟(Instruction Clock):
        指令时钟 = SysClk / N ; N = 2 for 2T, 4 for 4T
  SysClk 系统时钟源设置相关用户寄存器:
在这里插入图片描述
  通常我们选择内部时钟即SCS=1,不分频即MCKCF=0111,使用OSCCON寄存器如下(SCS为OSCCON的BIT0位设置):

	OSCCON = 0B01110001;	//WDT 32KHZ IRCF=111=16MHZ//Bit0=1,系统时钟为内部振荡器//Bit0=0,时钟源由FOSC<2:0>决定即编译选项时选择

2.3 SLEEP睡眠模式 (POWER-DOWN)

  睡眠模式下,指令时钟关闭,指令执行停止,大多数模块掉电以降低功耗。除指令时钟外,其他模块可根据需求在 SLEEP 模式下保持运行:
在这里插入图片描述
  SLEEP示例:

SLEEP(); 	//SYSCFG.h里定义#define	SLEEP()		asm("sleep")
NOP(); 		// 中断方式唤醒

  从睡眠中唤醒有 2 个基本原则:

  • 基于时间,即 CPU 在一定的时间后醒来。建议选择 LIRC 作为计时的时钟源,因为 LIRC 比 HIRC的功耗更低。
  • 基于事件,即触发 POR,系统复位,仅唤醒而不产生中断,以及产生中断的事件,如 LVD,ADC,EEPROM 写完成,外部管脚中断。

注意

  1. 如果在执行 SLEEP 指令之前发生中断(中断标志位置 1 且其中断使能,但全局中断 GIE 禁止),则SLEEP 指令将作为 NOP 执行,不会进入睡眠模式。
  2. 由于同步延时,将中断标志位清 0 之后,至少要等两条指令才可以执行 SLEEP 指令,否则不会进入睡眠模式。
  3. 从睡眠中唤醒将清零 WDT。
  4. 使用中断方式从 SLEEP 中唤醒时,将先执行下一条指令,然后再调用中断服务程序。为了避免重复执行,建议紧跟 SLEEP 的后面写为 NOP 指令。

2.4 低电压检测/比较器 (LVD)

  LVD 的工作原理与LVR类似,但是所有控制位和参数选择位均由用户指令设置,而不是初始化配置时。LVD 相关寄存器汇总:
在这里插入图片描述

三、I/O端口与中断

四、串口USART

五、定时器

  

六、ADC

七、EEPROM

  

http://www.lryc.cn/news/277759.html

相关文章:

  • 星火大模型——多模态API调用(图像+文本)
  • 计算机基础面试题 |22.精选计算机基础面试题
  • kafka连接失败时springboot项目启动停机问题
  • 【算法题】46. 全排列
  • 可视可交互!在全志H618上用OpenCV读取图像显示到PyQt5窗口上
  • 现代密码学 补充1:两种窃听不可区分实验的区别
  • 多功能号卡推广分销管理系统 流量卡推广分销网站源码-目前市面上最优雅的号卡系统
  • MySQL语法及IDEA使用MySQL大全
  • 分布式系统网关和sentinel
  • 无法访问Bing网站 - 解决方案
  • Spring Boot 自动装配原理
  • golang如何生成csv文件
  • 你真的掌握了“C语言分支循环”吗
  • Apollo计算几何算法(一)
  • 计算机网络、浏览器相关高频面试题
  • 遥感单通道图像保存为彩色图像
  • 如何将字符串转换为整数
  • 如何在Linux上安装使用达芬奇DaVinci-Resolve视频剪辑|附带格式转换脚本
  • FlinkAPI开发之数据合流
  • 11 个 Python全栈开发工具集
  • 【GDAL】Windows下VS+GDAL开发环境搭建
  • 基于sumo实现交通灯控制算法的模板
  • 设计模式之单例模式的懒饿汉
  • 多平台多账号一站式短视频管理矩阵营销系统下载
  • go work
  • 基于JavaWeb+BS架构+SpringBoot+Vue智能菜谱推荐系统的设计和实现
  • SpringSecurity集成JWT实现后端认证授权保姆级教程-授权配置篇
  • 关系型非关系型数据库区别,以MongoDB为例在express中连接MongoDB示例
  • Java版商城:Spring Cloud+SpringBoot b2b2c实现多商家入驻直播带货及 免 费 小程序商城搭建的完整指南
  • 【Spring Boot】SpringBoot maven 项目创建图文教程