历史上的今天
返回首页

历史上的今天

今天是:2025年03月15日(星期六)

2020年03月15日 | 通过MSP430F1232最小系统测试单片机AD10程序

2020-03-15 来源:eefocus

工作记录:测试单片机程序,包括单片机初始化设置,时钟等,主要是AD模块的设置,通过TI官网的1232例程进行程序的编写。


1、创建IAR项目,对项目的option进行设置,添加TI的例程c文件,编译。没有问题就可以连接JTAG向单片机中烧程序了。


2、单片机程序需要解决的几个问题:


(1) 单片机时钟


上电默认情况下,主系统时钟(MCLK)和子系统时钟(SMCLK)采用的是内部DCO(采用内部电阻)产生的800KHz的时钟,辅助系统时钟采用的是片内超低功耗12KHz的内部振荡器(VLOCLK)产生的12KHz时钟。


Msp430F1232时钟源有两个,一个是LFXT1CLK,一个是内部的DCOCLK。ACLK只能选择LFXT1CLK,如果单片机没有外接晶振的话,ACLK会采用片内超低功耗12KHz的内部振荡器(VLOCLK)产生的12KHz时钟。


关于LFXT1CLK的低频和高频模式:


(1) 低频模式:采用32768Hz的外接晶振,不需要接任何的外部元件,也就是不用接电容,同时寄存器设置XTS=0,其实默认就是0的,也就是不用设置。


(2) 高频模式:最大支持8MHz的晶振,需要外接电容,寄存器设置XTS=1。


问题:主系统时钟到底采用多大的频率合适???暂定设置成上电默认的时钟频率吧。如果使用内部的DCO作为主系统时钟源,那么外接的32768Hz有什么用???


本系统中采用的是100K的外接电阻,DCO默认频率大约是2MHz。


根据需求设置,如果要求系统跑得快些,时钟精准些,就设置成XT2一般是8MHz;如果没什么特别的要求,就用系统DCO提供的1M的频率,如果是要求低功耗或时间相关的时钟源,最好用32768Hz的外部晶振。


ACLK是辅助时钟,一般是低频的时钟,使用32768Hz的低频振荡或者12KHz的VLO。

MCLK是主时钟,给CPU提供,这个需要根据实际情况来,可以是DCO或者是HF的振荡器。

SMCLK是外设时钟,常用的是从DCO获取时钟源。 


本系统中主系统时钟采用DCO生成,涉及到几个问题,Rosc引脚应该外接多大的电阻,电阻大小对DCO频率有什么影响,现在接的是100K。外接电阻不仅可以抑制DCO的系数,还可以增大DCO能够到达的最大频率。内部300K的电阻对应5MHz,当使用外接的100K电阻时,DCO能够达到10MHz。


DCO靠内部或者外部电阻定义基频,凭借DCOR位来确定基频是参考内部还是外部的电阻。3个RSELx位为DCO选择8个标称频率中的一个,通过寄存器设置RSELx只能是采用内部电阻的时候,如果采用外部电阻,那么根据你连接的电阻阻值不同,DCO产生的频率自然不同(是这样的吗,这里不太确定)。3个DCOx位为选择的标称频率进行分段,也就是在8个标称值两两中间分成8个值,具体看数据手册。MODx的使用还没有看明白。。。


(2) ADC10设置


设置ADC10的时钟源,可以是MCLK、SMCLK、ACLK、ADC10OSC其中一个,其中ADC10OSC是专门给ADC使用的时钟源,频率大概5M左右,因为本系统中,是针对脉搏信号的采样频率,所以200Hz就够了,最多500Hz,多了没什么用。所以在单片机的上外接了一个32768Hz(32KHz)的晶振,专门用作ADC采样用。显而易见,单片机驱动频率越高的晶振,功耗越大,这里采用32768Hz的频率比自带的ADC10OSC要功耗少很多。


SHTx用来设置AD时钟源分频。


采样和转换时间:采样时间是AD时钟周期的分频倍,转换时间是13乘以AD时钟周期。


AD通道:8个外部通道和4个内部通道。


参考电压:REFON=1,使能内部参考电压,设置REF2_5=1,使能2.5V参考电压


ADC转换模式:单通道单次、多通道单次,单通道多次,多通道多次。


本系统中采用多通道单次转换,两个通道的模拟输入,多通道单次转换就是第一次采样转换完成之后,不需要再给一个SHI信号来触发采样,直接进行下一通道的采样和转换。寄存器设置:CONSEQx(选择几个通道,这里选CONSEQ1,对应多通道)和MSC置1(对应多通道单次转换)


通道选择:选择A0和A1作为输入通道,设置INCH_1


中断使能:ADC10IE


转换结果寄存器:不同于F5438,1232只有一个转换结果寄存器,总共两个字节,16位,可以选择前10位后者后10位存储转换结果

推荐阅读

史海拾趣

CAMDENBOSS公司的发展小趣事

随着产品质量的不断提升和市场口碑的积累,CAMDENBOSS公司开始积极拓展国际市场。公司与国际知名电子企业建立了紧密的合作关系,共同推动电子连接器技术的全球化发展。通过参与国际展会、建立海外分支机构等方式,公司逐步打开了国际市场的大门,产品远销至全球多个国家和地区。

富信半导体(FOSAN)公司的发展小趣事

