Skip to content
Snippets Groups Projects
Commit 2bd268c4 authored by Irene Garcia Camacho's avatar Irene Garcia Camacho
Browse files

Added to eeprom and ram addresses for the smart charger module

Added to eeprom and ram new addresses for smart charger's module:
  EEPROM: Default value for smart charger period.
  RAM: smart charger dynamixel ID
  RAM: smart charger control - Device detected or not + module enabled or not.
parent 6ea7938c
No related branches found
No related tags found
No related merge requests found
......@@ -81,6 +81,8 @@ extern "C" {
#define GRIPPER_RIGHT_MAX_ANGLE ((unsigned short int)0x005A)
#define GRIPPER_RIGHT_MIN_ANGLE ((unsigned short int)0x005C)
#define GRIPPER_RIGHT_MAX_FORCE ((unsigned short int)0x005E)
#define SMART_CHARGER_PERIOD ((unsigned short int)0x0060)
#define LAST_EEPROM_OFFSET ((unsigned short int)0x00FF)
......@@ -183,6 +185,9 @@ typedef enum {
DARWIN_GRIPPER_RIGHT_MIN_ANGLE_H = GRIPPER_RIGHT_MIN_ANGLE+1,
DARWIN_GRIPPER_RIGHT_MAX_FORCE_L = GRIPPER_RIGHT_MAX_FORCE,
DARWIN_GRIPPER_RIGHT_MAX_FORCE_H = GRIPPER_RIGHT_MAX_FORCE+1,
DARWIN_SMART_CHARGER_PERIOD_L = SMART_CHARGER_PERIOD, //en ms
DARWIN_SMART_CHARGER_PERIOD_H = SMART_CHARGER_PERIOD+1,
//RAM
DARWIN_TX_LED_CNTRL = 0x0100, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// | | | | blink | toggle | value | internally used
DARWIN_TX_LED_PERIOD_L = 0x0101,
......@@ -562,6 +567,7 @@ typedef enum {
DARWIN_HEAD_MIN_TILT_H = 0x0244,
DARWIN_HEAD_TILT_TARGET_L = 0x0245, // angle in fixed point format 9|7
DARWIN_HEAD_TILT_TARGET_H = 0x0246,
DARWIN_BATT_CHARGER_STATUS = 0x0247,
DARWIN_BATT_INPUT_CURRENT_L = 0x0248,
DARWIN_BATT_INPUT_CURRENT_H = 0x0249,
......@@ -570,7 +576,7 @@ typedef enum {
DARWIN_BATT_CHARGE_VOLTAGE_L = 0x024C,
DARWIN_BATT_CHARGE_VOLTAGE_H = 0x024D,
DARWIN_BATT_LIMIT_CURRENT_L = 0x024E,
DARWIN_BATT_LIMIT_CURRENT_H = 0x024F,
DARWIN_BATT_LIMIT_CURRENT_H = 0x024F, //
DARWIN_BATT_TEMPERATURE_L = 0x0250,
DARWIN_BATT_TEMPERATURE_H = 0x0251,
DARWIN_BATT_VOLTAGE_L = 0x0252,
......@@ -579,13 +585,13 @@ typedef enum {
DARWIN_BATT_CURRENT_H = 0x0255,
DARWIN_BATT_AVG_CURRENT_L = 0x0256,
DARWIN_BATT_AVG_CURRENT_H = 0x0257,
DARWIN_BATT_RELATIVE_SOC = 0x0258,
DARWIN_BATT_RELATIVE_SOC = 0x0258,//
DARWIN_BATT_ABSOLUTE_SOC = 0x0259,
DARWIN_BATT_REMAINING_CAP_L = 0x025A,
DARWIN_BATT_REMAINING_CAP_H = 0x025B,
DARWIN_BATT_FULL_CHARGE_CAP_L = 0x025C,
DARWIN_BATT_FULL_CHARGE_CAP_H = 0x025D,
DARWIN_BATT_RUN_TIME_EMPTY_L = 0x025E,
DARWIN_BATT_RUN_TIME_EMPTY_L = 0x025E, //
DARWIN_BATT_RUN_TIME_EMPTY_H = 0x025F,
DARWIN_BATT_AVG_TIME_EMPTY_L = 0x0260,
DARWIN_BATT_AVG_TIME_EMPTY_H = 0x0261,
......@@ -605,7 +611,14 @@ typedef enum {
DARWIN_BATT_CELL3_VOLTAGE_H = 0x026F,
DARWIN_BATT_CELL4_VOLTAGE_L = 0x0270,
DARWIN_BATT_CELL4_VOLTAGE_H = 0x0271,
DARWIN_GRIPPER_CNTRL = 0x0272, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
//añadidos
DARWIN_SMART_CHARGER_CNTRL = 0x0272, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// | detected | enable
DARWIN_SMART_CHARGER_ID = 0x0273,
//Cambio registro
DARWIN_GRIPPER_CNTRL = 0x0276, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0
// left opened | right opened | | | close left | open left | close right | open right
} darwin_registers;
......@@ -688,7 +701,7 @@ typedef enum {
#define HEAD_STOP 0x02
#define HEAD_STATUS 0x10
#define GRIPPER_BASE_ADDRESS 0x0272
#define GRIPPER_BASE_ADDRESS 0x0276 //Modificado
#define GRIPPER_MEM_LENGTH 1
#define GRIPPER_EEPROM_ADDRESS 0x0054
#define GRIPPER_EEPROM_LENGTH 14
......@@ -697,6 +710,15 @@ typedef enum {
#define GRIPPER_OPEN_LEFT 0x04
#define GRIPPER_CLOSE_LEFT 0x08
#define SMART_CHARGER_BASE_ADDRESS 0x0247 //DARWIN_BATT_CHARGER_STATUS
#define SMART_CHARGER_MEM_LENGTH 45
#define SMART_CHARGER_EEPROM_BASE 0x0060
#define SMART_CHARGER_EEPROM_LENGTH 2
#define SMART_CHARGER_DET 0x01
#define SMART_CHARGER_EN 0x02
#ifdef __cplusplus
}
#endif
......
......@@ -10,7 +10,7 @@ extern "C" {
#define DEFAULT_DEVICE_ID 0x0002
#define DEFAULT_BAUDRATE 0x0001
#define DEFAULT_RETURN_DELAY 0x0000
#define DEFAULT_MM_PERIOD 0x1E78
#define DEFAULT_MM_PERIOD 0x1E78 //7800us
#define DEFAULT_BAL_KNEE_GAIN 0x4CCD // 0.3 in fixed point format 0|16
#define DEFAULT_BAL_ANKLE_ROLL_GAIN 0xFFFF // 0.99999
#define DEFAULT_BAL_ANKLE_PITCH_GAIN 0xE666 // 0.9
......@@ -81,6 +81,10 @@ extern "C" {
#define DEFAULT_GRIPPER_RIGHT_MAX_ANGLE 0x0F00 // 30 in fixed point format 9|7
#define DEFAULT_GRIPPER_RIGHT_MIN_ANGLE 0xF100 // -30 in fixed point format 9|7
#define DEFAULT_GRIPPER_RIGHT_MAX_FORCE 0x03FF // 1023 max force in binary format
#define DEFAULT_SMART_CHARGER_PERIOD 0x05DC //1500 ms (7,8ms*200)
#ifdef __cplusplus
}
......
......@@ -152,7 +152,9 @@ uint16_t eeprom_data[] __attribute__ ((section (".eeprom")))={VALID_PAGE,
DEFAULT_GRIPPER_RIGHT_MIN_ANGLE&0xFF, GRIPPER_RIGHT_MIN_ANGLE,
DEFAULT_GRIPPER_RIGHT_MIN_ANGLE>>8, GRIPPER_RIGHT_MIN_ANGLE+1,
DEFAULT_GRIPPER_RIGHT_MAX_FORCE&0xFF, GRIPPER_RIGHT_MAX_FORCE,
DEFAULT_GRIPPER_RIGHT_MAX_FORCE>>8, GRIPPER_RIGHT_MAX_FORCE+1};
DEFAULT_GRIPPER_RIGHT_MAX_FORCE>>8, GRIPPER_RIGHT_MAX_FORCE+1,
DEFAULT_SMART_CHARGER_PERIOD&0xFF, SMART_CHARGER_PERIOD,
DEFAULT_SMART_CHARGER_PERIOD>>8, SMART_CHARGER_PERIOD+1};
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
......
......@@ -147,6 +147,10 @@ void ram_init(void)
ram_data[GRIPPER_RIGHT_MAX_FORCE]=(uint8_t)(eeprom_data&0x00FF);
if(EE_ReadVariable(GRIPPER_RIGHT_MAX_FORCE+1,&eeprom_data)==0)
ram_data[GRIPPER_RIGHT_MAX_FORCE+1]=(uint8_t)(eeprom_data&0x00FF);
if(EE_ReadVariable(SMART_CHARGER_PERIOD,&eeprom_data)==0)
ram_data[SMART_CHARGER_PERIOD]=(uint8_t)(eeprom_data&0x00FF);
if(EE_ReadVariable(SMART_CHARGER_PERIOD+1,&eeprom_data)==0)
ram_data[SMART_CHARGER_PERIOD+1]=(uint8_t)(eeprom_data&0x00FF);
}
inline void ram_read_byte(uint16_t address,uint8_t *data)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment