|
1 | 1 | ## Inverter Interface |
2 | 2 |
|
3 | | - |
4 | 3 | ### GPIO connections |
5 | 4 |
|
6 | | - |
7 | 5 | ### CAN parameter / message descriptions |
8 | 6 |
|
9 | 7 | #### VCR output / control messages: |
@@ -128,4 +126,60 @@ message 2346 'Converter temperature error' after the warning time1) (ID32943) ha |
128 | 126 | - AKA SERCOS parameter ID101 |
129 | 127 | - `uint16_t speed_control_kd` |
130 | 128 | - inverter's internal value of (TD) kd |
131 | | - - AKA SERCOS parameter ID102 |
| 129 | + - AKA SERCOS parameter ID102 |
| 130 | + |
| 131 | +## VCF Interfaces |
| 132 | + |
| 133 | +The VCR is connected over CAN and Ethernet to the VCF. We will use the CAN communication for latency-sensitive communication such as the driver input and controller input sensor signals. The Ethernet link will be used for the non-timing-sensitive data. |
| 134 | + |
| 135 | +### CAN interface |
| 136 | + |
| 137 | +VCF Outputs: |
| 138 | +- pedal data CAN packet (`0xC0`): |
| 139 | + - status bits: (8 bits) |
| 140 | + - `bool accel_implausible` |
| 141 | + - accel pedal value is out of range |
| 142 | + - `bool brake_implausible` |
| 143 | + - brake pedal value is out of range |
| 144 | + - `bool brake_pedal_active` |
| 145 | + - `bool accel_pedal_active` |
| 146 | + - `bool mech_brake_active` |
| 147 | + - brake pedal has reached zone in which the mechanical brake (the physical calipers) have started engaging |
| 148 | + - `bool brake_and_accel_pressed_implausibility` |
| 149 | + - `bool implausibility_exceeded_duration` |
| 150 | + - an implausibility been present for longer than allowed (>200ms by rules) |
| 151 | + - __note__: we should guard this to be over 180ms or some threshold below 200ms to allow for transmission delay to stay within rules as this is now being reacted to by the VCR |
| 152 | + - data (32 bits): |
| 153 | + - `brake` (16 bit unsigned) -> mapped between 0 and 1 (65,535) |
| 154 | + - `accel` (16 bit unsigned) -> mapped between 0 and 1 (65,535) |
| 155 | + |
| 156 | + - __note__: the regen percentage that was present on MCU should instead be calculated by the controllers themselves instead of by the pedals system to centralize regen calculation at higher levels to allow for tuning / safe modification more easily |
| 157 | + |
| 158 | +- __note__: the following data is all the raw, non-filtered data |
| 159 | + - steering data CAN packet: |
| 160 | + - `uint16_t analog_steering` |
| 161 | + - `float digital_steering` (32 bit) |
| 162 | + |
| 163 | + - suspension data CAN packet: |
| 164 | + - `uint16_t fl_load_cell` |
| 165 | + - `uint16_t fr_load_cell` |
| 166 | + - `uint16_t fl_shock_pot` |
| 167 | + - `uint16_t fr_shock_pot` |
| 168 | + |
| 169 | +### Ethernet Interface |
| 170 | + |
| 171 | +`VCFOutputData` |
| 172 | +VCF Outputs: |
| 173 | +- user inputs |
| 174 | + - requested drive mode (0 through 5) |
| 175 | + - requesting drivebrain / VCR in control mode |
| 176 | + - requested torque limit mode |
| 177 | + - requesting drivetrain error reset |
| 178 | +- statuses: |
| 179 | + - buzzer status |
| 180 | +- info: |
| 181 | + - firmware version info |
| 182 | + - `bool dirty` |
| 183 | + - means that the firmware was flashed while there was changes made that had not been commited |
| 184 | + - `char git_short_hash[8]` |
| 185 | + - the git hash of the commit that was flashed to the |
0 commit comments