查看: 2783|回复: 1

K60用PDB触发ADC时,对Flash进行删除和写操作会复位问题

[复制链接]

该用户从未签到

16

主题

130

帖子

0

中级会员

Rank: 3Rank: 3

积分
287
最后登录
1970-1-1
发表于 2013-7-31 13:54:34 | 显示全部楼层 |阅读模式
 大家好! 请问各位在用PDB触发ADC,并且有对FLASH进行操作的时候,有没有遇到我这种问题:
 
当我开启PDB触发ADC后,如果再对Flash进行操作的话(例如擦除、写入扇区),就会引起CPU复位。之前没有配置PDB的时候,对flash的操作都没有任何问题,但加了PDB配置之后就遇到这个问题。Flash频率是25M,下面是PDB配置的代码,请大家帮忙分析一下,谢谢!
 
 
SIM_SCGC6 |= SIM_SCGC6_PDB_MASK;
PDB0_CH1C1 =  PDB_C1_EN(0x02) | PDB_C1_TOS(0x02); 
PDB0_DLY(1,1) = ADC1_DLYB;
 
PDB0_SC =  PDB_SC_CONT_MASK  // Contintuous, rather than one-shot, mode
              | PDB_SC_PDBEN_MASK // PDB enabled
              | PDB_SC_PRESCALE(PDB_PRESC_4) 
              | PDB_SC_TRGSEL(SOFTWARE_TRIGER)// Trigger source is Software Trigger to be invoked in this file
              | PDB_SC_MULT(PDB_MULT_1)// Multiplication factor 20 for the prescale divider for the counter clock
              | PDB_SC_LDOK_MASK;
// 设置计数值
PDB0_MOD = 0x6E;
// 启动计数器,计数器重新计数
PDB0_SC |= PDB_SC_SWTRIG_MASK;
// 装载PDB的一些内部寄存器
PDB0_SC |= PDB_SC_LDOK_MASK;
回复

使用道具 举报

该用户从未签到

16

主题

130

帖子

0

中级会员

Rank: 3Rank: 3

积分
287
最后登录
1970-1-1
 楼主| 发表于 2013-7-31 14:36:59 | 显示全部楼层

回复:K60用PDB触发ADC时,对Flash进行删除和写操作会复位问题

谢谢bug提供的建议,问题已经解决了。以下是论坛bug的建议:
“PDB中断或ADC是否对要擦写的flash block进行了读操作,比如run子程序, 取vector等。对一个flash block进行擦写的同时不能进行读操作。当然,可以在ram里跑擦写程序。另外擦写flash时最好把别的中断都关掉。
28.4.6 Read While Write (RWW)
The following simultaneous accesses are allowed:
• The user may read from one logical program flash memory space while commands
(typically program and erase operations) are active in the other logical program flash
memory space.
Simultaneous operations are further discussed in Allowed Simultaneous Flash
Operations.”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 08:55 , Processed in 0.078239 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表