5 Replies Latest reply on May 26, 2019 10:44 PM by AmyW_86

    MB91F526LSB 1828 801 erase process

    krboc_4116076

      I am from Intel.

       

      In my project I am using two IO controllers same version but different manufacturing dates

      1. Old(MB91F526LSB 1551 Z01)
      2. New(MB91F526LSB 1828 801)

       

      I am able to erase Old(MB91F526LSB 1551 Z01) IO controller memory with my bootloader code, I used same bootloader code to erase New(MB91F526LSB 1828 801) IO controllers but  last sector was not erased on New(MB91F526LSB 1828 801) IO controllers device.

       

      Erase process:

      Doing erase process for every sector from 0x7C000UL to 0x17FFFF and excepting 0xFF in the erased memory.

      uart_print_debug_string("Erasing main application flash area ... \n");

      flash_routines_erase_sector( 0x7C000UL);                

      flash_routines_erase_sector( 0x80000UL);

      flash_routines_erase_sector( 0xA0000UL);

      flash_routines_erase_sector( 0xC0000UL);

      flash_routines_erase_sector( 0xE0000UL);

      flash_routines_erase_sector(0x100000UL);

      flash_routines_erase_sector(0x120000UL);

      flash_routines_erase_sector(0x140000UL);

      flash_routines_erase_sector(0x160000UL);

      blank_check_result = flash_routines_blank_check(0x7C000, 0x17FFFF);       ==>blank check(checking for 0xFF) failed for last sector(from0x160000UL to  0x17FFFF) of New(MB91F526LSB 1828 801) device.

       

      Erase sequence(here x is sector address)

      #define MAINFLASH_SECTOR_ERASE_SEQUENCE(X) *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00001554 ) = 0x00AA; \

                  *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00000AA8 ) = 0x0055; \

                  *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00001554 ) = 0x0080; \

                  *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00001554 ) = 0x00AA; \

                  *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00000AA8 ) = 0x0055; \

                  *(volatile unsigned short *)( X ) = 0x0030;

       

       

      Is there any deference to erase new(MB91F526LSB 1828 801)IO controller memory apart from old(MB91F526LSB 1551 Z01) IO controller memory ?.

      If it’s possible can you please provide sample code to erase New(MB91F526LSB 1828 801) IO controller memory.

        • 1. Re: MB91F526LSB 1828 801 erase process
          AmyW_86

          Is it possible to erase the last sector of new lot MCU with Cypress Flash MCU Programmer via UART interface?

           

          https://www.cypress.com/documentation/software-and-drivers/flash-mcu-programmer-1

           

          Best regards,

          Amy Wang

          • 2. Re: MB91F526LSB 1828 801 erase process
            krboc_4116076

            I am able to program IO controller Memory whenever I connected “MB2100-01A-E Single Port Embedded Emulator Debugger SPEED-BOX” only with my boot loader code, without “MB2100-01A-E Single Port Embedded Emulator Debugger SPEED-BOX” I am seeing issues with the same boot loader code.

             

            I am not sure how it is making difference with “MB2100-01A-E Single Port Embedded Emulator Debugger SPEED-BOX” connection,

            Can you please share your insights on this issue,

            My assumptions

            ->it is may be because of memory sink.

            ->may be voltages issues on board.

            • 3. Re: MB91F526LSB 1828 801 erase process
              AmyW_86

              What's the interface for your bootloader to program application code to MCU?

               

              For the MB2100-01A, if you also connected it to your PC with USB power on? Could you please check the voltage level of VCC (power supply to MCU) pin, C pin, mode pin and external crystal pins when MB2100-01A connected and disconnected? If you have the same issue with all your hardware board?

               

              Best regards,

              Amy Wang

              • 4. Re: MB91F526LSB 1828 801 erase process
                krboc_4116076

                In my project I am using two IO controllers same version but different manufacturing dates

                1. Old(MB91F526LSB 1551 Z01)
                2. New(MB91F526LSB 1828 801)

                There is no issue with erase, after erase done we are doing blank check from 0x74000 to 0x17FFFF, on  New(MB91F526LSB 1828 801) board watch dog(WDTCPR1) trimmer expired, because of this I am not able to flash my code, but in old boards I didn’t see this issue.

                 

                I am able to flash my code by connecting debugger because watch dog trimmer was disabled.

                 

                Is there any way to calibrate the watch dog trimmer(WDTCPR1) or any difference on clock ?

                 

                Please see for more info on issue.

                • 5. Re: MB91F526LSB 1828 801 erase process
                  AmyW_86

                  Hello,

                   

                  Hardware watchdog (WDT1) is clocked by the internal built-in CR clock (100KHz +-50KHz). The CR clock frequency of each MCU may be different.

                  1. The watchdog clear in your bootloader may need meet the worst case;

                  2. CY91520 don't support CR clock calibration but can measure the CR clock errors.

                  //Chapter 29: RTC/WDT1 Calibration of MB91520 Series Hardware Manual

                  Best regards,

                  Amy Wang