目前使用28027开发一款产品,但是在一个高频磁场的环境,使用晶振有时候会不稳定,所以就想使用內振代替晶振,请问有哪些需要注意的地方呢,比如是否需要检测起振情况,是否需要精度修正等?
另外,这个函数好像是跟內振有关的,是干什么用的呢,是否需要调用处理呢?
// This function uses the temperature sensor sample reading to perform internal oscillator 1 compensation with
// reference values stored in OTP.
void Osc1Comp (int16 sensorSample)
{
int16 compOscFineTrim;
EALLOW;
compOscFineTrim = ((sensorSample – getRefTempOffset())*(int32)getOsc1FineTrimSlope()
+ OSC_POSTRIM_OFF + FP_ROUND )/FP_SCALE + getOsc1FineTrimOffset() – OSC_POSTRIM;
SysCtrlRegs.INTOSC1TRIM.all = GetOscTrimValue(getOsc1CoarseTrim(), compOscFineTrim);
EDIS;
}
zong chen:
回复 10#:
谢谢解答。
我这个项目有定时的功能,对精度有比较高的要求,请问该如何调用Osc1Comp()这个函数呢,调用的时候,形参应该怎么给?
目前使用28027开发一款产品,但是在一个高频磁场的环境,使用晶振有时候会不稳定,所以就想使用內振代替晶振,请问有哪些需要注意的地方呢,比如是否需要检测起振情况,是否需要精度修正等?
另外,这个函数好像是跟內振有关的,是干什么用的呢,是否需要调用处理呢?
// This function uses the temperature sensor sample reading to perform internal oscillator 1 compensation with
// reference values stored in OTP.
void Osc1Comp (int16 sensorSample)
{
int16 compOscFineTrim;
EALLOW;
compOscFineTrim = ((sensorSample – getRefTempOffset())*(int32)getOsc1FineTrimSlope()
+ OSC_POSTRIM_OFF + FP_ROUND )/FP_SCALE + getOsc1FineTrimOffset() – OSC_POSTRIM;
SysCtrlRegs.INTOSC1TRIM.all = GetOscTrimValue(getOsc1CoarseTrim(), compOscFineTrim);
EDIS;
}
zong chen:
回复 10#:
controlSuite 这个软件,我这边试过下载好多次了,一直下载不了,你那边能给我发一份过来吗,谢谢了 mogen_osa@163.com 我用的编译器版本是CCSV6.0
目前使用28027开发一款产品,但是在一个高频磁场的环境,使用晶振有时候会不稳定,所以就想使用內振代替晶振,请问有哪些需要注意的地方呢,比如是否需要检测起振情况,是否需要精度修正等?
另外,这个函数好像是跟內振有关的,是干什么用的呢,是否需要调用处理呢?
// This function uses the temperature sensor sample reading to perform internal oscillator 1 compensation with
// reference values stored in OTP.
void Osc1Comp (int16 sensorSample)
{
int16 compOscFineTrim;
EALLOW;
compOscFineTrim = ((sensorSample – getRefTempOffset())*(int32)getOsc1FineTrimSlope()
+ OSC_POSTRIM_OFF + FP_ROUND )/FP_SCALE + getOsc1FineTrimOffset() – OSC_POSTRIM;
SysCtrlRegs.INTOSC1TRIM.all = GetOscTrimValue(getOsc1CoarseTrim(), compOscFineTrim);
EDIS;
}
10#:
回复 zong chen:
太大了,我也没办法给你单独发送。请按正确流程下载,同时关闭防火墙和杀毒软件等。
目前使用28027开发一款产品,但是在一个高频磁场的环境,使用晶振有时候会不稳定,所以就想使用內振代替晶振,请问有哪些需要注意的地方呢,比如是否需要检测起振情况,是否需要精度修正等?
另外,这个函数好像是跟內振有关的,是干什么用的呢,是否需要调用处理呢?
// This function uses the temperature sensor sample reading to perform internal oscillator 1 compensation with
// reference values stored in OTP.
void Osc1Comp (int16 sensorSample)
{
int16 compOscFineTrim;
EALLOW;
compOscFineTrim = ((sensorSample – getRefTempOffset())*(int32)getOsc1FineTrimSlope()
+ OSC_POSTRIM_OFF + FP_ROUND )/FP_SCALE + getOsc1FineTrimOffset() – OSC_POSTRIM;
SysCtrlRegs.INTOSC1TRIM.all = GetOscTrimValue(getOsc1CoarseTrim(), compOscFineTrim);
EDIS;
}
ming chen3:
回复 10#:
想问一下,在使用内部晶振时,外部晶振(无源)仍然焊接在电路板上,在使用过程中会不会有问题或隐患。
我看TI的28027和28069的launchpad在使用内部晶振时,都没有焊接外部晶振。
我在实际应用中,使用内部晶振,外部晶振仍然焊接,没出什么问题,这样会不会两个时钟串扰
目前使用28027开发一款产品,但是在一个高频磁场的环境,使用晶振有时候会不稳定,所以就想使用內振代替晶振,请问有哪些需要注意的地方呢,比如是否需要检测起振情况,是否需要精度修正等?
另外,这个函数好像是跟內振有关的,是干什么用的呢,是否需要调用处理呢?
// This function uses the temperature sensor sample reading to perform internal oscillator 1 compensation with
// reference values stored in OTP.
void Osc1Comp (int16 sensorSample)
{
int16 compOscFineTrim;
EALLOW;
compOscFineTrim = ((sensorSample – getRefTempOffset())*(int32)getOsc1FineTrimSlope()
+ OSC_POSTRIM_OFF + FP_ROUND )/FP_SCALE + getOsc1FineTrimOffset() – OSC_POSTRIM;
SysCtrlRegs.INTOSC1TRIM.all = GetOscTrimValue(getOsc1CoarseTrim(), compOscFineTrim);
EDIS;
}
10#:
回复 ming chen3:
没有问题,完全通过函数调用来选择晶振,在芯片内部,相当于是有开关进行切换的。