A library for using FeRAM from Ramtron
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Wed Jul 20 2022 04:29:41 by 1.7.2