sensor_epsonCommon.h
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // sensor_epsonCommon.h - Epson IMU sensor specific definitions common
4 // for all IMU models
5 //
6 //
7 // THE SOFTWARE IS RELEASED INTO THE PUBLIC DOMAIN.
8 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
9 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
10 // NONINFRINGEMENT, SECURITY, SATISFACTORY QUALITY, AND FITNESS FOR A
11 // PARTICULAR PURPOSE. IN NO EVENT SHALL EPSON BE LIABLE FOR ANY LOSS, DAMAGE
12 // OR CLAIM, ARISING FROM OR IN CONNECTION WITH THE SOFTWARE OR THE USE OF THE
13 // SOFTWARE.
14 //
15 //==============================================================================
16 #ifndef EPSONCOMMON_H_
17 #define EPSONCOMMON_H_
18 
19 #include <math.h>
20 #include <stdio.h>
21 
22 #ifndef TRUE
23 #define TRUE (1)
24 #endif
25 
26 #ifndef FALSE
27 #define FALSE (0)
28 #endif
29 
30 #if G320PDG0
31 #include "sensor_epsonG320.h"
32 #elif G330PDG0
33 #include "sensor_epsonG330PDG0.h"
34 #elif G354PDH0
35 #include "sensor_epsonG354.h"
36 #elif G364PDC0
37 #include "sensor_epsonG364PDC0.h"
38 #elif G364PDCA
39 #include "sensor_epsonG364PDCA.h"
40 #elif G365PDC1
41 #include "sensor_epsonG365PDC1.h"
42 #elif G365PDF1
43 #include "sensor_epsonG365PDF1.h"
44 #elif G366PDG0
45 #include "sensor_epsonG366PDG0.h"
46 #elif G370PDF1
47 #include "sensor_epsonG370PDF1.h"
48 #elif G370PDS0
49 #include "sensor_epsonG370PDS0.h"
50 #elif G370PDG0
51 #include "sensor_epsonG370PDG0.h"
52 #elif G370PDT0
53 #include "sensor_epsonG370PDT0.h"
54 #elif V340PDD0
55 #include "sensor_epsonV340.h"
56 #else // G366PDG0
57 #include "sensor_epsonG366PDG0.h"
58 #endif
59 
60 #define DELAY_EPSON_RESET 10 // Milliseconds Reset Pulse Width
61 #define EPSON_POWER_ON_DELAY 800 // Milliseconds
62 #define EPSON_FLASH_TEST_DELAY 5 // Milliseconds
63 #define EPSON_SELF_TEST_DELAY 80 // Milliseconds
64 #define EPSON_FILTER_DELAY 1 // Milliseconds
65 #define EPSON_ATTI_PROFILE_DELAY 1 // Milliseconds
66 
67 // Required delay between bus cycles for serial timings
68 #define EpsonStall() seDelayMicroSecs(EPSON_STALL)
69 
70 struct EpsonOptions {
71  // MSC_CTRL
72  int ext_sel;
73  int ext_pol;
74  int drdy_on;
75  int drdy_pol;
76 
77  // SMPL_CTRL
78  int dout_rate;
79 
80  // FILTER_CTRL
82 
83  // BURST_CTRL1
84  int flag_out;
85  int temp_out;
86  int gyro_out;
87  int accel_out;
90  int qtn_out;
91  int atti_out;
92 
93  int gpio_out;
94  int count_out;
96 
97  // BURST_CTRL2
98  int temp_bit;
99  int gyro_bit;
103  int qtn_bit;
104  int atti_bit;
105 
106  // POL_CTRL
113 
114  // DLT_CTRL
117 
118  // ATTI_CTRL
121 
122  // ATTI_MOTION_PROFILE
124 };
125 
126 struct EpsonData {
127  unsigned short ndflags;
128  float temperature;
133  float qtn0, qtn1, qtn2, qtn3;
134  float roll, pitch, yaw;
135  unsigned short gpio;
136  int count;
137 };
138 
140 int sensorHWReset(void);
141 int sensorPowerOn(void);
142 void registerDump(void);
143 void registerWriteByte(unsigned char, unsigned char, unsigned char,
144  unsigned int);
145 unsigned short registerRead16(unsigned char, unsigned char, unsigned int);
146 void registerWriteByteNoId(unsigned char, unsigned char, unsigned int);
147 unsigned short registerRead16NoId(unsigned char, unsigned int);
148 void sensorStart(void);
149 void sensorStop(void);
150 void sensorReset(void);
151 int sensorFlashTest(void);
152 int sensorSelfTest(void);
153 int sensorInitialBackup(void);
154 int sensorInitOptions(struct EpsonOptions);
155 unsigned int sensorDataByteLength(struct EpsonOptions);
156 void sensorDummyWrite(void);
158 void populateEpsonData(struct EpsonOptions, struct EpsonData*);
159 char* getProductId(char* strDest);
160 char* getSerialId(char* strDest);
161 
162 #endif /* EPSONCOMMON_H_ */
EpsonData::qtn3
float qtn3
Definition: sensor_epsonCommon.h:133
EpsonData::accel_delta_z
float accel_delta_z
Definition: sensor_epsonCommon.h:132
EpsonOptions::invert_xgyro
int invert_xgyro
Definition: sensor_epsonCommon.h:107
EpsonOptions::accel_delta_bit
int accel_delta_bit
Definition: sensor_epsonCommon.h:102
EpsonOptions::ext_pol
int ext_pol
Definition: sensor_epsonCommon.h:73
EpsonData::accel_y
float accel_y
Definition: sensor_epsonCommon.h:130
EpsonOptions::atti_mode
int atti_mode
Definition: sensor_epsonCommon.h:119
EpsonOptions::drdy_on
int drdy_on
Definition: sensor_epsonCommon.h:74
EpsonOptions::ext_sel
int ext_sel
Definition: sensor_epsonCommon.h:72
EpsonOptions::filter_sel
int filter_sel
Definition: sensor_epsonCommon.h:81
sensorFlashTest
int sensorFlashTest(void)
Definition: sensor_epsonCommon.c:144
EpsonOptions::invert_ygyro
int invert_ygyro
Definition: sensor_epsonCommon.h:108
getProductId
char * getProductId(char *strDest)
Definition: sensor_epsonCommon.c:365
registerWriteByteNoId
void registerWriteByteNoId(unsigned char, unsigned char, unsigned int)
Definition: sensor_epsonUart.c:80
sensorStop
void sensorStop(void)
Definition: sensor_epsonCommon.c:113
registerRead16
unsigned short registerRead16(unsigned char, unsigned char, unsigned int)
Definition: sensor_epsonUart.c:167
sensor_epsonG366PDG0.h
sensor_epsonG370PDT0.h
registerWriteByte
void registerWriteByte(unsigned char, unsigned char, unsigned char, unsigned int)
Definition: sensor_epsonUart.c:105
EpsonOptions::temp_bit
int temp_bit
Definition: sensor_epsonCommon.h:98
EpsonOptions::drdy_pol
int drdy_pol
Definition: sensor_epsonCommon.h:75
sensor_epsonG370PDF1.h
getSerialId
char * getSerialId(char *strDest)
Definition: sensor_epsonCommon.c:391
sensorDataReadBurstNOptions
int sensorDataReadBurstNOptions(struct EpsonOptions, struct EpsonData *)
Definition: sensor_epsonUart.c:528
EpsonData::accel_x
float accel_x
Definition: sensor_epsonCommon.h:130
EpsonOptions::gpio_out
int gpio_out
Definition: sensor_epsonCommon.h:93
EpsonOptions
Definition: sensor_epsonCommon.h:70
sensor_epsonG365PDF1.h
sensor_epsonG364PDCA.h
populateEpsonData
void populateEpsonData(struct EpsonOptions, struct EpsonData *)
Definition: sensor_epsonUart.c:193
EpsonOptions::dout_rate
int dout_rate
Definition: sensor_epsonCommon.h:78
EpsonData::yaw
float yaw
Definition: sensor_epsonCommon.h:134
EpsonOptions::gyro_bit
int gyro_bit
Definition: sensor_epsonCommon.h:99
EpsonOptions::qtn_out
int qtn_out
Definition: sensor_epsonCommon.h:90
sensor_epsonG365PDC1.h
EpsonOptions::accel_out
int accel_out
Definition: sensor_epsonCommon.h:87
sensorReset
void sensorReset(void)
Definition: sensor_epsonCommon.c:128
sensor_epsonV340.h
sensorPowerOn
int sensorPowerOn(void)
Definition: sensor_epsonCommon.c:63
EpsonOptions::atti_profile
int atti_profile
Definition: sensor_epsonCommon.h:123
EpsonData::gyro_y
float gyro_y
Definition: sensor_epsonCommon.h:129
EpsonOptions::invert_yaccel
int invert_yaccel
Definition: sensor_epsonCommon.h:111
sensorInitialBackup
int sensorInitialBackup(void)
Definition: sensor_epsonCommon.c:213
EpsonData::gyro_delta_z
float gyro_delta_z
Definition: sensor_epsonCommon.h:131
sensorDummyWrite
void sensorDummyWrite(void)
Definition: sensor_epsonCommon.c:349
sensor_epsonG320.h
EpsonOptions::count_out
int count_out
Definition: sensor_epsonCommon.h:94
EpsonData::gpio
unsigned short gpio
Definition: sensor_epsonCommon.h:135
EpsonOptions::flag_out
int flag_out
Definition: sensor_epsonCommon.h:84
EpsonOptions::checksum_out
int checksum_out
Definition: sensor_epsonCommon.h:95
EpsonData
Definition: sensor_epsonCommon.h:126
EpsonOptions::atti_bit
int atti_bit
Definition: sensor_epsonCommon.h:104
registerRead16NoId
unsigned short registerRead16NoId(unsigned char, unsigned int)
Definition: sensor_epsonUart.c:126
EpsonOptions::invert_zgyro
int invert_zgyro
Definition: sensor_epsonCommon.h:109
EpsonData::count
int count
Definition: sensor_epsonCommon.h:136
sensorDataReadyOptions
int sensorDataReadyOptions(struct EpsonOptions)
Definition: sensor_epsonUart.c:62
EpsonData::accel_z
float accel_z
Definition: sensor_epsonCommon.h:130
EpsonData::ndflags
unsigned short ndflags
Definition: sensor_epsonCommon.h:127
registerDump
void registerDump(void)
Definition: sensor_epsonG320.c:137
EpsonData::qtn1
float qtn1
Definition: sensor_epsonCommon.h:133
sensorStart
void sensorStart(void)
Definition: sensor_epsonCommon.c:100
sensorDataByteLength
unsigned int sensorDataByteLength(struct EpsonOptions)
Definition: sensor_epsonCommon.c:247
sensor_epsonG370PDG0.h
EpsonData::qtn0
float qtn0
Definition: sensor_epsonCommon.h:133
sensor_epsonG330PDG0.h
EpsonData::gyro_delta_x
float gyro_delta_x
Definition: sensor_epsonCommon.h:131
EpsonData::gyro_x
float gyro_x
Definition: sensor_epsonCommon.h:129
sensor_epsonG354.h
sensorHWReset
int sensorHWReset(void)
Definition: sensor_epsonCommon.c:29
EpsonOptions::atti_out
int atti_out
Definition: sensor_epsonCommon.h:91
EpsonOptions::gyro_delta_out
int gyro_delta_out
Definition: sensor_epsonCommon.h:88
sensor_epsonG370PDS0.h
EpsonOptions::dlt_ovf_en
int dlt_ovf_en
Definition: sensor_epsonCommon.h:115
EpsonOptions::gyro_out
int gyro_out
Definition: sensor_epsonCommon.h:86
EpsonData::temperature
float temperature
Definition: sensor_epsonCommon.h:128
EpsonData::pitch
float pitch
Definition: sensor_epsonCommon.h:134
sensorSelfTest
int sensorSelfTest(void)
Definition: sensor_epsonCommon.c:179
EpsonOptions::temp_out
int temp_out
Definition: sensor_epsonCommon.h:85
EpsonOptions::accel_bit
int accel_bit
Definition: sensor_epsonCommon.h:100
EpsonOptions::atti_conv
int atti_conv
Definition: sensor_epsonCommon.h:120
EpsonData::gyro_z
float gyro_z
Definition: sensor_epsonCommon.h:129
EpsonOptions::invert_zaccel
int invert_zaccel
Definition: sensor_epsonCommon.h:112
sensor_epsonG364PDC0.h
EpsonData::roll
float roll
Definition: sensor_epsonCommon.h:134
EpsonOptions::accel_delta_out
int accel_delta_out
Definition: sensor_epsonCommon.h:89
EpsonData::gyro_delta_y
float gyro_delta_y
Definition: sensor_epsonCommon.h:131
EpsonData::qtn2
float qtn2
Definition: sensor_epsonCommon.h:133
EpsonOptions::qtn_bit
int qtn_bit
Definition: sensor_epsonCommon.h:103
sensorInitOptions
int sensorInitOptions(struct EpsonOptions)
Definition: sensor_epsonG320.c:28
EpsonData::accel_delta_x
float accel_delta_x
Definition: sensor_epsonCommon.h:132
EpsonOptions::invert_xaccel
int invert_xaccel
Definition: sensor_epsonCommon.h:110
EpsonData::accel_delta_y
float accel_delta_y
Definition: sensor_epsonCommon.h:132
EpsonOptions::gyro_delta_bit
int gyro_delta_bit
Definition: sensor_epsonCommon.h:101
EpsonOptions::dlt_range_ctrl
int dlt_range_ctrl
Definition: sensor_epsonCommon.h:116


ess_imu_ros1_uart_driver
Author(s):
autogenerated on Sun Dec 3 2023 03:11:32