- 回答:
伪时钟模式是CPU停止,只有内部时基定时器在运行的模式。
使用外部中断从睡眠模式和停止模式中返回要多少时间?
- 回答:
使用外部中断从睡眠模式中返回需要中断处理时间(最多48个周期)。通过软件跃迁到PLL模式需要PLL稳定的等待时间。从停止模式中返回需要主时钟振荡稳定的等待时间。
在PLL倍频稳定后获得稳定状态要多少时间?
- 回答:
改变倍频率需要以下步骤:
- 改PLL为主时钟:最多8PLL周期。
- 改变倍频率:用在主循环中执行的指令。
- 改主时钟为PLL:2^14/主时钟周期。
我想了解子时钟稳定的等待时间 (针对:MB905xx系列)
- 回答:
子时钟稳定的等待时间固定为2^14周期。该子时钟稳定状态可以用时钟定时器控制寄存器来检测。当为 “0”时,SCE位代表子时钟稳定的等待时间。
手册中提到在1(主)被写入MCS后,在最多8个机器运行周期内,0(PLL)可能无法被写入。真是这样吗?
- 回答:
写使能的最大机器周期数依赖于PLL的倍频数。比如,应用4乘法器和主时钟(时钟除以2),需要最多八个时钟(PLL时钟检测主时钟边缘的最大化时间)。一般,我们建议用MCM确认主时钟,然后转换到PLL。在这种规范下,MB904XX系列内核不受使用限制(然而,对使用MB906xx内核的MB90435系列必须谨慎)。
手册中提到当MCS是”1”的状态时,CS1/CS0倍频应该被设置。如果我同时设置CS1/CS0倍频和MCS,会怎么样?
- 回答:
一般,我们建议你把MCS设置到“1”,然后按照手册规定设置CS1/CS0。但是,如果你把MCS设置为 “0”,又同时改变CS1/CS0,CS1/CS0的改变有效。
当子时钟模式转换成PLL模式或主时钟模式转换成子时钟模式时,CPU有时会在子时钟模式中运行,而不转换为主时钟模式。
- 回答:
你有没有在SCM从 “1”设置到“0”之前把SCS 设置到"0" 然后把SCS 设置到 "1"?当你频繁转换SCS时,要确保CPU状态迁跃SCM顺利完成,然后再写入SCS。
我想只用SCS位把PLL模式转换为子时钟模式。这会造成什么问题吗?
- 回答:
把 “0”写入SCS位不取决于MCS位,所以你可以只用SCS 位把PLL模式转换成子时钟模式。
如果当CPU在子时钟模式下运行时,外部重启被输入,CPU是否有可能不等振荡稳定的等待时间就执行重启操作呢?
- 回答:
如果当CPU在子时钟模式下运行时,外部重启被输入(主时钟停止的状态),CPU 会在振荡稳定等待时间过后再执行重启操作。(也就是说,如果CPU在停止模式下运行时(主时钟停止的状态),有重启被输入,CPU使用同一执行序列)。
我想了解在PLL内部机器时钟转换中,把PLL一倍频转换成PLL四倍频所需要的时间以及把PLL四倍频转换成PLL一倍频的时间。
- 回答:
你不可以在PLL运行中转换倍频数。要改变PLL倍频数,就要把PLL模式转换成主时钟模式一次,再设置PLL倍频数,然后把主时钟模式转换成PLL时钟模式。在这种情况下,转换成主时钟模式所需要的时间大概是8个时钟周期。转换成PLL时钟模式所需要的时间为213个时钟周期。如需详细信息,请参阅独立发表的各时钟规格书。
如果在倍频转换中出现中断,CPU如何运行?
- 回答:
在倍频转换时,CPU在PLL时钟或主时钟上运行。因此,我们认为CPU运行和转换定时的交迭不会作为CPU指令问题而出现(在资源中,时钟改变已经在上文中说明了)。
我正在使用的外部时钟为8MHz, 并2倍频(内部16MHz)。我能否把它转换成外部时钟为8MHz, 并1倍频(内部8MHz)。
- 回答:
要改变倍频率,先把时钟改变成主时钟(MCS=1),再改变倍频率(CS1, CS0),然后启动PLL (MCS=0)。
改变时钟频率的倍频数对于其他资源有什么影响?我还想了解使用外部时钟的资源以及使用后乘法机器时钟的资源的具体细节和影响
- 回答:
一般,除了时基定时器以外, 其他资源都使用倍频后的时钟。因此, 其他资源的时序会随着倍频时钟的改变而改变。
当PLL模式进入时基模式,然后时基模式又进入PLL模式时,有要求的PLL振荡稳定等待时间吗?
- 回答:
MB905XX系列要求PLL振荡稳定等待时间,但MB904XX系列和MB903XX系列没有要求。
如果由于电源故障电源从1.2V降到0.8V后,电压又重新恢复,是否有可能出现CPU故障的情况?
- 回答:
在电压降到一半(1.0V或更低)之后,电源被打开,尽管电源重启,没有被LPMCR 寄存器CG1和CG0位初始化的寄存器可能会被启动。
因此,如果寄存器开始在软件没有预期的较低时钟周期下运行时,正常的运算可能无法确认。
在这种情况下,用初始程序将寄存器初始化,或使用HSTX代替外部重启。
EI2OS的注释如下:如果分配到同一ICR的一个资源使用EI2OS,它就不能使用其余的中断。这是为什么?
- 回答:
EI2OS是用中断因子启动的,所以如果资源使用EI2OS,EI2OS计数器在其余的中断因子中可能也会增加。因此,资源使用受到限制。
EI2OS AND DMA是否执行内部微码或用硬件执行?
- 回答:
EI2OS执行内部微码。另外,这些系列(比如MB90470系列)中安装的u DMA用硬件执行。
如果EI2OS中断激活,中断程序什么时候执行?
- 回答:
如果EI2OS运行被激活,中断程序直到描述符中设置的数据计数器值的数据被自动传输后才被执行。
如果我想在描述符中设置的数字计数器值已经自动被传输后不断用EI2OS来传输数据,我该怎么做?
- 回答:
在描述符中设置的数字计数器值自动被传输后,重新启动中断程序中的描述符并启动EI2OS。
虽然睡眠模式还没有回到正常模式,是否有可能用uDMA 和 EI2OS来传输数据?在这个时候,出现的中断级别被假定为IL=7。
- 回答:
当IL=7的中断出现在睡眠模式中,睡眠模式不会返回到正常模式。另外uDMA 和EI2OS不运行。
教授我专用寄存器PS或CCR的数据读取方法?
- 回答:
有必要用PUSHW PS指令来检查内存上的系统栈,读取堆栈数据。
然而,专用寄存器不能读取C源上的数据。
我可以在运算中改变CPU模式吗?
- 回答:
你不能在运算中改变CPU模式。
如果我不使用4字节指令列队,这要紧吗?
- 回答:
你应该一直使用4字节指令列队。
4字节指令列队的作用是什么?
- 回答:
4字节指令列队是一种存储下一个即将被预先读取的指令的缓冲器。指令列队在指令执行中能够取出指令,因此指令取出周期可以缩短。
为当CPU出现失控,PC跳入空ROM区,并在那里执行某种运算。 从CPU角度看,PC应该执行什么处理呢?
- 回答:
我们认为最好用未定义的指令填充空余ROM区。另外,我们认为,FMC-16LX最好用未定义的指令来填充空余ROM区,导致异常中断,执行必要处理(如LOG写入E2PROM)重启。这是因为当未定义的指令被执行时,会出现异常中断。
硬件手册中提到,和VCC连接的电滤用电容器的电容高于和C引脚连接的瓷电容器的电容。硬件手册还建议,和C引脚连接的瓷电容器的电容应为0.1uF。这是否意味着,和VCC引脚连接的电容器的电容应该是0.1uF或更高?如果和C引脚连接的瓷电容器的电容比和VCC引脚连接的电容器的电容高时,是否会出现故障等错误?
- 回答:
一些产品有内置的电压向下阶跃电路。我们建议单片机的C引脚应设为0.1 uF来吸收电压向下阶跃电路的输出电压功率波动。Vcc引脚作为电压向下阶跃电路的输入,但电压向下阶跃电路输出中出现的噪音也会出现在Vcc引脚内。因此,我们建议和VCC引脚连接的电容器的电容应该比和 引脚连接的电容器的电容高。
数据手册中指出,当PLL时钟使用20 MHz 到 25 MHz,PLL 2位被设置。这是什么意思?(针对:MB90480系列)
- 回答:
举24MHz的内部运算频率为例子。这就说明你用1乘法设置12MHz,并把PLL2位设置为 “1”(两次)。也就是说,不能用1乘法设置24MHz振荡器。
手册中指出,从伪时钟回到外部中断最多需要80us。这是否取决于内部时钟?(针对:MB90430系列)
- 回答:
电路最多使用80us作为电压向下阶跃电路的稳定时间。这不取决于时钟(比如内部时钟),意味着这是模拟时间管理。
当我用地址重合功能来设置两个地址时,是否有什么方法来判断哪个地址被使用了?
- 回答:
如手册中规定,地址重合功能只有AD1E 和 AD0E运行有效/无效标记。因此,你应该用SP PC判断使用了哪个地址。
在读取数据寄存器,于待命处理前清除UART接收中断标记时,有时会出现延迟中断。这是由什么原因造成的?(针对:MB90435系列)
- 回答:
造成这种现象可能的原因是UART接收中断标记清除处理在主程序中存在,UART接收中断被激活。当这些设置被同时应用时,这种内部冲突会导致中断源根据CPU中出现的中断处理定时被清除。在这样的情况下,CPU 用最后中断数转换到延迟中断。为避免这种症状,可以采取相应对策,如在清除UART接收中断标记前使UART接收中断失效。
由于噪音测试,出现一种症状,看似好象单片机运行自动停止。有什么方法来检查内部电压向下跃阶电路的运行吗?(针对:MB90F387)
- 回答:
确认一下外部C引脚的电压。通常你可以在电压向下跃阶电路运行正常时检测到大约3V的电压。