1、设置F28335AD时钟,运行模式和采样模式,一般为12.5M,非连续运行模式和顺序采样。

2、设置级联的工作方式。
3、设置采样模式最大通道数为100k即可。
1.在工程中加入signaltap:tools-signaltapIIlogicanalyzer,设置采样时钟、欲抓取的波形、触发条件。所有这些信号必须源自于自己的逻辑设计中已有的信号,可以是rtl中的信号、引脚上的信号、综合后的门级信号。
2.可以为每个被抓取的信号单独设置触发方式。最简单的方法是:只对一个被采样信号设置触发方式,其余信号的触发方式都设成‘don'tcare‘
3.编译工程,得到包含signaltap的sof文件。打开stp文件,连接好FPGA板,配置JTAGchain让软件找到FPGA器件,把sof下载到器件中就可以开始抓取波形了。
4.改变触发方式是不需要重新编译工程的,其他操作就需要重新编译工程
STM32F10XXX系列包含TIM6、TIM7两个基本定时器,计数器为16位,其功能比较简单,仅支持向上计数,且只能计时,没有外部I/O口。
一、基本定时器的功能框图
1、时钟源TIMxCLK:定时器的时钟源来自系统内部时钟,准确来说由APB1预分频器分频提供,因为TIM6、7都是挂载在APB1上的外设。如果APB1的预分频系数等于1,则频率不变,其他情况,频率乘以2,库函数中APB1的分频系数为2,故定时器的时钟TIMxCLK=36*2=72MHz。
2、计数器时钟CK_CNT:CK_PSC可看成直接由CK_INT经触发控制器引入,PSC预分频器为16位寄存器,可对TIMxCLK进行1~65536分频,计算公式为:CK_CNT=TIMxCLK/(PSC1)。
3、计数器CNT:计数器CNT为16位寄存器,只能向上计数,最大值为65535,当计数器有0加到65535并溢出时,可以产生一个更新中断/更新事件。
4、自动重装寄存器ARR:16位寄存器,里面的数值为计数器能达到的最大数值。
5、产生一次中断的时间计算:time=(ARR1)/(TIMxCLK/(PSC1))
在实际中,预分频器起分频作用的是其影子寄存器或称为缓冲器。由下图的时序图可见:
信息ARR的值为FC-1,最开始预分频控制寄存器的值为0,此时预分频系数为1,即计数器时钟为72MHz。当计数器计数到F8时,我们将预分频控制寄存器的值写为1,此时,预分频器缓冲寄存器的值并没有立即更新为1,定时器的时钟依然为72MHz,计数器计数到FC,产生一个更新事件后,才将预分频器缓冲器的值更新为1,此时定时器的时钟变为原来的一半,即36MHz,保证了计数的准确性。
1、TIM_Prescaler:定时器预分频器设置
2、TIM_CounterMode:计数器有向上计数、向下计数、中心对齐计数3中模式,基本定时器仅支持向上计算,这里不用设置
3、TIM_Period:定时器周期,实际就是设置自动重装寄存器ARR的值
4、TIM_ClockDivision:时钟分频,设置定时器时钟CK_INT频率与数字滤波器采样时钟频率的分频比,基本定时器不用设置
5、TIM_RepetitionCounter:重复计数器,属于高级定时器的功能,不用设置
使用定时器实现1S定时,因为STM32F103C8T6只有TIM1、TIM2、TIM3、TIM4这几个定时器,这里使用TIM2代替TIM6。
//第一步:开启APB1上的TIM2外设时钟
//第二步:时钟源选择内部时钟
//第三步:初始化TIM2时基单元
//第四步:手动清除计数器中断标志位
//第五步:开启计数器中断
//第七步:计数器使能