Avoid excessive SPI re-configuration in run-time of SPI flash.

This commit is contained in:
EmergReanimator 2022-01-30 09:49:07 +01:00
parent f610b6b190
commit 2a1f586634
1 changed files with 4 additions and 3 deletions

View File

@ -105,7 +105,6 @@ bool spi_flash_sector_command(uint8_t command, uint32_t address) {
bool spi_flash_write_data(uint32_t address, uint8_t *data, uint32_t data_length) {
uint8_t request[4] = {CMD_PAGE_PROGRAM, 0x00, 0x00, 0x00};
common_hal_busio_spi_configure(&supervisor_flash_spi_bus, spi_flash_baudrate, 0, 0, 8);
// Write the SPI flash write address into the bytes following the command byte.
address_to_bytes(address, request + 1);
if (!flash_enable()) {
@ -126,7 +125,6 @@ bool spi_flash_read_data(uint32_t address, uint8_t *data, uint32_t data_length)
request[0] = CMD_FAST_READ_DATA;
command_length = 5;
}
common_hal_busio_spi_configure(&supervisor_flash_spi_bus, spi_flash_baudrate, 0, 0, 8);
// Write the SPI flash read address into the bytes following the command byte.
address_to_bytes(address, request + 1);
if (!flash_enable()) {
@ -144,7 +142,6 @@ void spi_flash_init(void) {
cs_pin.base.type = &digitalio_digitalinout_type;
common_hal_digitalio_digitalinout_construct(&cs_pin, SPI_FLASH_CS_PIN);
// Set CS high (disabled).
common_hal_digitalio_digitalinout_switch_to_output(&cs_pin, true, DRIVE_MODE_PUSH_PULL);
common_hal_digitalio_digitalinout_never_reset(&cs_pin);
@ -152,6 +149,8 @@ void spi_flash_init(void) {
supervisor_flash_spi_bus.base.type = &busio_spi_type;
common_hal_busio_spi_construct(&supervisor_flash_spi_bus, SPI_FLASH_SCK_PIN, SPI_FLASH_MOSI_PIN, SPI_FLASH_MISO_PIN);
common_hal_busio_spi_never_reset(&supervisor_flash_spi_bus);
return;
}
void spi_flash_init_device(const external_flash_device *device) {
@ -160,4 +159,6 @@ void spi_flash_init_device(const external_flash_device *device) {
if (spi_flash_baudrate > SPI_FLASH_MAX_BAUDRATE) {
spi_flash_baudrate = SPI_FLASH_MAX_BAUDRATE;
}
common_hal_busio_spi_configure(&supervisor_flash_spi_bus, spi_flash_baudrate, 0, 0, 8);
return;
}