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.hqwc.cn/news/339023.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web第一次作业

题1&#xff1a; <form action"#" method"post"><table><tr><td>用户名&#xff1a;</td><td><input type"text" name"UserName" maxlength"20" size"15"></td>…

OceanBase原生分布式数据库

1.历史背景 在Java Web项目中&#xff0c;常常使用免费开源的MySQL数据库存储业务数据&#xff0c;按业界经验MySQL单库超过多大数据体量&#xff0c;或单表超过几百万条数据后就会出现查询变慢的情况&#xff0c;单实例数据库只能扩展物理资源(CPU、内存)&#xff0c;来提升查…

【读书笔记】《白帽子讲web安全》浏览器安全

目录 第二篇 客户端脚本安全 第2章 浏览器安全 2.1同源策略 2.2浏览器沙箱 2.3恶意网址拦截 2.4高速发展的浏览器安全 第二篇 客户端脚本安全 第2章 浏览器安全 近年来随着互联网的发展&#xff0c;人们发现浏览器才是互联网最大的入口&#xff0c;绝大多数用户使用互联…

【Linux】应用与驱动交互及应用间数据交换

一、应用程序与 Linux 驱动交互主要通过以下几种方式&#xff1a; 1. 系统调用接口&#xff08;System Calls&#xff09;: 应用程序可以通过系统调用&#xff0c;如 open(), read(), write(), ioctl(), 等来与设备驱动进行交互。这些调用最终会通过内核转发到相应的驱动函数…

23种设计模式精讲,配套23道编程题目 ,支持 C++、Java、Python、Go

关于设计模式的学习&#xff0c;大家应该还是看书或者看博客&#xff0c;但却没有一个边学边练的学习环境。 学完了一种设计模式 是不是应该去练一练&#xff1f; 所以卡码网 针对 23种设计&#xff0c;推出了 23道编程题目&#xff0c;来帮助大家练习设计模式&#xff0c;地…

HDFS相关API操作

文章目录 API文档环境配置API操作准备工作创建文件夹文件上传文件下载文件删除文件的更名和移动获取文件详细信息 API文档 HDFS API官方文档&#xff1a;https://hadoop.apache.org/docs/r3.3.1/api/index.html 环境配置 将Hadoop的Jar包解压到非中文路径&#xff08;例如D:…

打包时,自动更新版本号,清空缓存

1.创建 addVersion.js 文件 let fs require(fs);function getPackageJson(){return JSON.parse(fs.readFileSync(./package.json)); } try{let packageJson getPackageJson();//把分割的数组项转成数字&#xff0c;不然拼接就是字符串拼接let arr packageJson.version.spl…

reactNative0.71版本的使用

开发环境配置 参考reactNative 官网 版本选中0.71 打包配置 1. IOS 打开项目 -> 进入ios目录->执行命令 pod install ->项目名称.xcworkspace -> 使用xcode打开->配置证书 证书配置截图如下 &#x1f4a1;tips&#xff1a;TARGETS目录下会有多个文件&#x…

试试这个开源神器 55K star! 开箱即用

还记得以前工作上遇到困难&#xff0c;会申请开发大神远程帮忙&#xff0c;那时候用的都是TeamViewer&#xff0c;但是随着TeamViewer的收费&#xff0c;这些都已成为过往。 今天我们推荐的开源项目就是让你可以轻松平替TeamViewer&#xff0c;一款远程桌面神器&#xff0c;本…

创新工具:2024年开发者必备的一款表格控件

前言 在现代工作环境中&#xff0c;信息的处理和管理是至关重要的。表格是一种常见的数据呈现和整理工具&#xff0c;被广泛应用于各行各业。然而&#xff0c;随着技术的不断发展&#xff0c;市场对表格控件的需求也越来越高。随着工作效率的重要性日益凸显&#xff0c;一款高…

1.10 Unity中的数据存储 JSON

一、介绍 Json是最常用也是目前用的比较多的一种&#xff0c;超轻量级&#xff0c;可便捷性使用&#xff0c;平时用到比较多的都是解析Json和往Json中添加数据、修改数据等等JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式&#xff0c;它基于ECMAScr…

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布————C++

目录 [NOIP2014 提高组] 生活大爆炸版石头剪刀布题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 解题思路Code调用函数的Code&#xff08;看起来简洁一点&#xff09;运行结果 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 …