diff --git a/lib/busvoodoo_i2c.c b/lib/busvoodoo_i2c.c index 74d4919..807457e 100644 --- a/lib/busvoodoo_i2c.c +++ b/lib/busvoodoo_i2c.c @@ -24,18 +24,23 @@ #include // string utilities /* STM32 (including CM3) libraries */ -#include // general purpose input output library -#include // real-time control clock library +#include // I2C library /* own libraries */ #include "global.h" // board definitions #include "print.h" // printing utilities #include "menu.h" // menu definitions -#include "i2c_general.h" // I2C utilities +#include "i2c_master.h" // I2C utilities #include "busvoodoo_global.h" // BusVoodoo definitions #include "busvoodoo_oled.h" // OLED utilities #include "busvoodoo_i2c.h" // own definitions +/** @defgroup busvoodoo_i2c I2C peripheral to communicate with I2C devices + * @{ + */ +#define BUSVOODOO_I2C I2C2 /**< I2C peripheral */ +/** @} */ + /** mode setup stage */ static enum busvoodoo_i2c_setting_t { BUSVOODOO_I2C_SETTING_NONE, @@ -113,7 +118,7 @@ static bool busvoodoo_i2c_setup(char** prefix, const char* line) } } if (BUSVOODOO_I2C_SETTING_DONE==busvoodoo_i2c_setting) { // we have all settings, configure I2C - i2c_general_setup_master(false); // setup I2C + i2c_master_setup(BUSVOODOO_I2C, false); // setup I2C busvoodoo_embedded_pullup(busvoodoo_i2c_embedded_pullup); // set pull-up if (busvoodoo_i2c_embedded_pullup) { printf("set pull-up voltage with LV\n"); @@ -144,7 +149,7 @@ static bool busvoodoo_i2c_setup(char** prefix, const char* line) */ static void busvoodoo_i2c_exit(void) { - // TODO release I2C periph + i2c_master_release(BUSVOODOO_I2C); // release I2C peripheral busvoodoo_embedded_pullup(false); // disable embedded pull-ups } @@ -156,7 +161,7 @@ static void busvoodoo_i2c_exit(void) static void busvoodoo_i2c_command_scan(void* argument) { (void)argument; // we won't use the argument - if (!i2c_general_check()) { // ensure SCL and SDA are high + if (!i2c_master_check_signals(BUSVOODOO_I2C)) { // ensure SCL and SDA are high printf("SCL or SDA is low. The signals need to be pulled up\n"); if (busvoodoo_i2c_embedded_pullup) { printf("set pull-up voltage with LV\n"); @@ -170,20 +175,20 @@ static void busvoodoo_i2c_command_scan(void* argument) uint16_t i2c_slaves = 0; // number of slaves found // check for I2C slaves by going through the address space for (uint16_t address=0; address < (1<7) ? "0x%03x " : "0x%02x ", address); // display address i2c_slaves++; // increase slave count } - i2c_general_stop(); // send stop condition + i2c_master_stop(BUSVOODOO_I2C); // send stop condition } if (i2c_slaves>0) { printf("\n");