Ivo van Poorten
/
SiLabs_C2
Basis for the C2 protocol from Silicon Labs.
Diff: main.cpp
- Revision:
- 8:af5d402396fb
- Parent:
- 7:65a72aad87b8
- Child:
- 9:6a689843a88e
--- a/main.cpp Sun May 25 17:17:40 2014 +0000 +++ b/main.cpp Sun May 25 17:27:52 2014 +0000 @@ -35,42 +35,46 @@ char *name; int devid; } devices[] = { - { "F30x", 0x04 }, - { "F31x", 0x08 }, - { "F32x", 0x09 }, - { "F326/7", 0x0d }, - { "F33x", 0x0a }, - { "F336/7", 0x14 }, - { "F34x", 0x0f }, - { "F35x", 0x0b }, - { "F36x", 0x12 }, - { "F38x", 0x28 }, - { "F39x/F37x", 0x2b }, - { "F41x", 0x0c }, - { "F50x/F51x", 0x1c }, - { "F52xA/F53xA", 0x11 }, - { "F54x", 0x21 }, - { "F55x/F56x/F57x", 0x22 }, - { "F58x/F59x", 0x20 }, - { "F70x/F71x", 0x1e }, - { "F80x/F81x/F82x/F83x", 0x23 }, - { "F90x/F91x", 0x1f }, - { "F92x/F93x", 0x16 }, - { "F96x", 0x2a }, - { "F99x", 0x25 }, - { "T60x", 0x10 }, - { "T606", 0x1b }, - { "T61x", 0x13 }, - { "T62x/T32x", 0x18 }, - { "T622/T623/T326/T327", 0x19 }, - { "T63x", 0x17 }, - { NULL, 0 } + { "F30x", 0x04 }, { "F31x", 0x08 }, + { "F32x", 0x09 }, { "F326/7", 0x0d }, + { "F33x", 0x0a }, { "F336/7", 0x14 }, + { "F34x", 0x0f }, { "F35x", 0x0b }, + { "F36x", 0x12 }, { "F38x", 0x28 }, + { "F39x/F37x", 0x2b }, { "F41x", 0x0c }, + { "F50x/F51x", 0x1c }, { "F52xA/F53xA", 0x11 }, + { "F54x", 0x21 }, { "F55x/F56x/F57x", 0x22 }, + { "F58x/F59x", 0x20 }, { "F70x/F71x", 0x1e }, + { "F80x/F81x/F82x/F83x", 0x23 }, { "F90x/F91x", 0x1f }, + { "F92x/F93x", 0x16 }, { "F96x", 0x2a }, + { "F99x", 0x25 }, { "T60x", 0x10 }, + { "T606", 0x1b }, { "T61x", 0x13 }, + { "T62x/T32x", 0x18 }, { "T622/T623/T326/T327", 0x19 }, + { "T63x", 0x17 }, { NULL, 0 } }; #define C2_MASK_FLBUSY 0x80 #define C2_MASK_INBUSY 0x02 #define C2_MASK_OUTREADY 0x01 +#define C2_PI_CMD_GET_VERSION 0x01 +#define C2_PI_CMD_GET_DERIVATIVE 0x02 + +#define C2_PI_CMD_DEVICE_ERASE 0x03 + +#define C2_PI_CMD_BLOCK_READ 0x06 // FLASH (max. 64K bytes, bankswapping not supported) +#define C2_PI_CMD_BLOCK_WRITE 0x07 // FLASH + +#define C2_PI_CMD_PAGE_ERASE 0x08 + +#define C2_PI_CMD_DIRECT_READ 0x09 // SFR (Special FUnction Registers, 256 bytes(?)) +#define C2_PI_CMD_DIRECT_WRITE 0x0a // SFR + +#define C2_PI_CMD_INDIRECT_READ 0x0b // RAM (Internal, 256 bytes) +#define C2_PI_CMD_INDIRECT_WRITE 0x0c // RAM + +#define C2_PI_CMD_XRAM_READ 0x0e // RAM (External, 2K or 4K bytes) +#define C2_PI_CMD_XRAM_WRITE 0x0f // RAM + #define C2_DEVID 0 #define C2_REVID 1 #define C2_FPCTL 2 @@ -201,8 +205,8 @@ c2d.input(); c2ck = 1; - printf("\033[H\033[J"); - printf("SiLabs C2 Protocol\n\r\n\r"); +// printf("\033[H\033[J"); + printf("\n\rSiLabs C2 Protocol\n\r\n\r"); printf("Connect C2CK (clock) to p5 and C2D (data) to p6\n\r\n\r"); printf("Press any key to continue\n\r");