跳转到主要内容

【爱普特 APT32F110 ev board 试用测评连载02】

刘煜 提交于

<style type="text/css">
.imgg img{box-shadow: 5px 5px 5px #cccccc; padding:2px; margin:3px;}
</style>
<div class="imgg">
<font color="#FD8900">作者:刘煜</font>
<hr/>
<p><span style="color:blue"><strong>目录</strong></span></p>
<ol><li><a href="#1">拆解CSI</a>
<a href="#1">分析文件结构(树状目录)</a>
<ol><li><a href="#11">CDK工程文件</a></li>
<li><a href="#12">官方教程</a></li>
<li><a href="#13">内存相关</a></li>
<li><a href="#14">迷你库(提供初始化、内存分配、获取时间、打印输出功能)</a></li>
<li><a href="#15">神经网络库</a></li>
<li><a href="#16">内核库</a></li>
<li><a href="#17">DSP库</a></li>
<li><a href="#18">测评开发板APT110 LCD EV Board V1.3的例程</a></li>
<li><a href="#19">SDK(相当于库函数),提供芯片相关文件和外设驱动库</a>
<a href="#191">提取有效信息</a>
<ol><li>AN1680_QuickStart_APT32F110x系列_CSI v1.2.pdf</li>
<li>AN1681_APT32F110x系列CSI_API说明手册 v1.3.pdf</li>
<li>AN1682 APT32F110x CSI代码结构和使用说明 v1.1.pdf</li></ol>
<a href="#192">梳理软件运行流程
<ol><li>在AN1682中有提到,附截图。</li></ol>
</li></ol></a>
</li>
<li><a href="#2">分析例程</a>
<a href="#21">GPIO 中断</a>
<a href="#22">系统可靠性LVD</a></li>
<li><a href="#3">测评总结</a></li></ol>
<a name="1"></a>
<br>
<hr/>
<h3><strong>1. 拆解CSI</strong></h3>
<a name="11"></a>
<strong>分析文件结构(树状目录)</strong>
<a name="12"></a>
1. CDK工程文件
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="13"></a>
2. 官方教程
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="14"></a>
3. 内存相关
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="15"></a>
4. 迷你库(提供初始化、内存分配、获取时间、打印输出功能)
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="16"></a>
5. 神经网络库
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="17"></a>
6. 内核库
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="18"></a>
7. DSP库
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="19"></a>
8. 测评开发板APT110 LCD EV Board V1.3的例程
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">

9. SDK(相当于库函数),提供芯片相关文件和外设驱动库
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt=""><a name="191"></a>

<strong>提取有效信息</strong>

1. AN1680_QuickStart_APT32F110x系列_CSI v1.2.pdf
描述使用APT32F110x系列芯片所需硬件和软件
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">

2. AN1681_APT32F110x系列CSI_API说明手册 v1.3.pdf
描述CSI(chip standard interface)的具体API,具备手册功能
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt=""><img width="68%" src="http://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-27237…; alt="">

3. AN1682 APT32F110x CSI代码结构和使用说明 v1.1.pdf
描述了各个文件的主要功能
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
综合来看,文档的掌握顺序应为AN1680AN1682AN1681
通过AN1680搭建开发环境;
通过AN1682掌握每个组件(文件)的功能;
通过AN1681查阅功能函数;<a name="192"></a>
和前文呼应一下,在查看AN1682时解答了上面分析目录树的疑惑,存在csi_xxx命名的文件,功能是向开发者提供寄存器级的操作支持,而没有csi_前缀的.c和.h文件则是提供了标准的封装函数,目的是当开发者不满足标准函数时可以基于寄存器级别的封装库搭建自己的函数库,不得不说还是很良心的。

<strong>梳理软件运行流程</strong>

1. 在AN1682中有提到,附截图。
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="2"></a>
<a name="21"></a>
<br>
<hr/>
<h3><strong>2. 分析例程</strong></h3>

<strong>GPIO 中断</strong>

<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img src="http://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-27238…; alt="">
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img width="40%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt=""> <img width="44%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<a name="22"></a>
void exi0_int_handler(void)为PA00的中断服务函数,为显示中断效果,通过PA06驱动外接的LED亮灭。最终现象为:按下板载S1,LED亮,再按S1,LED灭,循环往复。

<strong>系统可靠性LVD</strong>

<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img width="90%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">

简要说明,LVD功能允许开发者自定义系统供电电压阈值,<font color="#FD8900">即csi_lvd_int_enable(LVD_INTF,LVD_30);中的LVD_30,</font>当低于所定阈值时触发中断,一般用于保护重要数据,阈值可以替换成下图中的任何一个。

<img src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">

实现效果如下。

<img width="72%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img width="72%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img width="85%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">
<img width="85%" src="https://www.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564340-2723…; alt="">

当供电电压低于3.0V时,芯片进入LVD中断,使LED2状态发生反转。

<a name="3"></a>
<br>
<hr/>

<h3><strong>3. 测评总结</strong></h3>

在本周的学习过程中完成了对demo工程文件夹的功能分类、函数库的风格分类和两个具体功能的测试。具体功能分别是通过外接LED来显示GPIO中断效果和通过板载LED2展现LVD功能。官方提供的SDK库函数命名严谨,代码结构合理。使用CDK的过程中,无论是查找变量来回跳转还是调试进行单步运行,操作十分丝滑。

</div>