完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
大家好!我是微控制器领域的新手,所以请原谅我的琐碎问题。如果我设法在谷歌上找到答案,我不会发布它们,但我会继续寻找任何问题:[?我们需要设计一个控制AC/DC转换器的系统,为此,我们使用一个DSPIC33 EP64 GS506微控制器。1。数据表上说,微控制器工作在70MIPS,用两个周期的指令,这意味着微控制器可以工作在140MHz?然而,这是最大工作频率,并且为了在那个频率下工作,我们必须使用适当的外部振荡器(晶体、RC振荡器等)。这是正确的吗?换句话说,如果我们不适当地选择振荡器,微控制器将工作在较低的频率上。当然,我们可以坚持使用内部振荡器,但是它的容差在1%左右,并且对温度振荡非常敏感。我们还将使用UART、I2C、PWM、ADC等。我在某处读到,选择晶体频率作为波特率(例如19200kbps)的乘法器是一个很好的实践。对的?例如,14.7456 MHz是19200 kbps速率的精确乘法器。3。在微控制器数据表中,我们发现了对外部振荡器的定时要求:(i)在XT模式下从3.5兆赫到10兆赫,以及(i i)在HS模式下从10兆赫到40兆赫。因此,晶体频率应该在这个范围内,这取决于我们将使用的模式吗?4。微控制器有一个集成的锁相环(PLL),用于增加或减少振荡器频率?例如,如果我们使用频率为14.7456 MHz的晶体,那么微控制器可以被配置为在140 MHz下工作吗?PLL的最大频率“放大”是多少,即晶体的最低频率是多少,以便微控制器仍能在140MHz下工作?我问这个问题是因为我们在数据表中发现,外部振荡器必须在3MHz到5.5MHz之间工作,以便用于设备启动振荡器。此外,在PLL时钟定时规范下的数据表中,我们发现,PLL压控振荡器(VCO)输入频率范围在0.8至8.0MHz之间。这是否意味着如果我们使用PLL,晶体频率应该在这个范围内?很抱歉,我有很多琐碎的问题,如果你能至少回答其中一个,我们将不胜感激:)同时,我们将继续寻找答案。
|
|
相关推荐
9个回答
|
|
|
您需要清楚使用的术语。首先看一下数据表第104页的图8-1。在微芯片世界里,“外部振荡器”(在配置中使用“EC”模式)是在单根导线上输出时钟的外部设备。在单片机内部,这关掉了“初级振荡器”电路,并且仅仅依赖于OSC1管脚上的时钟。当在OSC1管脚和OSC2管脚上连接有晶体(和电容器)时,就会出现晶体振荡器。为了给晶体提供正确的驱动电平,您需要使用晶体的频率来选择正确的范围:HS或XT。准备好了,比如开发板。在所有可能产生140MHz的情况下,你必须使用PLL。因此,您还需要看图8-2。PLLPOST除法比率在CLKDIV寄存器的描述中给出,并且除以2、4或8。为了保持在Fvco的范围内(120MHz到360MHz),你只能将Fvco除以2(除以4需要Fvco为560MHz)。因此,Fvco将是280MHz。输入到PFD必须在0.8MHz和8MHz之间。因此,“M”除法必须为350(对于0.8MHz)和35(对于8MHz)。PLLDIV(如PLLFDB寄存器中所记载的)可以在2到513之间,所以我们在那里没问题。现在我们需要生成参考频率,这意味着通过PLLPRE除法传递输入时钟,该除法可以在2到33之间(CLKDIV寄存器定义)。对于UART,如果您有(例如)20MHz晶体,那么您可以将PLLPRE设置为“除以5”以产生4MHz参考,这意味着“M”除法需要是70。无论使用什么实际的频率晶体(或外部时钟),您都可以进行必要的计算。如果使用TCXO等作为外部时钟源,并且确实需要精确度,那么PLL抖动可能会出现,但我从来没有发现它是个问题。艺术,通常是对波特率最低容忍度的组成部分:通常是+/- 1%。在这里,我建议您查看一个与您的设备相关的家庭参考手册部分,因为它有一个关于如何配置波特率发生器的好文章。假定UART使用的是FFC时钟,它是FoC/ 2或70MHz,并且您需要19200波特,并且使用16个时钟/位,FRM中的公式表示BRG值应该是227.8-1。我把小数点保持在这里,表示BRG应该是227(227.8舍入,然后减去1)或226(227.8舍入……)。使用BRG的227,这将产生波特率为19188.6,这是0.1%低。226给出19273.1,即4%太高。就我个人而言,我会把BRG设置为227,你会没事的。考虑到这么少的咆哮,我认为你要么有你自己的答案,要么可以自己决定。苏珊。
|
|
|
|
|
|
我在我们使用的一个pcb上使用这个处理器。有一点要注意,在启动时有一个默认值,它限制了晶体频率。(在所有PIC24E和dsPIC33E设备中,振荡器部分似乎都一样,所以我在24E设备上使用相同的代码)。我总是在内部振荡器上启动处理器,并将(在初始化期间)切换到通常为10MHz的晶体振荡器。如果您愿意,我可以发布这些内容用于振荡器交换的LE汇编代码,它最初来自Microchip,但我可能已经调整过了。用C语言做起来很难,因为要求事情按非常紧凑的顺序进行。一个问题:你真的需要70MIPS吗?我问,因为这些处理器,微芯片在70MIPS和60MIPS和以下指定了不同的温度范围。因此,如果60MIPS足够快,它将提供更多的热耐受速度,而不是70。另外,70对于各种定时器、UART和PWM等来说也不太方便。这并不是说70的数学计算很麻烦,但是到目前为止,我只是在我的系统中并不真正需要全速,所以以60MIP运行。所以我有六个不同的项目在PIC24E上运行,一个在dsPIC33Exx502上运行(因为我需要CAN总线。除了一个在10MHz振荡器上运行,并且使用相同的代码在内部振荡器上启动并在启动时切换到晶体60MIP。
|
|
|
|
|
|
顺便说一下,最初的线程标题提到了dsPIC33F,然后您描述的部分是dsPIC33E。我的经验是用33 E,这就是我认为你实际使用的。
|
|
|
|
|
|
亲爱的保罗,谢谢你的建议!我们使用60 MIPS还是70 MIPS并不重要,所以我们将坚持60 MIPS(120兆赫)。另外,为了得到19.2kbps的波特率,60M的除法器是一个整数(3125)。至于振荡器交换和组装代码,如果如您所提到的那样用C编写交换程序很棘手,那么是否可以只用汇编进行振荡器交换,并用C编写其他所有代码?P.S.你是对的,我使用E系列,我会尝试改变线程名称。谢谢支持!-马尔科
|
|
|
|
|
|
Marko,当你阅读FRM时,你需要记住一个文档可以覆盖许多不同的设备,并且它们可以具有稍微不同的特性。因此,你真的需要看看数据表和FRM部分一起。数据表将确切地告诉您设备可以(和不能)做什么,然后您可以阅读FRM,看看如何使设备做到这一点,记住忽略对设备不能做的事情的引用。我知道这听起来有点儿痛苦(也许是),但是过了一段时间你就会明白了。至于改变C中的振荡器,最难的部分(OSCCON寄存器的解锁序列)使用宏“_builtin_write_OSCCONx”很容易。检查编译器用户指南,其中所有的内置宏都被记录。苏珊
|
|
|
|
|
|
7.328兆赫或11.0592兆赫也将给你所有标准的BUAD率
|
|
|
|
|
|
当使用UART时,让波特率完全导入并不是非常关键,因为每个字节都由起始位同步。只要一个字节内累积的误差小于,比如说,1/2位的时间,你就可以了。这大约是+/-5%容错。无论你的时钟频率是多少,用水晶做起来都是很容易的。我不会选择一个水晶来让波特率更精确,除非你有特殊的理由需要这个精度。-保罗
|
|
|
|
|
|
哦,是的,当然,只有振荡器交换机需要装配,而且苏珊似乎已经建议了一种避免这种情况的方法。几年前我在Microchip网站上找到了一小块组件。我给CordSwitk.s命名了。我不确定这是否是Microchip的原始名称。-保罗
|
|
|
|
|
|
嘿,伙计们,我终于设计出一个带有外部晶体的MC卡,但是我没有什么额外的问题。1。在振荡器模块文件(DS70005131A-第21页)中,我发现在XT/HS工作模式下,1M电阻应该与晶体并联。当我第一次设计MCU卡时,我错过了这个信息,但是我的水晶即使没有1米电阻也能工作。问题是:在未来的设计中,我是否应该包括这个1米电阻,它是用来做什么的?2。由于MCU卡尺寸的限制,我不得不将晶体电容器放在底层,而晶体本身放在顶层。我发现在某些地方,由于杂散电容,建议在同一侧放置晶体和电容器。然而,由于我的晶体是真正的洞,我没有使用额外的通孔连接两层,它是否可以放置晶体电容器在不同的层?三。我的晶体具有18 pF的负载电容。根据振荡器模块文档中的等式(5-2),晶体电容器的电容应该是:C1=C2=2*(CL-CS),如果CS=5pF,则为26pF。然而,我在家庭数据表(DS7000 05127C页315)中发现,OSC2引脚最大负载电容应该是15 pF。正因为如此,我使用两个10个PF电容器,这明显小于推荐的26个PF。这是一个严重的问题,在实际应用中,或者我应该放置更大的电容器在未来的设计?4。请参阅附录中关于示波器记录的OSC1和OSC2引脚的响应。我知道探测器引入了额外的电容,这些不是实际的波形,但我对OSC2引脚响应感到困惑。它应该是正弦波作为OSC1 PIN响应,还是这种行为是意料之中的?在振荡器模块文档中有一个C代码示例,如何做时钟开关。谢谢大家的帮助!-马尔科
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
454 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3529 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1094浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
460浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 17:01 , Processed in 1.468268 second(s), Total 91, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5322