赞
踩
全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)
从官网的链接中找到了我手里TC275的开发板的对应的例子以及文档,接下来结合这里面的文档看一下官方的例子都提供什么样的功能。
先看前面的5条。
第1条:通过串口实现的一个Shell,可以提供一部分交互功能。
第2条:ADC的后台扫描实现。这个主要是利用VADC实现指定的几个通道按照一定的顺序在后台进行扫描的功能。VADC是 Versatile Analog-to-Digital Converter 的缩写,字面意思是多功能ADC。
第3条:ADC的滤波器功能。这个例子里面使用了4个ADC通道进行后台序列采集,其中3个通道的结果是自动修改的,第4个通道是原始的数据。这里面看到的硬件提供的滤波功能有:4个结果取平均、三阶有限脉冲响应滤波器(FIR)、一阶无限脉冲响应滤波器(IIR)。这个描述,的确是让我感觉耳目一新。看起来,AURIX的这个ADC有很多自动处理的功能。可能这些在其他的MCU上也是有的,但是这个的确是我没有用过的。
第4条:简单理解了一下,这个也是几个通道的扫描采集。但是,不同于前面处理的对象是通道,这个例子处理的是一个模块中选中的通道。
第5条:队列缓冲扫描。看了简单的解释,看起来这个例子其实是可以缓冲几次请求逐个处理。
第6条:VADC的单通道持续扫描。其实,这个可能是连续看到的这几个ADC例子中最简单的。
第7条:LIN的主模式,相应的信号得通过示波器来看。
第8条:SPI的主模式,ASCLIN模块被配置成了SPI的主模式。这里,再次刷新了我的常识认知。原来,ASCLIN模块也是可以实现SPI的功能的。
第9条:如何在C工程中使用汇编。
第10条:使用总线访问机制保护总线意外篡改写入。
第11条:CCU6触发的ADC。这个还是ADC的功能,但是是使用硬件信号触发来进行采集的。在PPC的平台上,我用过CTU PWM触发ADC采集,应该是一个类似的功能。
第12条:CCU6的中断。这个例子就是实现了一个周期性的定时器中断。
第13条:采用CCU6捕获PWM的周期以及占空比。看起来,这个有点之前接触的eMIOS的意思了。
第14条:CCU6用来生成PWM信号。生成的PWM信号周期是固定的,占空比有所变化。
第15条:CPU的性能测试。从描述看,MCU的内部有一个CPU性能计数器,可以用来测试CPU的性能。
第16条: CPU的Trap识别。这个会是在开发过程中经常遭遇到的,后面得去看看如何来处理。
第17条:使用DMAlaise传输ADC的结果。转换结束之后,ISR触发一个DMA传输。
第18条:DMA的链表模式。一次触发可以触发多个DMA的处理,在最后一个完成之后会产生一个中断。
第19条:DMA存储到存储搬运。把一块存储的内容搬运到另一块且不需要CPU的干预。
第20条:DSADC例子。DSADC是Delta-Sigma ADC的缩写,DSADC是用来把一个外部信号转换成一系列离散的数字量的模块。
第21条:ERU是用来根据一个PIN的输入,在上升沿以及下降沿产生一个中断的模块。
第22条:FCE CRC。其中,FCE是一个CRC计算的硬件模块,支持CRC32。
第23条:FLash编程。包括了PFlash以及DFlash两种Flash存储的编程操作。
第24条:使用GPT进行PWM的捕获。之前看数据手册的时候我就一直在考虑如何使用GPT,其实这个是计算机设计中比较典型的一个硬件设计,应该可以用来处理或者生成各种复杂信号。这里,遇到了一个基础的例子,用GPT来进行PWM信号的捕获。
第25条:使用GPT来生成PWM信号。这个例子中实现的是固定的周期以及固定的占空比的PWM的生成,其实从计算机设计中的定时器的使用角度考虑,这种属性的控制应该是灵活的。
第26条:采用GPT12的定时器级联来扩展定时器。这里,使用了2个16bit的定时器来扩展为一个32bit的定时器。
第27条:GPT12的定时器中断。产生了一个周期性的定时器中断。到此为止,其实已经看到了两大类的定时器,一类是CCU6,一类是GPT12。
第28条:GTM ATOM中断。采用GTM的ATOM生成周期性的中断。前面刚刚说出现了两类定时器,这里接着出现了第三类。
第29条:GTM ATOM用来生成PWM。这个是上面的一个功能的反向,跟GPT12的例子类似。
第30条:GTM的TOM通道中断。其实也是通过这个模块生成了PWM。看到这里,其实有一个问题需要注意一下了:ATOM以及TOM究竟有什么区别?
第31条:使用GTM的TOM来生成PWM。前面的中断其实也是生成了一个占空比50%的PWM,对比思考,可能这里的这个信号不会有中断的介入。
第32条:中断优先级。
第33条:通过IOM模块来监控PWM信号。
第34条:通过IOM来比较两个PWM信号。
第35条:在不同的RAM区域中进行读写,采用CPU的性能定时器来进行监控。这里再次看到了这个定时器,看起来是一个非常有趣的模块,之前的MCU中没有见过的概念。
第36条:MPU。存储保护模块,保护指定的存储的读写操作。
第37条:MTU MBIST。MTU是存储特使单元,MBIST,存储内置的测试单元。
第38条:CAN FD。
第39条:CAN FD FIFO接收。
第40条:多核。这个例子需要好好研究下,遇到了太多这方面的问题我不熟悉。
41-45条:这几条都是关于OneEye的。之前看了国产的SkyEye,曾经让我以为这个也是一个仿真器。后面看了一下,其实是一个GUI的交互方式可以用来监控嵌入式系统的一些信息。感觉上,或许类似NXP的FreeMaster。
第46条:OneEye的串口示波器。
第47条:OneEye的串口Shell。
补充:我简单看了一下OneEye实现后显示出来的样子,看起来的确是有直观化的样子。不过,如果有一个可靠的串口打印功能,可能我接下来不会再这个工具上做深入行的研究。我们做软件调试需要的信息归根结底还是对信息的搜集,有一个串口的交互模式其实就已经比较方便了。
第48条:如果把程序存储到RAM中执行。
第49条:系统运行在200M的锁相环控制下,并且通过一个PIN输出到外面。
第50条:模具温度传感器?没有细致了解,应该是一个类似CPU温度的采集功能。
第51条:SCU的急停功能。之前看DS的时候看到过这个功能,可以让很多PIN进入到特定的状态。
第52条:CPU进入到空闲状态。
第53条:系统进入到睡眠模式,之后由定时器唤醒。
第54条:系统进入到待机模式,通过外部PIN的输入信号来唤醒。
第55条:检测上一次复位的原因。
上面这几条都算是这个MCU的高级功能了,除了最后一条在我现在接触到的工程实践中可能是需要的,其他的在我目前接触到的工程设计中都没有遇到。这个复位原因的检查,看起来还是很有必要看看的,这个在很多项目中的确是遇到了类似的诉求。
第56条:急停功能触发SMU的警告功能。其实,这个看起来是SMU的一个很好的使用范例了。
第57条:SMU出现异常之后,除了警告功能之外,还能够通过指定的PIN来输出信号。这个是我之前通过看别人的描述知道的,从这个文档的描述来看,这应该就是一个类似的功能。
第58条:这个是通过SMU出来一个预先设定好的中断。
第59条:SMU的Alarm触发MCU的复位。
第60条:QSPI进行SPI的传输,有收有发。
第61条:应该跟前面的第60条类似,只不过这个使用了DMA进行数据的传输。
第62条:使用STM获取当前的系统时间,信息包含天、时分秒。
第63条:从串口接收数据,之后使用DMA传输到RAM。
第64条:UART通信,使用了ASCLIN模块,向PC打印hello world信息。
第65条:看门狗喂狗。
第66条:LED闪烁,这个是我已经烧录测试过现象的程序了。
第67条:采用GTM的TOM来生成PWM信号来驱动LED的亮灭强度。
第68条:多核处理。
第69条:STM的中断。
看上去,上面的例子其实还是有几个重复的,不过这倒不是什么大的问题。简单把这些内容梳理了一下,基本上看到了这些例程所覆盖的功能使用示范。另外,通过这样的梳理其实可以让接下来的学习有一个顺序性,知道应该如何开启。比如,对我自己的推进计划来说,接下来应该先把串口的使用相关的几个例子用起来,之后在我的测试工程中增加一个printf的串口实现。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。