This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C129x 开发板关于读取MX66L51235F EEPROM的问题



在使用过程中,直接调用官方提供的API(mx66l51235f.h),但是在MX66L51235FInit(ui32SysClock);初始化时配置不过,一直停留在Reset_handler段 

程序断如下,不知道哪里有问题,望高手点拔。

uint32_t ui32SysClock;
uint8_t pUiMx66Data[32]={1};
uint8_t* pstring;
//
// Run from the PLL at 120 MHz.
//
// ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
// SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
// SYSCTL_CFG_VCO_480), 120000000);

ui32SysClock = SysCtlClockFreqSet(SYSCTL_OSC_INT | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_320,
40000000);
//
// Configure the device pins.
//
PinoutSet();


MX66L51235FInit(ui32SysClock);

MX66L51235FSectorErase(0);

MX66L51235FRead(0x00, pUiMx66Data, sizeof(pUiMx66Data));

MX66L51235FPageProgram(0x00, pUiMx66Data, sizeof(pUiMx66Data));

MX66L51235FRead(0x100, pUiMx66Data, sizeof(pUiMx66Data));

  • ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
    SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
    SYSCTL_CFG_VCO_480), 120000000);

    这句应该才是TM4C129x的时钟初始化吧,怀疑你的那句初始化时钟不成功。换这个试试

  • ui32SysClock = SysCtlClockFreqSet(SYSCTL_OSC_INT | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_320,
    40000000);

    仿真看看uiSysClock 得到的值是否是120MHz, 配置MCU系统时钟后,马上读取,可能导致其晶振未稳定的时候,就获取其值导致偏差。

    解决方法,在此之间加入一个100cycle delay 看看。


    Lianjie Lin 说:

    在使用过程中,直接调用官方提供的API(mx66l51235f.h),但是在MX66L51235FInit(ui32SysClock);初始化时配置不过,一直停留在Reset_handler段 

    程序断如下,不知道哪里有问题,望高手点拔。

    uint32_t ui32SysClock;
    uint8_t pUiMx66Data[32]={1};
    uint8_t* pstring;
    //
    // Run from the PLL at 120 MHz.
    //
    // ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
    // SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
    // SYSCTL_CFG_VCO_480), 120000000);

    ui32SysClock = SysCtlClockFreqSet(SYSCTL_OSC_INT | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_320,
    40000000);
    //
    // Configure the device pins.
    //
    PinoutSet();


    MX66L51235FInit(ui32SysClock);

    MX66L51235FSectorErase(0);

    MX66L51235FRead(0x00, pUiMx66Data, sizeof(pUiMx66Data));

    MX66L51235FPageProgram(0x00, pUiMx66Data, sizeof(pUiMx66Data));

    MX66L51235FRead(0x100, pUiMx66Data, sizeof(pUiMx66Data));