fengyefeng 发表于 2014-2-14 21:54

28035在线仿真与烧写到FLASH内的变化求教

    以前做实验一直是在RAM里进行,用的CMD文件是28033_RAM_lnk.CMD, 使用外部晶振20M,内部经12倍频再4分频,得到60M的总线频率,但在烧到FLASH内后就发现时钟频率被减半了,本来在设置的串口波特率是38400,串口调试助手的波特率设置成38400,可以正常接收到数据,但是烧到FLASH内后就得将串口调试助手的波特率设置成19200才能正常接收。在烧写时烧写工具On-Chip Flash Programer的左上角的Clock Configuration 选择项上,OSCCLK是10,DIVSEL是/2,PLLCR是12,这三项均是灰色的,不可选,只有SYSTEMCLOCKOUT是60.0000。我将烧录进去的代码全部只擦除,这个问题依然存在,好像是你只要在FLASH上烧了一次代码后,时钟就被锁死了。后来我在程序的PLL设置时将DIVSEL由原来的1改成了2,串口恢复正常,不过不管是下载到RAM里还是FLASH里,DIVSEL都要改为2才行,原来能够正常工作的CAN却出现了问题,数据都已进了发送邮箱了,但就是一直在等待CANTA置位,数据使终发不出,邮箱接收中断也进不了了,给人的感觉就好像这个邮箱的CANME没有打开一样,但我确实是打开了。这是什么原因啊,求教各位了,最重要的就是如何解决这个问题,谢谢各位的回答。这个问题说也奇怪,我当天晚上下班前已烧到FLASH里用了,能用,后来第二天上班打开电脑再去用就发现串口不对了

fengyefeng 发表于 2014-2-14 22:05

我按照官网提供的FLASH例程将FLASH进行了初始化,也将中断放到了相应的位置,也使用了MEMCOPY将FLASH内的内容COPY到了RAM,但CAN还是不能发出,卡好久了,求教

wangch_sh 发表于 2014-2-15 08:45

在flash里运行比在RAM里慢。

zhangmangui 发表于 2014-2-15 23:55

烧写的时候不能选择灰色的不知道什么原因   从你的现象来看
应该是时钟的问题   虽然是灰色的   但是60M还是与你设置的是相同的
flash烧写第一次记得会出现设置分频和倍频接下来是否锁死没注意
flash中运行只有在RAM中的70-80%的效率

fengyefeng 发表于 2014-2-16 01:08

串口时钟解决,CAN可有好法解决啊

kingzlt 发表于 2014-2-17 11:39

fengyefeng 发表于 2014-2-16 01:08 static/image/common/back.gif
串口时钟解决,CAN可有好法解决啊

何不将晶振换成10M?

烧写时要求实际使用的晶振、倍频、分频与仿真工具设置一致,如果你用的是20M,仿真配置里是10M,工作异常事小,芯片挂了就麻烦了

fengyefeng 发表于 2014-2-17 12:15

手头只有这晶振呀,郁闷得很,再多来的朋友看看这问题呀
页: [1]
查看完整版本: 28035在线仿真与烧写到FLASH内的变化求教