From 36c91832ac41697c8df9f6c188f73361eef12ddb Mon Sep 17 00:00:00 2001 From: atomega Date: Wed, 17 Mar 2021 17:09:54 +0000 Subject: [PATCH] started on pca9685 driver --- developpment/Makefile | 2 +- developpment/drivers/pca9685/pca9685.cpp | 132 +++++++++++++++++++++++ developpment/drivers/pca9685/pca9685.h | 80 ++++++++++++++ developpment/drivers/pca9685/pca9685.o | Bin 0 -> 9336 bytes developpment/drivers/pf8574/pf8574lcd.c | 21 +--- developpment/drivers/pf8574/pf8574lcd.o | Bin 3840 -> 3772 bytes developpment/interfacer.cpp | 26 ++--- developpment/interfacer.o | Bin 25756 -> 25544 bytes developpment/runtest | Bin 52584 -> 57656 bytes 9 files changed, 230 insertions(+), 31 deletions(-) create mode 100644 developpment/drivers/pca9685/pca9685.cpp create mode 100644 developpment/drivers/pca9685/pca9685.h create mode 100644 developpment/drivers/pca9685/pca9685.o diff --git a/developpment/Makefile b/developpment/Makefile index df753da..ba618ee 100644 --- a/developpment/Makefile +++ b/developpment/Makefile @@ -1,4 +1,4 @@ -cpp_src = $(wildcard *.cpp) $(wildcard ./drivers/bh1750/*.cpp) $(wildcard ./management/*.cpp) $(wildcard ./systems/*.cpp) $(wildcard ./periferals/i2c/*.cpp) +cpp_src = $(wildcard *.cpp) $(wildcard ./drivers/bh1750/*.cpp) $(wildcard ./drivers/pca9685/*.cpp) $(wildcard ./management/*.cpp) $(wildcard ./systems/*.cpp) $(wildcard ./periferals/i2c/*.cpp) c_src = $(wildcard ./drivers/pf8574/*.c) diff --git a/developpment/drivers/pca9685/pca9685.cpp b/developpment/drivers/pca9685/pca9685.cpp new file mode 100644 index 0000000..2952390 --- /dev/null +++ b/developpment/drivers/pca9685/pca9685.cpp @@ -0,0 +1,132 @@ +#include "pca9685.h" + + +Pca9685::Pca9685(i2c_ch1_pImpL* i2c, ErrorHandler* err) +{ + i2c_pca9685 = i2c; + errorHandling = err; + m_isExternalClock = 0; + m_oscillatorFreq = PCA9685_FREQUENCY_OSCILLATOR; + setPwmFreq(200); + m_currentLED = PCA9685_LED_PWM_REG_START; + + errorHandling->addNewError(-1,__FILE__,"Selected duty cycle is too big",KILL); + errorHandling->addNewError(-2,__FILE__,"Selected duty cycle is too small",KILL); + errorHandling->addNewError(-3,__FILE__,"Selected PWM frequency is too fast",SPARE); + errorHandling->addNewError(-4,__FILE__,"Selected PWM frequency is too slow",SPARE); + errorHandling->addNewError(-5,__FILE__,"Oscillator frequency can't be 0 or inferior to 0",KILL); + errorHandling->addNewError(-6,__FILE__,"Oscillator frequency cant't be higher than 50 MHz",KILL); + +} + +/*Refere to datasheet page 52 + * + * + * osc_clock + * prescale vlaue = _______________________ - 1 + * 4096 * update_rate + * + */ + +void Pca9685::setPwmFreq(uint16_t frequency) +{ + if(frequency > 1526) + { + frequency = 1526; + errorHandling->handleError(-3,__FILE__); + } + else if (frequency == 1526) // Rounding correction + { + frequency -= 1; + } + + if(frequency < 24) + { + frequency = 24; + errorHandling->handleError(-4,__FILE__); + } + + m_currentPrescale = (m_oscillatorFreq / ( 4096 * frequency) ) -1; + + sleep(); + i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, PCA9685_REG_PRESCALE, m_currentPrescale); + wakeup(); +} + +void Pca9685::setPwmMicroSeconds(uint16_t microSeconds) +{ + +} +void Pca9685::setDutyPercent(uint8_t ledNo, uint8_t on, uint8_t off) +{ + +} +void Pca9685::setDutyRaw(uint8_t ledNo, uint8_t on, uint8_t off) +{ + m_currentLED = PCA9685_LED_PWM_REG_START + (ledNo * PCA9685_LED_NEXT_OFFSET); + + std::cout << "Led" < 0) + { + if(freq <= 50000000) + { + m_oscillatorFreq = freq; + } + else + { + errorHandling->handleError(-6,__FILE__); + } + } + else + { + errorHandling->handleError(-5,__FILE__); + } + } +} + +void Pca9685::setOutputMode(bool mode) +{ + +} + +void Pca9685::reset() +{ + i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, PCA9685_REG_MODE1, PCA9685_MODE1_RESTART); +} +void Pca9685::sleep() +{ + m_curMode = i2c_pca9685->readByte(PCA9685_I2C_ADDRESS,PCA9685_REG_MODE1); + m_curMode = m_curMode | PCA9685_MODE1_SLEEP; + i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, PCA9685_REG_MODE1, m_curMode); +} + +void Pca9685::wakeup() +{ + m_curMode = i2c_pca9685->readByte(PCA9685_I2C_ADDRESS,PCA9685_REG_MODE1); + m_curMode = m_curMode & ~PCA9685_MODE1_SLEEP; + i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, PCA9685_REG_MODE1, m_curMode); + usleep(PCA9685_OSC_STAB_TIME_US); // refer to datasheet page 14 +} diff --git a/developpment/drivers/pca9685/pca9685.h b/developpment/drivers/pca9685/pca9685.h new file mode 100644 index 0000000..3ad7629 --- /dev/null +++ b/developpment/drivers/pca9685/pca9685.h @@ -0,0 +1,80 @@ +#include +#include +#include +#include +#include "../../periferals/i2c/i2c_ch1_pImpL.hpp" +#include "../../management/errorHandling.h" + +// REGISTER ADDRESSES +#define PCA9685_REG_MODE1 0x00 /**< Mode Register 1 */ +#define PCA9685_REG_MODE2 0x01 /**< Mode Register 2 */ +#define PCA9685_SUBADR1 0x02 /**< I2C-bus subaddress 1 */ +#define PCA9685_SUBADR2 0x03 /**< I2C-bus subaddress 2 */ +#define PCA9685_SUBADR3 0x04 /**< I2C-bus subaddress 3 */ +#define PCA9685_ALLCALLADR 0x05 /**< LED All Call I2C-bus address */ + +#define PCA9685_LED_PWM_REG_START 0x06 // Start register of the fisrt LED's PWM Register wich also corresponds to LED0_ON_L +#define PCA9685_PWM_ON_H_OFFSET 0x01 // PWM ON HIGH Register for the selected LED +#define PCA9685_PWM_OFF_L_OFFSET 0x02 // PWM OFF LOW Register for the selected LED +#define PCA9685_PWM_OFF_H_OFFSET 0x03 // PWM OFF HIGH Register for the selected LED +#define PCA9685_LED_NEXT_OFFSET 0x04 // Register ON LOW of the next LED + +#define PCA9685_LED_FULL_OFF_BIT 0x04 // Bit no to set on the LED OFF HIGH gerister of the selected LED to turn the LED fully OFF +#define PCA9685_LED_FULL_ON_BIT 0x04 // Bit no to set on the LED ON HIGH gerister of the selected LED to turn the LED fully ON + +#define PCA9685_ALL_ON_L 0xFA // load all the LEDn_ON registers, low +#define PCA9685_ALL_ON_H 0xFB // load all the LEDn_ON registers, high +#define PCA9685_ALL_OFF_L 0xFC // load all the LEDn_OFF registers, low +#define PCA9685_ALL_OFF_H 0xFD // load all the LEDn_OFF registers,high +#define PCA9685_REG_PRESCALE 0xFE // Prescaler Register for PWM output frequency +#define PCA9685_TESTMODE 0xFF // defines the test mode to be entered + +// MODE1 bits +#define PCA9685_MODE1_ALLCAL 0x01 /**< respond to LED All Call I2C-bus address */ +#define PCA9685_MODE1_SUB3 0x02 /**< respond to I2C-bus subaddress 3 */ +#define PCA9685_MODE1_SUB2 0x04 /**< respond to I2C-bus subaddress 2 */ +#define PCA9685_MODE1_SUB1 0x08 /**< respond to I2C-bus subaddress 1 */ +#define PCA9685_MODE1_SLEEP 0x10 /**< Low power mode. Oscillator off */ +#define PCA9685_MODE1_AI 0x20 /**< Auto-Increment enabled */ +#define PCA9685_MODE1_EXTCLK 0x40 /**< Use EXTCLK pin clock */ +#define PCA9685_MODE1_RESTART 0x80 /**< Restart enabled */ + +// MODE2 bits +#define PCA9685_MODE2_OUTNE_0 0x01 /**< Active LOW output enable input */ +#define PCA9685_MODE2_OUTNE_1 0x02 /**< Active LOW output enable input - high impedience */ +#define PCA9685_MODE2_OUTDRV 0x04 /**< totem pole structure vs open-drain */ +#define PCA9685_MODE2_OCH 0x08 /**< Outputs change on ACK vs STOP */ +#define PCA9685_MODE2_INVRT 0x10 /**< Output logic state inverted */ + +#define PCA9685_I2C_ADDRESS 0x40 /**< Default PCA9685 I2C Slave Address */ +#define PCA9685_FREQUENCY_OSCILLATOR 25000000 /**< Int. osc. frequency in datasheet */ +#define PCA9685_OSC_STAB_TIME_US 500 // Delay to allow time for oscillator to stabilize 500 us +#define PCA9685_PRESCALE_MIN 3 /**< minimum prescale value */ +#define PCA9685_PRESCALE_MAX 255 /**< maximum prescale value */ +#define PCA9685_PRESCALE_DEF 200 // Default prescaler value | Datasheet Page : 25 + +class Pca9685 +{ + public: + Pca9685(i2c_ch1_pImpL* i2c,ErrorHandler* err); + void setPwmFreq(uint16_t frequency); + void setPwmMicroSeconds(uint16_t microSeconds); + void setDutyPercent(uint8_t ledNo, uint8_t on, uint8_t off); + void setDutyRaw(uint8_t ledNo, uint8_t on, uint8_t off); + void setDutyMicroSecond(uint8_t ledNo, uint16_t on, uint16_t off); + void setOnOff(uint8_t ledNo, bool onOff, bool invert); + void confClk(bool internExtern, uint32_t freq); + void setOutputMode(bool mode); + void reset(); + void sleep(); + void wakeup(); + private: + uint8_t m_currentLED; + uint8_t m_curMode; + uint16_t m_currentPwmFreq; + uint8_t m_currentPrescale; + uint8_t m_isExternalClock; + uint32_t m_oscillatorFreq; + ErrorHandler* errorHandling; + i2c_ch1_pImpL* i2c_pca9685; +}; diff --git a/developpment/drivers/pca9685/pca9685.o b/developpment/drivers/pca9685/pca9685.o new file mode 100644 index 0000000000000000000000000000000000000000..1d2a388c4e6966418bdc278d6eae98e8d9979887 GIT binary patch literal 9336 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 TOTAL_CHAR_CAP) { printf("LCD.C :\t La phrase est trop longue => %d MAX: %d \n", S_length, TOTAL_CHAR_CAP); @@ -56,14 +55,6 @@ void lcd_display_string(char line, char pos, char* charvalue) } else { - strcpy(buf, charvalue); - S_length = strlen(buf); - - #ifdef LCD_DEBUG - printf("LCD.C :\t Longeure de la prhase => %d \n", S_length); - printf("LCD.C :\t Ligne selectionee => %d \n", line); - #endif - if(line == 1) // Selection de la ligne d'écriture { setPosition = pos; @@ -91,12 +82,9 @@ void lcd_display_string(char line, char pos, char* charvalue) for(i = 0; i < S_length; i++ ) { - lcd_write(buf[i],RS); + lcd_write(charvalue[i],RS); } - #ifdef LCD_DEBUG - printf("LCD.C :\t Ectiture reussit => %s \n", buf); - #endif } else { @@ -110,11 +98,10 @@ void lcd_display_string(char line, char pos, char* charvalue) // enregistrer les donées qui lui sont envoyées void ldc_pulse_En(char data) { - i2c_pf8574->writeByte(LCD_ADDRS,data | EN | LCD_BACKLIGHT); usleep(100); i2c_pf8574->writeByte(LCD_ADDRS,((data & ~EN) | LCD_BACKLIGHT)); - usleep(500); + usleep(450); } // Cette fonction nous permet d'envoyer un information de 8 bits sous format diff --git a/developpment/drivers/pf8574/pf8574lcd.o b/developpment/drivers/pf8574/pf8574lcd.o index bca93212c6829afd2f6df586703940c443c83f37..ff774264035050ca9fc04d8da66890ed87c650e3 100644 GIT binary patch delta 854 zcmZ8fO=uHA6n<}$ZECVfqfKI{t0aviJ!sulz38Qf9>m&{9@JhUcopm|hd?R?DX3t0 zc=IP<1;v6wq6lh0Q4m3h;6cHINevXecu^F@`aL_5B?CL(_s#d-%$qm6u;a=0%Nb5o zvv-r})@+BoTHDP;x=C-Q%iyVMdzjto_gv*O-RS;VU;oNfTUAVYb6uvRs}|8n3fx9U zis*~3TUZa6^(k+$qu!A50zNNcyg}myecmzSF+B1<$z$F>;CS1*Zbp7^b0lucA*!{5 zt(gujJzXP==UjhnbvXMDd1>ep>e~ri1A4$is0$XY)ZYYea;2sG-(XqCk-L>#K4b^*y-Wwd#CLnL0;;xM@Yg}11 zUh$&h1fCvf1!;(ul}r-dR@_@Z89BiGO0GD$fw3^rHN z=6Om^L)?tR^X4)cD70}76+S;6>JCBo04m>oP7j;?+1Aa MwiF?{AQSfRUx1pV@c;k- delta 903 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 delta 5008 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 VXUEpyr^Dm?)aqPp_-m^({tpT*;@kiL diff --git a/developpment/runtest b/developpment/runtest index 6be46083cb1555796572fe49c5e3fd0ad4170cdc..166ad9fd8f5823f9d291a1058b57849c58d15546 100755 GIT binary patch literal 57656 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π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