A library for using FeRAM from Ramtron

Dependents:   FeRAM_Hello_World

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers FeRAM.h Source File

FeRAM.h

00001 /*  FeRAM Library
00002 *
00003 *   Martin Smith 2012
00004 *
00005 *   Working with FM25H20-DG 2 Mbit FeRAM IC
00006 */
00007 
00008 #include "mbed.h"
00009 
00010 #ifndef  FERAM_H
00011 #define  FERAM_H
00012 
00013 // LCP1768 SSP regiester defines
00014 #define TNF         0x02    // Transmit buffer not full
00015 #define TFE         0x01    // Transmit buffer full
00016 #define RNE         0x04    // Receive buffer not empty
00017 #define p6_GPIO     0xFFFFCFFF  
00018 #define p14_GPIO    0xFFFFFFFC
00019 #define p6_SSEL     0x00002000
00020 #define p14_SSEL    0x00000002
00021 // FeRAM command defines
00022 #define WREN        0x06    // Write enable
00023 #define WRITE       0x02    // Write command
00024 #define READ        0x03    // Read command
00025 
00026 /*
00027 * Connections for IC:
00028 * chip pin 1 - Chip Select - mbed p8 / p14
00029 * chip pin 2 - MISO - mbed p6 / p12
00030 * chip pin 3 - Write Protect - mbed VOUT (p40)
00031 * chip pin 4 - VSS - mbed GND (p1)
00032 * chip pin 5 - MOSI - mbed p5 / p11
00033 * chip pin 6 - SCLK - mbed p7 / p13
00034 * chip pin 7 - Hold - mbed VOUT (p40)
00035 * chip pin 8 - VDD - mbed VOUT (p40)
00036 */
00037 
00038 class FeRAM {
00039 public:
00040     FeRAM(PinName mosi, PinName miso, PinName sclk);
00041     void write_byte (int address, unsigned char data);
00042     unsigned char read_byte (int address);
00043     void write_multiple_bytes (int start_address, unsigned char* data, int length);
00044     void read_multiple_bytes (int start_address, unsigned char* data, int length);
00045 private:
00046     SPI _spi;
00047     PinName _miso;
00048     void spi_write_SSP0 (unsigned char data);
00049     void spi_write_SSP1 (unsigned char data);
00050 };
00051 #endif