MAX20361 Demo Firmware
Dependencies: SX1276GenericLib USBDevice
Fork of PICO_LoRa_Module_developing by
Diff: AO19Lib/AO19_lib.h
- Revision:
- 6:51f492ca61a2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AO19Lib/AO19_lib.h Wed Oct 14 00:19:02 2020 +0000 @@ -0,0 +1,64 @@ +#include "mbed.h" + +//AO19 Registers +#define AO19_DEVICE_ID 0x00 // AO19 Chip ID +#define AO19_BB_CFG0 0x01 // AO19 Buck Boost Configure +#define AO19_BB_VSET 0x02 // AO19 Buck Boost Voltage Set +#define AO19_BB_ISET 0x03 // AO19 Buck Boost Current Set +#define AO19_BB_CFG1 0x04 // AO19 Buck Boost Configure 1 +#define AO19_STATUS 0x05 // AO19 Status Register +#define AO19_INT 0x06 // AO19 Interrupt +#define AO19_MSK 0x07 // AO19 Mask +#define AO19_LOCK_MSK 0x50 // AO19 Lock Mask +#define AO19_PASSWD 0x51 // AO19 Password + +#define DEVICE_ACK 0 +#define DEVICE_NACK 1 +#define DEVICE_BAD_RESP 2 + +#define MAX_DEVICES 64 // Maximum number of rom devices allowed +#define ID_LENGTH 6 // Rom ID length in bytes + +struct AO19_struct { + char rom_id[ID_LENGTH]; // device ROM ID + char I2C_address; // I2C addess, based on GPIO0 and GPIO1 at power up + // Why char? +}; + +// ***************************************************************************** +// AO19_write_register(char, char, char) writes single byte to AO19 +// char I2C address +// char AO19 register address +// char data byte to be writen +// returns 0 on success ACK, 1 on NACK +// ***************************************************************************** +int AO19_write_register(I2C *i2c, char I2C_add, char reg_add, char byte); + +/// **************************************************************************** +// AO19_write_register(char, char, char *, int) writes multiple bytes to AO19 +// char I2C address +// char AO19 register address +// char * data vector of bytes to be written +// int number of bytes to write +// returns 0 on success ACK, 1 on NACK +// ***************************************************************************** +int AO19_write_register(I2C *i2c, char I2C_add, char reg_add, char *bytes, int n); + +// ***************************************************************************** +// AO19_read_register(char, char, char *) reads single byte from AO19 +// char I2C address +// char AO19 register address +// char * data vector for read bytes to be stored in +// returns 0 on success, 1 on fail +// ***************************************************************************** +int AO19_read_register(I2C *i2c, char I2C_add, char reg_add, char *bytes); + +// ***************************************************************************** +// AO19_read_register(char, char, char *, int) reads byte(s) from AO19 +// char I2C address +// char OT07 register address +// char * data vector for read bytes to be stored in +// int number of bytes to read +// returns 0 on success, 1 on fail +// ***************************************************************************** +int AO19_read_register(I2C *i2c, char I2C_add, char reg_add, char *bytes, int n);