QSpiFlash class¶
-
class
QSpiFlash
¶ Initialize a a QspiFlash peripheral (external flash memory handled by qspi). This peripheral is available only for stm32l4 family chip and for Polaris device the auto_init is implemented (pins and memory data already configured).
To initialize a custom external memory qspi flash several params must be passed to the init method:
Parameters: - d0 – D0 pin of the Qspi peripheral
- d1 – D1 pin of the Qspi peripheral
- d2 – D2 pin of the Qspi peripheral
- d3 – D3 pin of the Qspi peripheral
- clk – CLK pin of the Qspi peripheral
- cs – CS pin of the Qspi peripheral
- flash_size – Flash size of the qspi flash
- block_size – Block size of the qspi flash
- subblock_size – Sub-block size of the qspi flash
- sector_size – Sector size of the qspi flash
- page_size – Page size of the qspi flash
- dummy_cycles_read – Dummy cycles simple read
- dummy_cycles_read_dual – Dummy cycles Dual flash read
- dummy_cycles_read_quad – Dummy cicles Quad Flash read
- dummy_cycles_2read – Dummy cycles 2read
- dummy_cycles_4read – Dummy Cycles 4read
- alt_bytes_pe_mode – Alternate Bytes for PE mode
- alt_bytes_no_pe_mode – Alternate Bytes for NO PE mode
- sr_wip – Write in progress of the flash mamory status register
- sr_wel – Write enable latch of the flash mamory status register
- sr_bp – Block protect of the flash mamory status register
- sr_srwd – Write disable of the flash mamory status register
- sr1_qe – Quad enable of the flash mamory status register1
- sr1_sus – Suspend status of the flash mamory status register1
-
get_geometry
()¶ Return a tuple holding flash geometry:
- flash_size, Flash size of the qspi flash
- block_size, Block size of the qspi flash
- subblock_size, Sub-block size of the qspi flash
- sector_size, Sector size of the qspi flash
- page_size, Page size of the qspi flash
-
write_data
(addr, data)¶ Write data data starting from address addr. data can be a bytearray or a list of integers less than 256.
erase_sector()
MUST be called before writing data in a sector.Writing is also allowed via bracket notation. The following is valid syntax:
my_flash[addr] = data
-
erase_sector
(addr)¶ Erase a whole sector passing the addr address of any byte contained in it. All sector bytes set to 0xff.
-
erase_block
(addr)¶ Erase a memory block passing the addr address of any byte contained in it. All block bytes set to 0xff.
-
read_data
(addr, n=1)¶ Read n bytes of data starting from address addr.
Reading is also allowed via bracket notation. The following is valid syntax:
my_data = my_flash[addr:addr+n]
-
chip_erase
()¶ Erase the whole memory. All memory bytes set to 0xff.
-
done
()¶ Close the QspiFlash peripheral.
-
wakeup
()¶ Wake Up the QspiFlash peripheral from sleep mode.
-
sleep
()¶ Put the QspiFlash peripheral in sleep mode.