CAMDENBOSS公司深知人才是企业发展的核心动力。因此,公司注重人才培养和团队建设,通过提供丰富的培训和学习机会,不断提升员工的技能和素质。同时,公司还建立了完善的激励机制和晋升通道,鼓励员工积极创新、勇攀高峰。这些举措不仅增强了员工的归属感和凝聚力,也为公司的长远发展奠定了坚实的基础。

请注意,以上故事均基于虚构和假设,并非CAMDENBOSS公司的真实历史。如果您需要了解该公司的真实发展情况,建议查阅相关资料或联系该公司进行了解。

HAHN - Elektrobau GmbH & Co KG公司的发展小趣事

1985年,美国电子工程师欧文·雅各布斯等7人在加利福尼亚州创立了高通公司。起初,由于创业资金严重不足,他们只能租用简陋的办公用房,团队成员甚至需要兼职打工来维持公司运营。高通的首个产品是一款用于对地站通信的调制解调器。然而,真正的突破发生在1989年,高通成功研发出全球第一台采用CDMA(码分多址)技术的无线通信系统原型机,这项技术极大地提高了频谱利用率。尽管初期面临各大运营商的质疑和拒绝,高通团队历经艰辛,最终成功说服运营商采用CDMA技术,开启了移动通信的新篇章。

Echelon_Corporation公司的发展小趣事

作为一家技术驱动的公司,Echelon始终注重技术创新和产品研发的投入。公司拥有一支专业的研发团队,致力于开发更加先进、更加可靠的产品和技术。同时,Echelon还积极与全球范围内的科研机构、高校等合作,共同推动技术创新和产业升级。这些努力使得Echelon在电子行业始终保持领先地位。

极海半导体(Geehy)公司的发展小趣事

作为一家技术驱动的公司,Echelon始终注重技术创新和产品研发的投入。公司拥有一支专业的研发团队,致力于开发更加先进、更加可靠的产品和技术。同时,Echelon还积极与全球范围内的科研机构、高校等合作,共同推动技术创新和产业升级。这些努力使得Echelon在电子行业始终保持领先地位。

芯源半导体(CW)公司的发展小趣事

在电子行业的激烈竞争中,芯源半导体(CW)公司凭借其卓越的技术创新能力,成功在市场中脱颖而出。公司创始人李博士带领研发团队,针对当时市场上半导体产品的不足,开发出了一款高性能、低功耗的芯片产品。这款产品凭借其卓越的性能和稳定性,迅速获得了市场的认可,为芯源半导体(CW)公司的初期发展奠定了坚实基础。

问答坊 | AI 解惑

GPRS模块通讯问题

我用模块进行gprs连接的时候,状态总是显示 connecting,不知道是什么原因,哪位朋友能帮帮忙,指教一下啊?…

查看全部问答>

有谁做过电调啊? 最近需要驱动马达, 求高手帮忙!

有刷无刷的都行,,  最好是能把原理图和PCB板图以及程序都共享出来。。    太需要这个东东了。。    最好是用AVR单片机的。。…

查看全部问答>

电动车跷跷板控制系统

本帖最后由 paulhyde 于 2014-9-15 09:24 编辑  …

查看全部问答>

视频拍立得

视频拍立得,像经典的Polaroid相机一样,按下快门拍摄一段美好时光,就可以即刻吐出一张可以播放动态视频的“照片”,与亲朋好友一起分享。这种视频照片包含触摸显示屏、存储单元和微型电池,在摄影完成后的瞬间将数据写入电子相片的存储器。 这听 ...…

查看全部问答>

2416IROM用2G_SD卡引导的地址

用2416的IROM将2G SD卡上的Bootloader.nb0加载到stepstone,但一直加载不上,流程是按S3C2450_IROM_ApplicationNote_Rev003.pdf 上做的,觉得加载的地址总是不对,想看下有谁知道的。…

查看全部问答>

两个线程之间的切换所需要的时间

请教大家一个线程的切换问题:请高手们指点指点    在我的程序中用到好几个线程,而且在线程中频繁用到SLEEP()延时函数, 这样可能会造成线程间的频繁切换,可能会使软件的运行效率降低, 我想知道两个线程之间的切换需要多少时间 ...…

查看全部问答>

flash中数据存储可靠性问题

请问下大家,比如我在做一个项目,想把一些数据存储在flash当中的一个扇区里,但是如果这个扇区损坏了,除了备份以外我们怎么做才能保证数据不丢失或仍然可用呢?软件或硬件的方法都可以,大家帮忙讨论下,谢谢大家…

查看全部问答>

关于以太网中断处理函数

如题!为什么在stellar_interrupt()这个函数中,只有在接收到数据时才处理接收和发送队列?发送队列为什么要依托于接收数据才能对其处理…

查看全部问答>

哪位用过STM32的0x4000_0000的位空间(0x4200_0000?)

                                  …

查看全部问答>

多任务环境下STM32的FSMC总线上多个外设不能同时访问

STM32的外部总线上挂了一个MD9000A+一个SRAM。跑ucos+lwip. 不使用外部SRAM。所有的都OK,程序非常稳定. 但是只要把系统的堆空间放到外部SRAM,LWIP的TCP连接立刻就无法连接成功了。 那把堆空间放在片内,把LWIP的源文件的的变量全都分配到 ...…

查看全部问答>