Esempio n. 1
0
void w25q80bv_write_enable(w25q80bv_driver_t* const drv)
{
	w25q80bv_wait_while_busy(drv);

	uint8_t data[] = { W25Q80BV_WRITE_ENABLE };
	spi_bus_transfer(drv->bus, data, ARRAY_SIZE(data));
}
void spiflash_write_enable(spiflash_driver_t* const drv)
{
	spiflash_wait_while_busy(drv);

	uint8_t data[] = { SPIFLASH_WRITE_ENABLE };
	spi_bus_transfer(drv->target, data, ARRAY_SIZE(data));
}
Esempio n. 3
0
/* Release power down / Device ID */  
uint8_t w25q80bv_get_device_id(w25q80bv_driver_t* const drv)
{
	uint8_t data[] = {
		W25Q80BV_DEVICE_ID,
		0xFF, 0xFF, 0xFF, 0xFF
	};
	spi_bus_transfer(drv->bus, data, ARRAY_SIZE(data));
	return data[4];
}
/* Release power down / Device ID */  
uint8_t spiflash_get_device_id(spiflash_driver_t* const drv)
{
	uint8_t data[] = {
		SPIFLASH_DEVICE_ID,
		0xFF, 0xFF, 0xFF, 0xFF
	};
	spi_bus_transfer(drv->target, data, ARRAY_SIZE(data));
	return data[4];
}
Esempio n. 5
0
void w25q80bv_get_unique_id(w25q80bv_driver_t* const drv, w25q80bv_unique_id_t* unique_id)
{
	uint8_t data[] = {
		W25Q80BV_UNIQUE_ID,
		0xFF, 0xFF, 0xFF, 0xFF,
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
	};
	spi_bus_transfer(drv->bus, data, ARRAY_SIZE(data));

	for(size_t i=0; i<8; i++) {
		unique_id->id_8b[i]  = data[5+i];
	}
}
void spiflash_get_unique_id(spiflash_driver_t* const drv, spiflash_unique_id_t* unique_id)
{
	uint8_t data[] = {
		SPIFLASH_UNIQUE_ID,
		0xFF, 0xFF, 0xFF, 0xFF,
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
	};
	spi_bus_transfer(drv->target, data, ARRAY_SIZE(data));

	for(size_t i=0; i<8; i++) {
		unique_id->id_8b[i]  = data[5+i];
	}
}
void spiflash_chip_erase(spiflash_driver_t* const drv)
{
	uint8_t device_id;

	device_id = 0;
	while(device_id != drv->device_id) {
		device_id = spiflash_get_device_id(drv);
	}

	spiflash_write_enable(drv);
	spiflash_wait_while_busy(drv);

	uint8_t data[] = { SPIFLASH_CHIP_ERASE };
	spi_bus_transfer(drv->target, data, ARRAY_SIZE(data));
}
Esempio n. 8
0
void w25q80bv_chip_erase(w25q80bv_driver_t* const drv)
{
	uint8_t device_id;

	device_id = 0;
	while(device_id != W25Q80BV_DEVICE_ID_RES)
	{
		device_id = w25q80bv_get_device_id(drv);
	}

	w25q80bv_write_enable(drv);
	w25q80bv_wait_while_busy(drv);

	uint8_t data[] = { W25Q80BV_CHIP_ERASE };
	spi_bus_transfer(drv->bus, data, ARRAY_SIZE(data));
}
Esempio n. 9
0
uint8_t w25q80bv_get_status(w25q80bv_driver_t* const drv)
{
	uint8_t data[] = { W25Q80BV_READ_STATUS1, 0xFF };
	spi_bus_transfer(drv->bus, data, ARRAY_SIZE(data));
	return data[1];
}
Esempio n. 10
0
uint8_t spiflash_get_status(spiflash_driver_t* const drv)
{
	uint8_t data[] = { SPIFLASH_READ_STATUS1, 0xFF };
	spi_bus_transfer(drv->target, data, ARRAY_SIZE(data));
	return data[1];
}