本帖最后由 mxkw0514 于 2022-12-2 20:29 编辑
#申请原创# 引言
在上数字电子技术这门课程的时候,我们知道实现一些逻辑运算可以通过各种门控电路来实现,整个流程大概是:真值表——>逻辑函数——>门控电路设计;后来学完51单片机课程后,发现实现逻辑运算竟然可以通过几句C语言就能实现;再后来,发现CPU完成任务是有时间顺序的,对此,合理安排CPU的资源是很有必要的。像这次申请的ATtiny1627单片机内部集成了一个自定义逻辑外设(CCL),可以单独完成逻辑运算功能,提高系统整体运行效率。下面开始对CCL外设进行测评:
一、开箱展示
前几天收到ATtiny1627 Curiosity Nano评估工具包了,如图1-1(a)所示,里面包括两条排针和一块板卡,其中排针可以直接插在错位的焊盘上,比较牢固,无需再进行焊接,组装好的正面实物如图1-1(b)所示。ATtiny1627 Curiosity Nano板卡主由MCU、电源、调试器、USB接头、按键和LED灯组成,如图1-2所示,其中,在板卡的主回路上一个贴片的自恢复保险丝,可以避免MCU被过大的瞬态电流烧坏,另外,MCU的32.768KHz晶振没有焊接,用户可根据需求购买元器件焊接。
(a)板卡反面图
(b)板卡正面图
图1-1 ATtiny1627 Curiosity Nano评估工具包
图1-2 ATtiny1627 Curiosity Nano评估工具包硬件组成
二、CCL外设测评
2.1 CCL外设简介
CCL(Configurable Custom Logic)是一种可编程的自定义逻辑外设,作为一种处在外围设备和外部设备之间的“胶合逻辑”使用,可以连接到MCU的引脚或者内部的其它外设。用户可以依靠该外设实现一些独立于CPU到的自定义的逻辑功能,省去了外部逻辑芯片的使用。CCL外设提供了许多查找表(LUT),每个LUT包含3个输入、1个真值表、1个同步器/滤波器、和1个边缘检测器组成【1】,其中,每个LUT可以生成包含3输入1输出的逻辑函数,不同的LUT也可以组合使用,完成更复杂的逻辑功能。CCL外设在数据手册中的框图如图2-1所示【2】。
图2-1 CCL外设框图
2.2 CLC外设实验
假设真实世界存在一个未命名的事件,该事件有3个自变量,每个自变量只有2种状态,总共包含8种输出结果,每一种结果也只有2种状态,对其进行简化处理后所得到的真值表如图2-2所示,现在需要在不占用CPU资源的情况下,获得任何一种自变量组合结果下的输出结果,并将该结果在MCU的引脚上显示。
图2-2 未命名的真值表
对于学过数字电路的我们可能会用卡洛图来求真值表的逻辑函数,可以用于最后结果的检验,这里我们做出该真值表的卡洛图如图2-3,对卡洛图进行简单处理,可以求得上述真值表的逻辑函数为F=AB'C'+A'C+ABC',但是如何将该逻辑函数用单片机实现并且又要独立于CPU呢?这时我们便可以借助单片机内部的CLC外设了,下面将用MPLAB X IDE软件的MCC模块来完成ATtiny1627外设的配置。
图2-3 未命名真值表的卡洛图
打开MPLAB软件,使用USB线将ATtiny1627板卡与电脑连接,MPLAB软件将自动识别出板卡上仿真器的型号,新建一个工程,选择好芯片型号和仿真器的型号,就可以使用MCC模块来完成对CCL外设的配置了。本次需要配置的部分主要又系统时钟、芯片引脚和CCL外设,其中系统时钟的配置界面如图2-4,芯片引脚的选择如图2-5,CCL外设的配置界面如图2-6。配置好以后,点击generate,会自动生成一些代码,由于该项目比较简单,无需在主函数种再进行其它操作。点击run,将程序下载到单片机并自动运用,观看结果,并用计算出的真值表进行核验。
图2-4 MCC系统时钟配置界面
图2-5 ATtiny1627单片机引脚选择图
图2-6 ATtiny1627单片机引脚选择图
2.3 结果展示
为了更好地将结果展示出来,我利用洞洞板焊接了一个简单的开关选择电路,将3个开关作为3个输入到单片机的自变量,通过人为地控制3个开关,从而实现8个状态机,并将每种状态机对应下的输出通过LED灯显示出来,结果见附件1,该视频中的结果与真值表一一对应,故完成了对之前提问的解答。视频链接为:
三、测评心得
ATtiny1627单片机含有CCL外设,这是许多单片机所不具有的,用户可以利用CCL外设在不占用CPU资源的情况下实现非常复杂的逻辑功能,这一定在实时性需求上占有很大的优势,同时在节约成本上也具有用处的,比较不需要外部的门控电路了。MCC所展示的外设框图与datasheet中的外设框图是不一样的,MCC中的外设框图更为简介,对于初学者来说,这一点很人性化,我在没看懂datasheet的情况下,通过MCC竟然对CCL外设有了初步的认识,挺有意思的。
参考文献
【1】Microchip Technology Inc. Using CLCs in Real-Time Applications[DB/OL].(2020-2021)[2021-12-3].https://ww1.microchip.com/downloads/en/Appnotes/AN2912-Using-CLCs-in-Real-Time-Apps_00002912A.pdf
【2】Microchip Technology Inc.Data Sheet ATtiny1624/ATtiny1626/ATtiny1627[DB/OL].(2020-2021)[2021-12-3].https://ww1.microchip.com/downloads/en/DeviceDoc/ATtiny1624-26-27-DataSheet-DS40002234A.pdf.
|