由于没有下载器,因此一直使用BSL下载方式进行430的学习。
测试NMI程序,采用淘宝的电路板,和官方的NMI程序,如下:
#include <msp430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD + WDTNMI + WDTNMIES; // WDT off NMI hi/lo
P1DIR |= 0x01; // Set P1.0 to output direction
P1OUT &= ~0x01; // Clear P1.0 LED off
IE1 |= NMIIE; // Enable NMI
_BIS_SR(LPM0_bits); // Enter LPM0
}
#pragma vector=NMI_VECTOR
__interrupt void nmi_ (void)
{
volatile unsigned int i;
P1OUT |= 0x01; // Set P1.0 LED on
for (i = 20000; i > 0; i–); // Delay
P1OUT &= ~0x01; // Clear P1.0 LED off
IFG1 &= ~NMIIFG; // Reclear NMI flag in case bounce
IE1 |= NMIIE; // Enable NMI
}
结果编程下载完后,就不能再次进行BSL下载测试了,BSL软件显示错误如下:
15:15:02 Erase failed. Synchronization error.
感觉应该是NMI程序使得RESET引脚不能复位,因此不能同步。
请问还没有办法擦除芯片内的程序,或者还是说开发板已经变砖了?
灰小子:
把和复位引脚相连的上拉电阻和电容焊下来,然后在复位引脚上接一个1k的下拉电阻(注意是下拉),这样单片机在上电以后由于复位引脚为低,从而不工作,(复位引脚此时还是默认的复位功能),这时候再下程序,就能成功了。要多试几次~~~
yunfei ma2:
回复 灰小子:
我只有一个BSL下载,也就是USB下载线,按照你的说法,试了十多次,都是显示的FLASH擦除失败,我就一直用BSL进行擦除,也是不行的。
还是说你这方法只能在JTAG下才能使用?