From 016f1ad4e647931c313c7cf7289029a91609c48d Mon Sep 17 00:00:00 2001 From: atomega Date: Mon, 8 Mar 2021 13:37:23 +0000 Subject: [PATCH] first working i2c (only for read&write 8bits) for linux --- developpment/interfacer/Makefile | 4 +- developpment/interfacer/i2c_driver.cpp | 66 ++++++++++++++++++++++--- developpment/interfacer/i2c_driver.h | 24 +++++---- developpment/interfacer/i2c_driver.o | Bin 18980 -> 4232 bytes developpment/interfacer/interfacer.cpp | 8 +-- developpment/interfacer/interfacer.o | Bin 25344 -> 25232 bytes developpment/interfacer/runtest | Bin 44740 -> 36868 bytes 7 files changed, 76 insertions(+), 26 deletions(-) diff --git a/developpment/interfacer/Makefile b/developpment/interfacer/Makefile index 2d7e8f0..523dbd7 100644 --- a/developpment/interfacer/Makefile +++ b/developpment/interfacer/Makefile @@ -1,10 +1,10 @@ -cpp_src = $(wildcard *.cpp) +cpp_src = $(wildcard *.cpp) #c_src = $(wildcard ../c/algorithms/*.c) $(wildcard driver/ma120x0/*.c) cpp_obj = $(cpp_src:.cpp=.o) c_obj = $(c_src:.c=.o) CC = g++ -CFLAGS = -Wall -pedantic +CFLAGS = -Wall -pedantic -li2c LDFLAGS = EXEC = runtest diff --git a/developpment/interfacer/i2c_driver.cpp b/developpment/interfacer/i2c_driver.cpp index e2ba99d..e4b0a67 100644 --- a/developpment/interfacer/i2c_driver.cpp +++ b/developpment/interfacer/i2c_driver.cpp @@ -1,16 +1,66 @@ #include "i2c_driver.h" #include "systemCall.h" -I2C_Driver::I2C_Driver() -{ +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define PORT_I2C "/dev/i2c-1" + + +I2C_Driver::I2C_Driver(const uint8_t& channel, const uint8_t& mode) +{ + char filename[20]; + snprintf(filename, 19, "/dev/i2c-%d", channel); + + deviceDescriptor = open(filename, O_RDWR); + if (deviceDescriptor < 0) { + std::cout << "unable to open : "<< deviceDescriptor << " ! quiting" << std::endl; + exit(1); + } + std::cout << "I2C initialized sucsessfully" << std::endl; } -std::string I2C_Driver::readByte(const uint8_t& address, const uint8_t& reg) +uint8_t I2C_Driver::writeByte(const uint8_t& address, const uint8_t& data) // retuns 0 when a sucsessful transation ocures { - std::string addrs = std::to_string(address); - std::string regs = std::to_string(reg); - std::string command = "i2cget -y 1 " + addrs + " " + regs; - char* c = const_cast(command.c_str()); - return execBash(c); + if (ioctl(deviceDescriptor, I2C_SLAVE, address) < 0) + { + std::cout << "Unable to reach device : "<< address << " ! quiting" << std::endl; + exit(1); + } + + send_buffer[0] = data; + + if ((write(deviceDescriptor, send_buffer, 1)) != 1) + { + std::cout << "Unable to write quiting" << std::endl; + exit(0); + } + return 1; } +uint8_t I2C_Driver::readByte(const uint8_t& address, const uint8_t& reg) +{ + if (ioctl(deviceDescriptor, I2C_SLAVE, address) < 0) + { + std::cout << "Unable to reach device : "<< address << " ! quiting" << std::endl; + exit(1); + } + + if(writeByte(address,reg)) + { + if (read(deviceDescriptor, recieve_buffer, 1) != 1) + { + std::cout << "Unable to read quiting" << std::endl; + exit(1); // ERROR HANDLING: i2c transaction failed + } + } + return recieve_buffer[0] ; +} diff --git a/developpment/interfacer/i2c_driver.h b/developpment/interfacer/i2c_driver.h index b13164d..26396c7 100644 --- a/developpment/interfacer/i2c_driver.h +++ b/developpment/interfacer/i2c_driver.h @@ -1,24 +1,28 @@ #include #include #include +#include "errorHandling.h" class I2C_Driver { public: - I2C_Driver(); - std::string readByte(const uint8_t& address, const uint8_t& reg); + I2C_Driver(const uint8_t& channel, const uint8_t& mode); + uint8_t readByte(const uint8_t& address, const uint8_t& reg); uint16_t readWord(const uint8_t& address, const uint8_t& reg); - bool writeByte(const uint8_t& address, const uint8_t& reg, const uint8_t& data); // retuns 0 when a sucsessful transation ocures - bool writeWord(const uint8_t& address, const uint8_t& reg, const uint16_t& data); // retuns 0 when a sucsessful transation ocures + uint8_t writeByte(const uint8_t& address, const uint8_t& data); // retuns 0 when a sucsessful transation ocures + uint8_t writeWord(const uint8_t& address, const uint8_t& reg, const uint16_t& data); // retuns 0 when a sucsessful transation ocures + private: -/* unsigned char device_address; - unsigned char device_reg; - unsigned char send_buffer[100]; - unsigned char recieve_buffer[100]; - unsigned char blocks; -*/ + int16_t deviceDescriptor; + uint8_t device_address; + uint8_t device_reg; + uint8_t send_buffer[32]; + uint8_t recieve_buffer[32]; + uint8_t blocks; + uint8_t channel; + uint8_t mode; }; diff --git a/developpment/interfacer/i2c_driver.o b/developpment/interfacer/i2c_driver.o index 2fb60286e8662fd419bfc96aefdd64e6cf3f9b86..1bb39e8b109103f7c99c92b840346182a795f707 100644 GIT binary patch literal 4232 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 delta 2760 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 L5zsP7E8qVDnL_u; literal 44740 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