Skip to content

Arduino sketch for flash memory testing as part of the payload of the TEIDESAT-I cubesat. WIP.

Notifications You must be signed in to change notification settings

Teidesat/SpaceRad-memory-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TEIDESAT-I Radiation memory experiment

Testing the radiation resistance of a FRAM, MRAM, NAND Flash, NOR Flash and EEPROM is one of the experiments of the cubesat TEIDESAT-I; the objective is to verify that the memories are in a failureless operational state.

Breakout board

An arduino chip is to be connected with the following board:

docs/breaktout_board.png

How to build

Four main files at src/ represent each a build target for platform.io, one for each memory type. Using VSCode and PlatformIO Extension head to PlatformIO extension's interface and press build on demand when looking into executing one of those main files.

EEPROM build example

Upload and monitor altenatively once an arduino has been connected to the computer.

TODO

  • Find a better way to have independent sketch main files in src/ so that they can be compiled independently. Current approach involves excluding specific main files in the platformio.ini depending on the build target, but if a new main file is added to src/ while not being aware of the approach then build problems will arise.

  • Test on real hardware, right now it is all theoretical programming based on the memory datasheets. 30/8/2023

  • Because EEPROM has a delay when writing, check if the current code for writeByte and writePage is valid or if they need a delay to take into account the write cycle. Maybe reading the WIP flag on the status register is a viable approach. 30/8/2023

  • In EEPROM's writeByte and writePage an enable write is performed first, but I am unsure about whether it's write enable instruction can be always performed or only if the memory is not busy. 30/8/2023

  • Implement fast read in FRAM memory class. 30/8/2023.

  • Expand NANDFlash class definition with read methods for dual and quad transmission modes. 5/9/2023

  • Update NAND Flash's interface to allow buffer mode read/write. 5/9/2023

  • Check if SR Addresses in NAND Flash corresponding to SR-1, SR-2, SR-3 are either 0, 1, 2 respectively or 1, 2, 3. 5/9/2023

  • Verify for NAND Flash that BUF = 1 after a Page Data Buffer, because the datasheet (8.2.26) mentions that all instructions will be done in buffer mode after a Page Data Buffer instruction has been performed. 6/9/2023

  • Change NAND Flash readByte()'s behavior so that it doesn't always load the data buffer page. Possibly by allowing separate page data load. 6/9/2023

  • In NAND Flash, check if readByte() and readPage() include the 64 ECC bytes on the output or can be accessed. 6/9/2023

  • In NAND Flash, check if write enable and write status register instructions can be executed anytime. 6/9/2023

  • In NAND Flash, confirm whether eraseBlock does indeed erase the block associated with the addressed page. 6/9/2023

  • In NOR Flash update the SPI clock transmission speed constant to 90 MHz whenever the class has been updated to use Double Transfer Rate. 7/9/2023

  • Define NOR Flash according to it's datasheet. 12/09/2023

  • Check powerup delay time in the FRAM's datasheet to update the fram_test.cpp (fram's main file). 12/09/2023

  • Add "@post Write is disabled." comment on write functions on the memories as necessary. 12/09/2023

About

Arduino sketch for flash memory testing as part of the payload of the TEIDESAT-I cubesat. WIP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages