/** * bus->driver->(*read_start) * */ static void bf533_ezkit_bus_read_start( bus_t *bus, uint32_t adr ) { part_t *p = PART; chain_t *chain = CHAIN; select_flash( bus ); part_set_signal( p, AOE, 1, 0 ); part_set_signal( p, AWE, 1, 1 ); setup_address( bus, adr ); set_data_in( bus ); chain_shift_data_registers( chain, 0 ); }
//===========================================================================// // чете Status Reg на Flash чипа uint8_t AT45DB_ReadStatusReg( void ) { // char res; // set_spi(2, 0); // spi_io(0xFF); spi_io(0xFF); // select_flash(); // CS > Low ( active ) // spi_io(0x57); // 'read_status_reg' cmd // res = spi_io(0xFF); // deselect_flash(); // CS > High ( inactive ) // return res; uint8_t u8ResultL; select_flash(); u8ResultL = SPI_TX( 0xd7 ); u8ResultL = SPI_TX( 0x00 ); deselect_flash(); return u8ResultL; }
/** * bus->driver->(*write) * */ static void bf533_ezkit_bus_write( bus_t *bus, uint32_t adr, uint32_t data ) { part_t *p = PART; chain_t *chain = CHAIN; // printf("Writing %04X to %08X...\n", data, adr); select_flash( bus ); part_set_signal( p, AOE, 1, 1 ); setup_address( bus, adr ); setup_data( bus, data ); chain_shift_data_registers( chain, 0 ); part_set_signal( p, AWE, 1, 0 ); chain_shift_data_registers( chain, 0 ); part_set_signal( p, AWE, 1, 1 ); unselect_flash( bus ); chain_shift_data_registers( chain, 0 ); }