uint8_t w25q80bv_get_status(void) { uint8_t value; gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); ssp_transfer(SSP0_NUM, W25Q80BV_READ_STATUS1); value = ssp_transfer(SSP0_NUM, 0xFF); gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); return value; }
int command_lpc_ssp(struct cli *t, int argc, char **argv) { int i; char *end; uint8_t rb, tb; bool_t flag; if(argc) { if(!strcmp("speak", argv[0])) { if(argc > 1) { printf("exchanging %d words:\n", argc - 1); //csel_scp(1); for(i = 1; i < argc; i++) { if(scan_byte(argv[i], &tb)) { rb = ssp_transfer(tb); printf(" %02x -> %02x\n", tb, rb); } else { printf(" %s invalid\n", argv[i]); break; } } //csel_scp(0); } } else if (!strcmp("trace", argv[0])) { if(argc > 1) { if(scan_bool(argv[1], &flag)) { ssp_enable_trace(flag); } } else { ssp_enable_trace(BOOL_TRUE); } } } return 0; }
void lcdWrite(uint8_t cd, uint8_t data) { uint16_t frame = 0x0; frame = cd << 8; frame |= data; ssp_transfer(LCD_SSP, frame ); }
/* Release power down / Device ID */ uint8_t w25q80bv_get_device_id(void) { uint8_t value; gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); ssp_transfer(SSP0_NUM, W25Q80BV_DEVICE_ID); /* Read 3 dummy bytes */ value = ssp_transfer(SSP0_NUM, 0xFF); value = ssp_transfer(SSP0_NUM, 0xFF); value = ssp_transfer(SSP0_NUM, 0xFF); /* Read Device ID shall return 0x13 for W25Q80BV */ value = ssp_transfer(SSP0_NUM, 0xFF); gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); return value; }
void w25q80bv_get_unique_id(w25q80bv_unique_id_t* unique_id) { int i; uint8_t value; uint32_t addr; gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); if(device_id == W25Q80BV_DEVICE_ID_RES) { ssp_transfer(SSP0_NUM, W25Q80BV_UNIQUE_ID); /* Read 4 dummy bytes */ for(i=0; i<4; i++) value = ssp_transfer(SSP0_NUM, 0xFF); /* Read Unique ID 64bits (8*8) */ for(i=0; i<8; i++) { value = ssp_transfer(SSP0_NUM, 0xFF); unique_id->id_8b[i] = value; } }else if(device_id == S25FL032P_DEVICE_ID_RES) { addr = S25FL032P_OTP_SN1_ADDR; ssp_transfer(SSP0_NUM, S25FL032P_READ_OTP); ssp_transfer(SSP0_NUM, (addr & 0xFF0000) >> 16); ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); ssp_transfer(SSP0_NUM, addr & 0xFF); ssp_transfer(SSP0_NUM, 0xFF); /* Dummy byte */ /* Read Unique ID 64bits (8*8) */ for(i=0; i<8; i++) { value = ssp_transfer(SSP0_NUM, 0xFF); unique_id->id_8b[i] = value; } }