Close
0%
0%

Flash Driver / Structures for Mooltipass

A driver written in C for the Mooltipass prototype to support the AT45DBXX series Flash Chips (1M, 2M, 4M, 8M, 16M, and 32M).

Similar projects worth following
The Flash Chip used in the mooltipass prototype was the AT45DB01 1M Chip. The mooltipass team decided to support the entire AT45DBXX Series Chip to allow for more credential store and to make it possible (size wise) to store 'large' data such as ssh keys. The AT45DBXX Series chip is connected to the mooltipass on a ATMega32u4 SPI bus.

The driver is a C library that offers an API for interfacing with the flash chip and supports flash sector erases, flash block erases, flash page erases, writing data to a flash page (or offset of a page) and reading data from a flash page (or offset of a page).

The library was designed to support AT45DBXX Series by changing a single #define. This library only supports the 1M, 2M, 4M, 8M, 16M, and 32M variant of the AT45DBXX Series due to address limitations (will be detailed later).

The initial low level Library is finished, tested, and verified on all 6 supported chips.  I wrote a testing program that supports output both via the OLED and USB and exercises the flash chip.  I also created my own testing 'rig' that allows me to easily replace the flash chip.  I needed to use a level  converter IC that is not on the mooltipass to handle the spi bus connection length.

The next steps for the Flash Driver / Structures is to implement the node structure.  

  • 1 × AT45DB011D Memory ICs / FLASH Memory
  • 1 × AT45DB021E Memory ICs / FLASH Memory
  • 1 × AT45DB041E Memory ICs / FLASH Memory
  • 1 × AT45DB081E
  • 1 × AT45DB161E Memory ICs / FLASH Memory

View all 10 components

  • Initial Full Set Flash Test

    mikeneiderhauser04/10/2014 at 01:31 0 comments

    START Flash Test Suite 1M Chip


    ----Flash Test----
    Flash Init Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test + Offset
    PASSED

    ----Flash Test----
    Flash Erase Page
    PASSED

    ----Flash Test----
    Flash Erase Block
    PASSED

    ----Flash Test----
    Flash Erase Sector X
    PASSED

    ----Flash Test----
    Flash Erase Sector 0
    PASSED

    ----Flash Test----
    END Flash Test Suite 1M Chip
    PASSED

    -----------------------------------

    START Flash Test Suite 2M Chip

    ----Flash Test----
    Flash Init Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test + Offset
    PASSED

    ----Flash Test----
    Flash Erase Page
    PASSED

    ----Flash Test----
    Flash Erase Block
    PASSED

    ----Flash Test----
    Flash Erase Sector X
    PASSED

    ----Flash Test----
    Flash Erase Sector 0
    PASSED

    ----Flash Test----
    END Flash Test Suite 2M Chip
    PASSED

    -----------------------------------

    START Flash Test Suite 4M Chip

    ----Flash Test----
    Flash Init Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test + Offset
    PASSED

    ----Flash Test----
    Flash Erase Page
    PASSED

    ----Flash Test----
    Flash Erase Block
    PASSED

    ----Flash Test----
    Flash Erase Sector X
    PASSED

    ----Flash Test----
    Flash Erase Sector 0
    PASSED

    ----Flash Test----
    END Flash Test Suite 4M Chip
    PASSED

    -----------------------------------

    START Flash Test Suite 8M Chip

    ----Flash Test----
    Flash Init Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test + Offset
    PASSED

    ----Flash Test----
    Flash Erase Page
    PASSED

    ----Flash Test----
    Flash Erase Block
    PASSED

    ----Flash Test----
    Flash Erase Sector X
    PASSED

    ----Flash Test----
    Flash Erase Sector 0
    PASSED

    ----Flash Test----
    END Flash Test Suite 8M Chip
    PASSED

    -----------------------------------

    START Flash Test Suite 16M Chip

    ----Flash Test----
    Flash Init Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test + Offset
    PASSED

    ----Flash Test----
    Flash Erase Page
    PASSED

    ----Flash Test----
    Flash Erase Block
    PASSED

    ----Flash Test----
    Flash Erase Sector X
    PASSED

    ----Flash Test----
    Flash Erase Sector 0
    PASSED

    ----Flash Test----
    END Flash Test Suite 16M Chip
    PASSED

    -----------------------------------

    START Flash Test Suite 32M Chip

    ----Flash Test----
    Flash Init Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test
    PASSED

    ----Flash Test----
    Flash Write/Read Test + Offset
    PASSED

    ----Flash Test----
    Flash Erase Page
    PASSED

    ----Flash Test----
    Flash Erase Block
    PASSED

    ----Flash Test----
    Flash Erase Sector X
    PASSED

    ----Flash Test----
    Flash Erase Sector 0
    PASSED

    ----Flash Test----
    END Flash Test Suite 32M Chip
    PASSED

View project log

Enjoy this project?

Share

Discussions

Mathieu Stephan wrote 04/10/2014 at 12:21 point
neat!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates