完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我的目标是创建一个所谓的MCXO。我的振荡周期仅为1秒。我试图补偿一个大的50-150温度范围。我有一个大的查找表,“每秒的振荡次数”,我用GPS时基捕获,并把振荡器扫过我想要的温度范围。现在我试着实现补偿,我的计划只是在每秒钟读取温度,调整值。我的32位定时器PRX/PRY寄存器来反映查找表中的值。我的结果不是很好,我想知道是否有人可以确认当我写入PRX/Y时,定时器是否重置TMRX/Y。这在FRM的数据表中没有明确说明。但这可以解释为什么我的1秒时间比预期的要长一点。谢谢!-A
以上来自于百度翻译 以下为原文 Hello, my aim is to create a so-called MCXO. My oscillation period is simply 1 second. I'm trying to compensate over a large 50-150 temperature range. I have a large lookup table of "number of oscillations per second" that I've captured using a GPS time-base and sweeping the oscillator over my desired temperature range. Now i'm trying to implement the compensation and my plan is simply to read in the temperature each second and adjust the value of my 32-bit timer PRx/PRy registers to reflect the value from the lookup table. My results aren't very good, and I'm wondering if anyone can confirm whether the timer resets TMRx/y when I write to PRx/y. This isn't stated explicitly anywhere in the datasheet of FRM. But it could explain why my 1 second time periods are quite a bit longer than expected. Thanks! -A |
|
相关推荐
11个回答
|
|
你什么时候给PRx写信?如果您写的值小于当前TMR计数,那么它将在完成正确匹配之前对0进行完全翻转,因为计数是“= PRX”,而不是“& Gt;PRx”,您只需在定时器中断服务中更新PRX。
以上来自于百度翻译 以下为原文 WHEN are you writing to PRx? If you write a value smaller than the current TMR count, then it will do a complete rollover to 0 before doing a correct match, because the count is for "=PRx", not "> PRx" You should only update PRx in the timer interrupt service. |
|
|
|
请查看您正在使用的特定PIC控制器的勘误表。当计数器/定时器以32位模式级联时,有一些麻烦的问题。重新检查用于收集振荡器的数据的方法,因为可能出现一些错误。买一个可疑的方法。例如:使用GPS接收机每秒输出的一个脉冲。ER触发触发从晶体捕获的32位计数器的捕获。最好不要使用PLL输出的定时器时钟源。PLL的较高频率不会提高精度或分辨率,但会增加PLL相位跟踪抖动。这是随机的(主要是),并且随着时间的推移会被抵消。每个GPS 1-PPS触发器之间的计数差异应该按照晶体振荡器老化的速率来改变。如果变化率太大,晶体振荡放大器电路可能会出现问题。这是非常重要的。为了彻底表征一个单元,并将其调谐到基准温度下的最佳初始晶体频率精度,通常为25°C.记住晶体将根据工作温度和晶体切割而以不同的速率老化。
以上来自于百度翻译 以下为原文 Please review the errata for the specific PIC controller you are using. There are a few with some troublesome issues when the counter/timers are cascaded in 32-bit mode. Recheck the methods used to collect the data to discipline the oscillator as there could be some errors introduced buy a dubious method. For example: Use the one pulse-per-second output from a GPS receiver to trigger an input capture of a 32-bit counter clocked from your crystal. It is best to not use the PLL output for the timer clock source. The higher frequency from the PLL will not improve accuracy or resolution but it will add the PLL phase tracking jitter. This is random (mostly) and does cancel out over time. The difference in counts between each GPS 1-PPS trigger should change at the rate your crystal oscillator is aging. If the rate of change is too large there is likely a problem with your crystal oscillation amplifier circuit. It is very important to thoroughly characterize one unit and tune it to the best possible initial crystal frequency accuracy at a reference temperature, usually 25°C. Remember crystals will age at different rates depending on operating temperature and crystal cut. |
|
|
|
我很想看看你的查找表的内容。是噪音还是相当平稳?对不起,这不是一个有用的答复,但数据可能是有用的一些其他项目!欢呼艾萨克
以上来自于百度翻译 以下为原文 I would be very interested to see the contents of your look up table. Is it noisy or quite smooth? Sorry it’s not a helpful reply but the data may be useful for a few other projects! Cheers Isaac |
|
|
|
我在中断例程中修改PR寄存器,但由于计算温度和获取LUT值所需的周期,TMR寄存器在开始写入PRS时从零开始递增。我认为如果TMR寄存器被重写为PR,它将解释我所看到的时序差异。谢谢,丹,你已经读过我的想法了,这正是我所执行的。每个GPS第二个中断一个32位定时器。这个定时器值与查找表中的温度一起记录。唐亦风,令人惊讶的是,查找表是非常平滑和可重复的。然而,更高的温度变化率引入了非常明显的(但仍然非常可重复的)滞后。(参见图像)http://www. Doffbox .com /s/mH0gfk97 qyy057 /晶体%20%漂移%20StuffSoT.jpg?DL=0
以上来自于百度翻译 以下为原文 I modify the PR registers in the interrupt routine, but because of the cycles it takes to calculate the temperature and fetch the LUT value the TMR registers have started incrementing from zero by the time I write to the PRs. I thought that if the TMR registers were reset with writes to PR it would explain the timing discrepancy i'm seeing. Thanks, Dan, you have read my mind as that's exactly what I've implemented. Each GPS second interrupts a 32-bit timer. That timer value is recorded along with the temperature in my lookup table. Issac, surprisingly the lookup table is extremely smooth and repeatable. However higher rates of change of temperature introduce very noticeable (but still very repeatable) hysteresis. (see image) https://www.dropbox.com/s/mh0gfek97sqy057/Crystal%20Drift%20Screenshot.JPG?dl=0 |
|
|
|
看你的图表表明,你的晶体振荡器电路和测量方法可能存在一些问题,滞后取决于温度变化的方向和速率。这提示了温度传感器的问题。你的振荡器电路似乎对温度变化的响应速度不同于你的温度传感器。需要改变你的测量方法来验证这种情况是否发生。你的振荡器频率在40.00兆赫到37.99兆赫的范围内变化。振荡器频率从25°C到80°C的变化为37.99MHz至37.949MHz,变化为112.5ppm,4500 ppm。晶体通常被指定为在这个温度范围内最坏地变化100ppm。然后,这是你的图表的一部分,显示振荡器频率在100°C到140°C的温度范围内增加。这些事情表明振荡器电路设计中的根本缺陷。顺便说一下,我找不到支持运行石英晶体振荡器的数据表。在125°C以上,你愿意为你的晶体振荡器电路元件提供数据表的链接吗?
以上来自于百度翻译 以下为原文 @adown, Looking at your charts shows that there may be some issues with your crystal oscillator circuit and measure methods. The hysteresis looks to depend on direction and rate of change in temperature. This suggests issues with your temperature sensor. Your oscillator circuit appears to respond to changes in temperature at a different rate than your temperature sensor. A change in your measurement method is needed to verify if this is occurring. Your oscillator frequency changes over the range of 40.001MHz to 39.994MHz. The change in oscillator frequency from 25°C to 80°C is 39.999MHz to 39.9945MHz, a change of 112.5ppm By the way, I could not find a data sheet that supported operating a quartz crystal oscillator above 125°C. Would you be willing to supply links to the data sheets for the components of your crystal oscillator circuit? |
|
|
|
看起来像一个非常复杂的主题,不只是温度和电压依赖。AN1744:ISL120 22M振荡器精度- Intersil(不是高温振荡器,仍然有趣)
以上来自于百度翻译 以下为原文 Looks like a very complex thematic, not just temperature and voltage depending. AN1744: ISL12022M Oscillator Accuracy - Intersil (not for high-temperature oscillators, still interesting) |
|
|
|
丹,我对我的Excel表的低分辨率截图表示歉意。Y轴的满刻度仅为7000个振荡。这是一个40MHz的振荡器,大约175ppm。这个特定的晶体是由频率管理(虽然类似振荡器可以通过瑞士的微晶),这一个额定工作在175°C,精度为+/-150 ppm。如果我使用一个更异国情调的XC切割晶体振荡器+/-50ppm在这个温度范围内是可用的。我的应用程序需要子1ppm,因此所有这些(未遂)补偿。这里是数据表,如果你感兴趣。MP/FMIZFMOCHTHETXXOSththpgP%2031,R8Y09302011.PDFHTPU//www. MigSalp.COM/IMASES/YPPDF/8Y-CROK振荡器,MCSO/MCSO1.PDF
以上来自于百度翻译 以下为原文 Dan, my apologies for the low-resolution screenshot of my excel sheet. The full scale of the y-axis is only 7000 oscillations. Which is roughly 175ppm on a 40MHz oscillator. This particular crystal is manufactured by Frequency Management (although similar oscillators are available through MicroCrystal out of Switzerland) this one is rated to operate at 175°C with an accuracy of +/-150ppm. If I go with an even more exotic XC-cut crystal oscillator +/-50ppm is available in this temperature range. My application requires sub-1ppm so hence all of this (attempted) compensation. Here are the datasheet if you're interested. http://www.frequencymanagement.com/web_pdfs/cat_pdfs_oscillators_hitemp/FMI_FMOCHT_ET_XOS_TH_Pg%2031_R8_09302011.pdf http://www.microcrystal.com/images/_PDF/8_Clock-Oscillator_MCSO/MCSO1ES.pdf |
|
|
|
频率测量振荡器非常好,但是你们的数据显示它们比指定的要差得多。可能还有其他问题。你可能想在你的温度范围内用一个经过校准的频率计数器来验证振荡器。
以上来自于百度翻译 以下为原文 The oscillators from Frequency Measurement are very good, but your data shows them much worse than specified. There may be something else going wrong. You may want to validate the oscillator with a calibrated frequency counter over your temperature range. |
|
|
|
我确实想知道,你可能想用一个局部加热器来控制晶体加微控制器的温度,而不是补偿。你可以有一系列的表面贴装,大电阻安装在板的后部,和一些温度传感器旁边的敏感部件。控制温度将占用处理带宽的一小部分,并且有相当数量的绝热,它不会使用很多功率。
以上来自于百度翻译 以下为原文 I do wonder wether you may want to control the temperature of the crystal plus microcontroller with a local heater, rather than compensate. You could just have a series of surface mount, large, resistors mounted on the rear of the board, and some temperature sensors next to the sensitive parts. Controlling the temp will use a tiny part of the processing bandwidth, and with a decent amount of thermal insulation it won’t use much power. |
|
|
|
嗨,在10个帖子之后,我们仍然不知道1500个不同的引用中使用了哪一个PIC。如前所讨论的,每一个PIC/DSPIC都有不同的规格和错误。如果目标设备是已知的,任何注释都是有意义的。如果设备使用内部PLL,KNO就非常重要。因为它会增加抖动!!!!RegardsNote:我想这家公司生产的那种振荡器是你想要的:HTTP://www. Rakun.com /产品/家庭/OXO-OCSO
以上来自于百度翻译 以下为原文 Hi, After 10 posts we still do not even know which PIC is used out of 1500 different references. As discussed previously each PIC / dsPIC has a different spec and also errata. Any comment only makes sense if the target device is known. If the device uses an internal PLL it is extremely important to know it because it will add jitter !!! Regards Note : I think this company makes the kind of oscillator you are aiming at : http://www.rakon.com/products/families/ocxo-ocso |
|
|
|
原始海报(AdOnter)没有提供关于收集PIC或频率管理国际振荡器如何在所需温度范围内执行的数据的目标PIC或方法的任何细节。我怀疑OPS方法或固件出现的一些缺陷。作为频率的极端偏移,我鼓励OP来详细描述数据是如何收集的,用于循环温度的方法,测量振荡器频率和记录温度。
以上来自于百度翻译 以下为原文 The Original Poster (adown) has not provided any details regarding the target PIC or methods used to collect data on how the Frequency Management International oscillator performs over the required temperature range. I suspect that there may be some flaws with the OPs methods or firmware that appears as an extreme shift in frequency over temperature. I would encourage the OP to describe in detail how the data was collected, methods used to cycle the temperature, measure the oscillator frequency and log the temperature. |
|
|
|
只有小组成员才能发言,加入小组>>
5166 浏览 9 评论
2000 浏览 8 评论
1928 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3174 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2226 浏览 5 评论
734浏览 1评论
615浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
505浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
631浏览 0评论
528浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 12:16 , Processed in 1.439660 second(s), Total 98, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号