找回密码
 立即注册
查看: 42|回复: 8

请教一下AI8H2K32U的T11定时器问题

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-10-21 03:51:15

17

主题

107

回帖

455

积分

中级会员

积分
455
发表于 3 天前 | 显示全部楼层 |阅读模式
想用T11做外部计数用,用来采集风扇的转速,最高速度大概在160Hz。不需要中断,一秒查询一次,发现哪怕停止计数功能,每次进入都会有8个脉冲,这是怎么回事?
代码如下:
    T11H=0;
    T11L=0;
    T11CR =0xc0;        //定时器11用于对风扇转速计数
每秒查询一次,查询完就会将T11H和T11L置0。


回复

使用道具 举报 送花

3

主题

1860

回帖

568

积分

等待验证会员

积分
568
发表于 3 天前 | 显示全部楼层
您好,

关于您在使用国芯AI8H2K32U芯片的T11定时器进行外部计数,采集风扇转速时遇到的问题,我将从硬件配置、计数原理、可能干扰源及解决方案等方面进行分析,并提出改进建议。

一、问题描述回顾

您希望使用T11定时器作为外部计数器,用于采集风扇转速信号(最大频率约160Hz),每秒读取一次计数值并清零。在测试过程中发现,即使关闭了计数功能(即停止定时器),每次读取时仍会“残留”8个计数脉冲。此现象与预期不符,可能存在信号干扰、配置不当或硬件行为理解偏差等问题。

二、T11定时器功能简述

根据AI8H2K32U的参考手册,T11为16位可编程定时器/计数器模块,支持以下几种工作模式:
定时模式(内部时钟源)
计数模式(外部输入引脚提供时钟)
PWM输出模式
输入捕获模式

您当前配置为外部计数模式,即通过T11CLK引脚(或指定引脚)输入的外部信号进行递增计数。配置语句如下:
  1. c
  2. T11CR = 0xc0;
复制代码

该配置的含义如下(根据手册):
T11CR[7:6] = 0b11:选择外部时钟源(计数模式)
T11CR[5:0]:可能为预分频设置或其它控制位,具体请参考数据手册

三、问题分析

1. 计数器未真正停止

即使您认为已“关闭”了计数功能,但若未正确配置T11CR寄存器来停止计数器,其仍可能继续运行。例如:
若只是清除了T11H和T11L,但T11CR未修改为停止状态,则计数仍在继续。
若T11CR[7:6]仍为外部时钟源模式(如0b11),则计数器仍在对输入信号计数。

建议操作顺序应为:
  1. c
  2. T11CR = 0x00;     // 先停止计数器
  3. T11H = 0;
  4. T11L = 0;
复制代码

然后再根据需要重新启动计数。

2. 外部信号存在干扰或毛刺

即使风扇停止转动,其输出的霍尔信号或光栅信号可能仍存在:
机械抖动:风扇停转时,霍尔元件可能因磁场残留或机械振动产生误触发。
电气噪声:外部信号线上存在干扰,可能被误判为有效脉冲。
未使用硬件消抖:许多MCU提供输入滤波或消抖机制,若未启用,可能导致误计数。

建议措施:
在硬件上加入RC低通滤波器或施密特触发器,对输入信号进行整形。
启用芯片内部的输入滤波功能(如有)。
软件上可做简单的去抖判断,例如两次采样间隔中变化小于一定次数则视为无效。

3. 定时器读写时序问题

在16位定时器读写过程中,若操作顺序不当,可能导致读取不一致或写入失败。例如:
先读写T11H,再读写T11L,可能导致读取到不一致的值(如高位更新而低位未更新)。
清零操作应在计数器停止后进行,否则可能清零失败。

建议采用如下标准流程:

```c
// 停止计数
T11CR = 0x00;

// 读取计数值
count = (T11H

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-10-21 03:51:15

17

主题

107

回帖

455

积分

中级会员

积分
455
发表于 昨天 03:51 | 显示全部楼层
干扰的问题肯定是可以排除了,现在就算拔掉风扇,数字为8,依然有值,这个就明显不对了,电路图如下,风扇的第三脚内部实际是一个三极管开路输出。
11111.png
程序如下:
2222.png

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:334
  • 最近打卡:2025-10-21 08:54:10
已绑定手机

87

主题

3271

回帖

7294

积分

荣誉版主

无情的代码机器

积分
7294
发表于 昨天 16:08 | 显示全部楼层

未复现,上传可复现问题工程看看
截图202510211606448118.jpg

t11Test.zip (713.93 KB, 下载次数: 1)
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-10-21 03:51:15

17

主题

107

回帖

455

积分

中级会员

积分
455
发表于 昨天 19:45 | 显示全部楼层
erci*** 发表于 2025-10-21 16:08
未复现,上传可复现问题工程看看

原简单的测试工程文件。
ELR-2 - 副本.rar (69.98 KB, 下载次数: 2)

点评

未见停止1s重新读数测试代码?使用上面传的例程是否可复现呢? [attachimg]118392[/attachimg] [attachimg]118393[/attachimg]  详情 回复 发表于 昨天 20:00
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:334
  • 最近打卡:2025-10-21 08:54:10
已绑定手机

87

主题

3271

回帖

7294

积分

荣誉版主

无情的代码机器

积分
7294
发表于 昨天 20:00 | 显示全部楼层
深山*** 发表于 2025-10-21 19:45
原简单的测试工程文件。

未见停止1s重新读数测试代码?使用上面传的例程是否可复现呢?

截图202510211959353414.jpg
截图202510211959548047.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-10-21 03:51:15

17

主题

107

回帖

455

积分

中级会员

积分
455
发表于 昨天 21:35 | 显示全部楼层
erci*** 发表于 2025-10-21 20:00
未见停止1s重新读数测试代码?使用上面传的例程是否可复现呢?

用上面的例程,在我的板子上是可以复现的。

点评

录个像看看,另外示波器看下捕获Pin实际电平。 上传完整原理图? 换核心板试试?  详情 回复 发表于 昨天 23:17
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:334
  • 最近打卡:2025-10-21 08:54:10
已绑定手机

87

主题

3271

回帖

7294

积分

荣誉版主

无情的代码机器

积分
7294
发表于 昨天 23:17 | 显示全部楼层
深山*** 发表于 2025-10-21 21:35
用上面的例程,在我的板子上是可以复现的。

录个像看看,另外示波器看下捕获Pin实际电平。

上传完整原理图?
换核心板试试?
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-10-21 03:51:15

17

主题

107

回帖

455

积分

中级会员

积分
455
发表于 昨天 23:42 | 显示全部楼层
erci*** 发表于 2025-10-21 23:17
录个像看看,另外示波器看下捕获Pin实际电平。

上传完整原理图?

直接上完整的PCB文件。
Test.rar (183.99 KB, 下载次数: 1)

回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-22 06:54 , Processed in 0.137820 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表