Giter VIP home page Giter VIP logo

rak1500x-mb85rc's Introduction

RAKstar RAKWireless Build Status

RAK1500x-MB85RC library is suitable for RAK15003, RAK15004, RAK15005, they use MB85RC256, MB85RC512, MB85RC1M FRAM (Ferroelectric Random Access Memory), using the ferroelectric process and silicon gate CMOS process technologies for forming the nonvolatile memory cells. Unlike SRAM, the MB85RC is able to retain data without using a data backup battery. The read/write endurance of the nonvolatile memory cells used for the MB85RC has improved to be at least 1012 cycles, significantly outperforming other nonvolatile memory products in the number. The MB85RC does not need a polling sequence after writing to the memory such as the case of Flash memory or E2PROM.

RAKWireless <RAK#>

RAKWireless <RAK#>

RAKWireless <RAK#>

Documentation

  • Product Repository - Product repository for the RAKWireless RAK15003 FRAM 256Kb module.
  • Product Repository - Product repository for the RAKWireless RAK15004 FRAM 512Kb module.
  • Product Repository - Product repository for the RAKWireless RAK15005 FRAM 1Mb module.
  • Documentation - Documentation and Quick Start Guide for the RAK15003 FRAM 256Kb module.
  • Documentation - Documentation and Quick Start Guide for the RAK15004 FRAM 512Kb module.
  • Documentation - Documentation and Quick Start Guide for the RAK15005 FRAM 1Mb module.

Installation

In Arduino IDE open Sketch->Include Library->Manage Libraries then search for RAK1500x-MB85RC.

In PlatformIO open PlatformIO Home, switch to libraries and search for RAK1500x-MB85RC. Or install the library project dependencies by adding

lib_deps =
  RAKWireless/RAKWireless MB85RC FRAM library

into platformio.ini

For manual installation download the archive, unzip it and place the RAK1500x-MB85RC folder into the library directory. In Arduino IDE this is usually /libraries/ In PlatformIO this is usually <user/.platformio/lib>

Usage

The library provides RAK_MB85RC class, which allows communication with MB85RC via IIC. These examples show how to use MB85RC.

This class provides the following methods:

bool RAK_MB85RC::begin(TwoWire &wirePort, uint8_t deviceAddress)

Initialize MB85RC.

Parameters:

Direction Name Function
in wirePort IIC interface used.
in deviceAddress Device address.
return If the device init successful return true else return false.

**void RAK_MB85RC::getID(uint16_t *manuID, uint16_t *prodID) **

Reads the Manufacturer ID and the Product ID frm the IC.

Parameters:

Direction Name Function
in manuID Manufacture ID variable pointer.
in prodID Product ID variable pointer.
return NONE

uint32_t RAK_MB85RC::getDeviceCapacity(void)

Get device capacity.

Parameters:

Direction Name Function
return Device capacity.(Unit: Byte).

**uint8_t RAK_MB85RC::getDeviceType(void) **

Get device type. @FRAM_MODEL_t

Parameters:

Direction Name Function
return Device type.

**void RAK_MB85RC::write(uint32_t regAddr ,uint8_t *date , uint32_t size) **

Write data of specified length to specified address through IIC.

Parameters:

Direction Name Function
in regAddr Write address.
in date Write data pointer.
in size The length of the written data.
return NONE

**void RAK_MB85RC::read(uint32_t regAddr, uint8_t *date, uint32_t size) **

Read data of specified length to specified address through IIC.

Parameters:

Direction Name Function
in regAddr Read address.
in date Read data pointer.
in size The length of the read data.
return NONE

rak1500x-mb85rc's People

Contributors

nerodu avatar beegee-tokyo avatar

Watchers

 avatar James Cloos avatar Phoenix Eve Aspacio avatar Todor Velev avatar  avatar

Forkers

sspw

rak1500x-mb85rc's Issues

Bug when address is changed MB85RC.begin(Wire , DEV_ADDR)

I tried using Adafruit 256Kbit / 32KByte module with this library, while waiting for some RAK15004 modules to arrive.

The library example works fine with the RAK15004 module and 0x56.

Using the library example and changing ...

#define DEV_ADDR MB85RC_DEV_ADDRESS
...
Wire.begin();
while(MB85RC.begin(Wire , DEV_ADDR) == false)

to

#define DEV_ADDR 0x50

with a stock Adafruit module, the 0x50 address passed is not used and the module is not found.
Forcing the adafruit module to 0x56 with 10k resistors to Vcc on A2 and A1, the library example works.

I understand all the RAK Fram modules come with 0x56.
However a RAK user might want/need to modify a rak module A0/A1/A2 config for some reason, ie conflict with other modules. etc.
And it that isnt supported, 0x56 is the only address to be supported, then why pass an address?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.