tag 标签: lm3s811

相关博文
  • 热度 23
    2012-8-24 22:33
    1519 次阅读|
    11 个评论
      利用LM3S811 的 定时器、外部中断、 SSI 模块等 功能 制作了一个自行车测速装置。 本作品使用 LM3S811 单片机 通过 开关 型霍尔 传感器 A04E 检测 车轮的转数,利用 SSI (同步串行 通信 )模块向两片级联的 74HC595 发送 16 位的 数据 来 驱动 六位数码管,其中高 八位用于片选,低八位用于段选。通过一个按钮来切换显示速度和里程。 1 系统 方案 1.1 电源 由于 LM3S811 的 工作 电压 是 3.3V ,所以直接采用两节 5 号干电池供电。 1.2 显示 由于速度与里程的范围: 0~40.01 和 0~700.1 ,只需 5 位即可显示。所以用 2 片 3 位的数码管吗组成 1 片 6 位的,其中第一位分别显示 U和 L 代表速度和里程。 1.2 检测 采用外部中断当单片机检测到下降沿时,计数值加一。每隔一秒计算一次速度。 2系统理论分析与计算2.1 数码管显示 将 6 个数码管的段选并联,由 U1 控制; U2 的低 6 位用作片选码。数据帧的大小为 16 位,其中 0~7 位为段选码,第 8~13 用于片选码 LM3S811 在上电时,所有 GPIO 引脚默认为 输入 , 软件 设计 根据应用要求配置 GPIO 引脚。 在使用 SSI 时,需通过对 RCGC1 寄存器 中的 SSI 位置位使能 SSI 外设时钟。配置 SSI 为主机模式,协议模式为 Freescale SPI 单次传输模式。 为了切换显示速度和里程,分别用定时器 1 和定时器 2 定时中断,不断刷新数码管。外加一个按钮,当键按下时初始化定时器 1 ,显示里程;否则只初始化定时器 2 ,显示速度。 2.2 计算速度与里程 在车轮一周上均匀放置 6 个磁钢,假设车轮半径 0.5m ,则车轮转一周为 π m 。 每两个磁钢之间的距离位 π /6 m 。磁钢检测采用外部中断,每中断一次计数器加 1 。再用定时器 0 定时中断,每隔一秒计算一次速度, v=counter* π /6 m/s 转换成 V=v*3.6 km/h ,里程 mile 则一直累加。
  • 热度 20
    2012-6-17 11:06
    3201 次阅读|
    5 个评论
        手上有块TI的LM3S811开发板,虽然不是专业的ADC,但其包含4通道的ADC,采样率500kbps,10位分辨率,可以量程在-1.5V~1.5V或0V~3V,还有一路模拟比较器,应该足可以测量交流有效值了,就看能测量到什么程度了。我手上有个项目,需测量的信号是400Hz,最大±12V,就以此为例,怎样才能最大发挥该芯片ADC测量交流有效值的能力呢?   在航空电气、自整角机、旋转变压器中都是需要同时测量几路信号,这样先得考虑该芯片是否具有同步测量的可能性,假设其中一路信号为,可用V=Acos(wt)来表示,其中A为幅度,w就是2*pi*400Hz了。ADC量程为-1.5V~1.5V或0V~3V,10bit的分辨率,最低电压分辨率为3/1024=2.93mv,500bps的采样率对应2us,呵呵,4路通道之间的间隔就是6us,如果在6us内变化小于2.93/2=1.46mv即采集的数据的误差仅ADC的分辨率决定,对于该芯片则为同步采集。对于400Hz的信号,每个周期其幅度变化1.46mv/6us/400Hz=0.6v,而该信号的幅度才1.2v,一个周期内幅度就变化至少一半,那是不可能的事情,所以理论上可以满足同步采集的要求。   测量正弦波交流电有效值有好几种方法,一种是通过二极管、电容构成的检波电路,将交流转换成直流,但该方法对400Hz这样的低频信号误差较大,放弃。一种是通过AD736这样的专用芯片测量,精度我没查数据手册,价格不便宜,放弃。一种是直接ADC采样,可以多次采集求面积,也可以只测量最大值,这种方法测400Hz的低频交流电最好了。   开始想直接测量,LM3S811有一个模拟比较器,可以很容易地知道每周期的开始,对于400Hz的正弦波信号,可以精确在其1/4周期处采集最大值,将±12V的交流信号利用电阻分压成±1.2v,对于±1.5的量程,还留有25%的余量。但对于正弦波这样对称的波形,就浪费了一半的信息,能够测量的电压分辨率只有3V/1024=2.93mv,对应到交流信号为2.93mv*10=29.3mv。   接着想到采用多次采样求面积的方法,对于绝大部分信号可以通过多次采样提高精度,也可在软件算法上加上抗干扰措施,但对于幅度小于29.3mv的信号就无能为力了。   既然交流信号是对称的,如果只采集上半波,将上半波扩充到整个ADC量程内,精度则可提高一倍。但二极管单向导通不能以0为界限精确半波整流,需要0.7v以上才能导通,而且相对于原始信号存在0.7v的误差,呵呵,这可比上述的29.3mv严重多了。想了几天,既然不能够精确地以0v为界来划分,那可以以-0.7v乃至-1v划分,后面在软件中修正,至少ADC采集的信号要精确。   如图1,T3是电阻分压后的信号,T4是调理后的信号,虽然翻遍了LM3S811的datasheet没看到其ADC的输入电压极限值,目前也没有测试如果在设置0v~3v的情况下输入负电压会怎么样,但我想其可以测量0v~3v和-1.5v~1.5v,输入-1v~3v的电压应该没有问题,负电压要是直接当0v处理,那倒免得我在软件上修正了。该方法如果可行,测量信号的精度应该为14.6mv,对应的交流电压就是10mv了,呵呵。           图1  原理图           图2  瞬态分析图   综上所述,如果交流信号频率变化,那可以多次采样求面积。如果交流信号是频率固定的,而且频率不高,这种情况也是最常见的,利用模拟比较器可精确地算出周期,其ADC采集信号时也只需在1/4周期处测量最大值即可,这样计算也少,精度也能满足,同时认为是同步采集的,对于有效值为15/1.414=10.6v以下的信号,精度可以达到10mv,达到了10位ADC的极限,物尽其用了。
相关资源