Skip to content

trembel/aem10900

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AEM10900 Driver

This repository contains driver for the AEM10900 energy harvester.

The AEM10900 is a fully integrated and compact battery charger circuit that extracts DC power from a solar cell to store energy in a rechargeable battery. This compact and ultra- efficient battery charger allows to extend battery lifetime and eliminates the primary energy storage in a large range of wireless application, such as wearable and medical applications and Smart sensors. Thanks to its Maximum Power Point Tracking and its ultra-low power boost converter, the AEM10900 harvests the maximum available input power from a source to charge a storage element, such as a Li-ion battery. The boost converter operates with input voltages in a range from 115 mV to 1.5 V. With its unique cold-start circuit, it can start operating with an input voltage as low as 250 mV and an input power of only 5 μW. The output voltages are in a range of 2.8 V to 4.8 V. – e-peas

The repository is build on top of the datasheet DS-AEM10900-v1.5 and contains:

The YAML specification of the driver, as used by Reginald to create the struct fields

YAML Transpile Instruction

The yaml file can be automatically parsed using Reginald, based on branch schilkp/rust, commit dc4ff0d.

Rust version

The rust version is built (from within rust/src/) using:

reginald gen -i ../../aem10900.yaml -o registers.rs rs-structs --enum-derive "Debug" --struct-derive "Debug" --enum-derive "PartialEq" --struct-derive "PartialEq"

C version

The C version is built (from within c/) using:

reginald gen -i ../aem10900.yaml -o aem10900_reg.h c-funcpack

Markdown Datasheet

The markdown datasheet is build (from within /) by using:

reginald gen -i ./aem10900.yaml -o aem10900.md md-datasheet

Rust driver

The rust driver consists of lib.rs, device.rs, config.rs, error.rs and registers.rs. registers.rs is the only auto-created file using reginald, and contains the register structs as well as pack/unpack functions.

C driver

The C driver consists of aem10900.c, aem10900.h and aem10900_reg.h. aem10900_reg.h is the only auto-created file using reginald, and contains the register structs as well as pack/unpack functions.

Example projects for C and Rust

The example projects make automatically use of the drivers described above, and can be used as a reference for the implementation. The following pinout holds:

PeripheralFunctionality
I2C1I2C peripheral used for communication
PB8SCL pin used together with I2C1
PB7SDA pin used together with I2C1
GPDMA1_CH0DMA channel for TX on I2C1
GPDMA1_CH1DMA channel for RX on I2C1

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages