9 years, 4 months ago.

How to add support for LPC4088 and LPC4337?

Hello,

I would like to add support for the LPC4088 and LPC4337 so that I can make a custom PCB for them in the future. Is this possible? There is already a development board for each chip, so the settings should already be in the code somewhere? However I don't know which settings are the ones that need to be changed. Thank you.

LPC4088 https://developer.mbed.org/platforms/EA-LPC4088/

LPC4337 https://developer.mbed.org/platforms/LPCXpresso4337/

Question relating to:

this transfers data (which is stored in "bin" file in mbed storage) into LPC1114, LPC1115, LPC81x, LPC82x, LPC1768/LPC1769 and LPC11U68/LPC11E68 internal flash memory through ISP. In-System Programming, ISP, LPC1114, lpc1115, LPC11U68, LPC1768, LPC1769, LPC810, LPC811, LPC812, LPC81x, LPC822, LPC824, LPC82x

1 Answer

9 years, 4 months ago.

Hello,

Ika_shouyu_poppoyaki doesn't support those chips at this moment.

If you need to add unsupported MCU, it may be able to be done on a file "target_table.cpp".
Next code is a table which shows supporting chips and its parameters.

Recipe for adding chip support is available in Japanese only. I'll try to find time to translate.

target_table.h

typedef struct  taget_param_st {
    char            *type_name;
    int             id;
    int             ram_size;
    int             flash_size;
    int             sector_size;
    int             write_type;
    unsigned int    ram_start_address;
}
target_param;

target_table.cpp

target_param    target_table[]  = {
    { "unknown ttarget",        0xFFFFFFFF, 1024,    4096, 4096, UUENCODE, 0x10000200 },
    { "LPC1114FN28(FDH28)/102", 0x0A40902B, 4096,   32768, 4096, UUENCODE, 0x10000200 },
    { "LPC1114FN28(FDH28)/102", 0x1A40902B, 4096,   32768, 4096, UUENCODE, 0x10000200 },
    { "LPC810M021FN8",          0x00008100, 1024,    4096, 1024, BINARY,   0x10000300 },
    { "LPC811M001JDH16",        0x00008110, 2048,    8192, 1024, BINARY,   0x10000300 },
    { "LPC812M101JDH16",        0x00008120, 4096,   16384, 1024, BINARY,   0x10000300 },
    { "LPC812M101JD20",         0x00008121, 4096,   16384, 1024, BINARY,   0x10000300 },
    { "LPC812M101JDH20",        0x00008122, 4096,   16384, 1024, BINARY,   0x10000300 },
///added for LPC82x series
    { "LPC824M201JHI33",        0x00008241, 8192,   32768, 1024, BINARY,   0x10000300 },
    { "LPC822M101JHI33",        0x00008221, 4096,   16384, 1024, BINARY,   0x10000300 },
    { "LPC824M201JDH20",        0x00008242, 8192,   32768, 1024, BINARY,   0x10000300 },
    { "LPC822M101JDH20",        0x00008222, 4096,   16384, 1024, BINARY,   0x10000300 },
///added for LPC176x series
    { "LPC1769FBD100",          0x26113F37, 65536, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 },
    { "LPC1768FBD100",          0x26013F37, 65536, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 },
///added for LPC11U(E)68x series
    { "LPC11U68JBD100",         0x00007C00, 36864, 262144, SECTOR_SIZE_VALIABLE4Kx24_AND_32KxN, UUENCODE, 0x10000300 },
    { "LPC11E68JBD100",         0x00007C01, 36864, 262144, SECTOR_SIZE_VALIABLE4Kx24_AND_32KxN, UUENCODE, 0x10000300 },
};

Table shows type name and its parameters. The parameters can be found on usermanual and datasheet.

Thanks for the reply Tedd. I looked into it a little more, and it seems like HAPI-Tech also made some changes to the int find_sector( int data_size, target_param *tpp ) function when he added support for the LPC11U(E)68x series.

https://developer.mbed.org/users/Hapi_Tech/code/ika_shouyu_poppoyaki/rev/57ad8e04f063

Since the LPC4088 and LPC4337 are both Cortex-M4 chips with hardware floating point unit (FPU), I was wondering if there needs to be more changes than just the target_param table.

I'll look into the datasheet and manual to try and find the following information for both chips and report back. char *type_name; int id; int ram_size; int flash_size; int sector_size; int write_type; unsigned int ram_start_address;

posted by Michael Chuah 24 Jul 2015

For LPC4088 (Datahseet: http://www.nxp.com/documents/data_sheet/LPC408X_7X.pdf) type_name = LPC4088FET208; id = ???; ram_size = 524288; % 512 kB flash_size = 98304; % 96 kB sector_size = ??? write_type = ??? ram_start_address = ???

I looked into the memory map on page 52 (Table 4.), but I don't know what value to use for the ram start address. ID, sector size, and write time are also not found in the pdf. Hope this helps.

posted by Michael Chuah 24 Jul 2015

I tried to pick up the values for LPC4088.
Could you try this?

{ "LPC4088", 0x481D3F47, 98304, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 }

posted by Tedd OKANO 24 Jul 2015