SQRT运算和CPU运行频率一点点的关系都没有,别吃惊!!!
从这段程序的变量定义看,编程风格非常重量,否则自已乱了自已.编译环境的设置同样要正确,否则程序无错也会编译出糟糕的代码.
总之,这里,SQRT的结果错不是CPU本身的问题,是指挥CPU工作的代码的问题.
各位啊,我当然明白"SQRT运算和CPU运行频率一点点的关系都没有",没有是必须的!但是现在发生了问题,而目前没有人知道问题发生在哪里.
这段程序,运行在3V16Mhz和最高频率时一定出错,但是频率降到12MHz正常,你能解释原因吗?!!!!
反正TI目前没有给我答复.
上面的例子是为了反复测试,如果只做sqrt(10.0);也是一样的出错啊.我在怀疑TI的设计有问题.各位如果有测试条件,可以做同样的测试啊,空谈是没有意义的.
Lierda的测试板因为电源高于3V,大家就不用试了,肯定是好的.
请教你的电源电压是多少啊?我真想知道究竟是什么原因啊.
引用:
请教你的电源电压是多少啊?我真想知道究竟是什么原因啊.
|
|
2274的学习板,并口仿真器,由仿真器供电,DCO=16MHZ,是可以运行通过的。
引用:
2274的学习板,并口仿真器,由仿真器供电,DCO=16MHZ,是可以运行通过的。
|
|
你说的没错,可我说的是在3V下工作,但是DCO设置在最高频率运行.
我们容忍频率下降工作,但是不允许这样的错误发生啊.各位认为呢?
系统工作在3V,DCO设置在最高频率运行,出现浮点错误,是非常大的错误,计算某数的平方根,
结果不确定.
sqrt和频率没关系,但是供电电压和最高安全频率有关系。
电压不够,芯片内部门电路的传输时间常数就比较大,强行让芯片工作在安全频率以上(所谓的超频),cpu的数据读写都不可靠,死机都是正常的;
任何CPU超频工作都有可能出错的。显卡超频还要调高电压呢,要不然 玩游戏时会死得很难看。
下面是转贴的原理,
TTL数字芯片应该工作在建议的工作电压,或允许的误差范围内。但CMOS逻辑芯片一般允许在宽的电源电压范围工作,这时候电源电压高时,芯片速度较快。因为数字电路工作在开关状态,CMOS的逻辑电平接近于电源电压,即接近于Voh=Vdd和Vol=Vss。电源电压愈高,芯片内部开关MOS管的Vgs 愈高,引起MOS管的通导电阻更小。而下一级的输入电容不会随电源电压的升高而有很大的变化,所以电源电压的升高会引起传输时间常数的减小,而频率性能得到提高。同时功耗也会随电源电压升高,电源电压也不应超过芯片的额定电压,注意参考DATA SHEET上的建议。
我找到了官方的解释,但是TI的工程师也没有给出可信的解释,呵呵,看来,只有自力更生才最可靠啊
官方的解释:
MCLK can be configured up to 8 MHz (16 MHz on the 2xx family devices). However, the VCC requirement
increases with frequency. If MCLK is set for a frequency that requires a VCC level higher than what is
applied to the device, unpredicta××e beh××ior can occur. The data sheet for a given device indicates the
VCC required for a particular MCLK frequency.
也就是说:MCLK不可以设定为比给定的参数更高的频率,否则可能出现不可预料的后果。哈哈,我就遇到了,真是幸运啊。。。
要超频的朋友注意了,你可能得到一个完全意想不到的结果。。。
我的情况是:逻辑正确(没有死机),可是结果错误。。。
TI工程师的回复:
We are not aware of such an issue. The frequency and voltage should beh××e according to the graph and data provided in the datasheet. In your case it seems to be an application issue. I would suggest you to contact local TI field representative or sales distributors.
Sorry for the inconvineance.
Disclaimer:
"TI assumes no liability for applications assistance or customer product design. Customer is fully responsi××e for all design decisions and engineering with regard to its products, including decisions relating to application of TI products. By providing technical information, TI does not intend to offer or provide engineering services or advice concerning Customer's design. If Customer desires engineering services, the Customer should rely on its retained employees and consultants and/or procure engineering services from a Licensed Professional Engineer ("LPE")."
谁有IAR 4.11B的固件??!!!
谁有IAR 4.11B的固件??!!!谢谢!!
记得,CPU的主频是和VCC相对应的,3V的VCC想跑16M,是不是有点勉强了。如果是3.6V还好
先不要怀疑TI芯片品质的问题,看看你设计是否存在问题?
原来看过TI资料上介绍,要用DCO倍频到16M,必须用最大的电压3.6V才行,不过一直没涉及到这个,楼主发现这问题了,我正好学习学习
LZ居然不看说明书就开始干,汗
TI的官方解释实际上就是委婉地指出了LZ的错误。嗯,中美文化还是有差异的,导致楼主误解……