cdmSequenceFlow - hwthomas/ccs-chademo GitHub Wiki

Amended CCS sequence flow, into the CHAdeMO sequence as required

The flow below follows that of https://uhi22/pyPlc.readme.md "Example Flow" from Checkpoint 1 to Checkpoint538. References to the charger are to a CCS charger, and those to the car are to a CCS car. In the amended flow from Checkpoint538 onwards, the adapter communicates both to the CCS charger, using HomePlug protocol, and to the CHAdeMO car using analogue signals and CAN-bus messages.

  • (flow, up to Checkpoint 538...)

  • Checkpoint1: The charger (Supply entity communication controller, SECC) creates a "random" value for NID (network ID) and NMK (network membership key), and configures its homeplug modem with these values.

  • Checkpoint2: The charger provides 12V on the control pilot (CP) line (State A).

  • Checkpoint3: The user connects the plug into the car.

  • ...

  • Checkpoint536: The user authorizes, e.g. with RFID card or app or however

  • Checkpoint538: The charger sends ContractAuthenticationResponse with EVSEProcessing=Finished.

  • CHAdeMOpoint 1: The adapter needs to announces the maximum voltage and current limits to the charger. To get these values it needs to start the CHAdeMO sequence with the car.

  • CHAdeMOpoint 2: The adapter asserts ChargeSequenceSignal_1 by connecting +12v to pin 2 on the CHAdeMO plug

  • CHAdeMOpoint 3: The car recognises ChargeSequenceSignal_1 and starts sending CAN-bus messages on pin 8 (CAN_HI) and pin 9 (CAN-LO)

  • Checkpoint540: The car sends ChargeParameterRequest. This contains the wanted RequestedEnergyTransferMode, e.g. to select DC or AC and which power pins are used.

  • Checkpoint545: The charger confirms with ChargeParameterResponse. The contains the limits from charger side, e.g. min and max voltage, min and max current. Now, the initialization phase of the charging session is finished.

  • Checkpoint550: The car changes to CP State to C or D, by applying an additional resistor between CP and ground.

  • Checkpoint555: The car controls the connector lock motor into direction 'lock'.

  • Checkpoint556: The car checks whether the connector lock is confirmed.

  • Checkpoint560: The car sends CableCheckRequest. This contains the information, whether the connector is locked.

  • Checkpoint561: The charger applies voltage to the cable and measures the isolation resistance.

  • Checkpoint565: The charger confirms with CableCheckResponse.

  • Checkpoint566: The CableCheckRequest/CableCheckResponse are repeated until the charger says "Finished".

  • Checkpoint570: The car sends PreChargeRequest. With this, the car announces the target voltage of the charger before closing the circut. The goal is, to adjust the chargers output voltage to match the cars battery voltage. Also a current limit (max 2A) is sent.

  • Checkpoint575: The charger confirms with PreChargeResponse. This response contains the actual voltage on the charger.

  • Checkpoint580: The charger adjusts its output voltage according to the requested voltage.

  • Checkpoint581: The car measures the voltage on the inlet and on the battery. Alternatively, the car does not measure the inlet voltage, and instead listens to the EVSEPresentVoltage which is reported by the charger.

  • Checkpoint582: The above steps (PreChargeRequest, PreChargeResponse, measuring voltage) are repeating, while the present voltage did not yet reach the target voltage.

  • Checkpoint590: If the difference is small enough (less than 20V according to [ref x] chapter 4.4.1.10), the car closes the power relay.

  • Checkpoint600: The car sends PowerDelivery(Start)Request.

  • Checkpoint605: The charger confirms with PowerDeliveryResponse.

  • Checkpoint700: The car sends CurrentDemandRequest (repeated while the charging is ongoing). In this message, the car tells the charger the target voltage and target current.

  • Checkpoint705: The charger confirms with CurrentDemandResponse. This contains the measured voltage, measured current, and flags which show which limitation is active (current limitation, voltage limitation, power limitation).

  • Checkpoint710: The CurrentDemandRequest/CurrentDemandResponse are repeated during the charging.

  • Checkpoint790: When the user stops the charging session on the charger, the charger sends DC_EVSEStatus.EVSEStatusCode = 2 "EVSE_Shutdown" in the CurrentDemandResponse. (Observed on Compleo, see https://github.com/uhi22/Ioniq28Investigations/blob/main/CCM_ChargeControlModule_PLC_CCS/ccm_spi_ioniq_compleo_full_charge_sequence_ended_on_charger.txt.pcap.decoded.txt)

  • Checkpoint800: When the end of charging is decided (battery full or user wish), the car sends PowerDelivery(Stop)Request.

  • Checkpoint805: The charger confirms with PowerDeliveryResponse.

  • Checkpoint806: The car receives the PowerDeliveryResponse.

  • Checkpoint810: The car changes the CP line from StateC to StateB. (according to Figure 107)

  • Checkpoint850: The car sends WeldingDetectionRequest.

  • Checkpoint855: The charger confirms with WeldingDetectionResponse.

  • Checkpoint900: The car sends SessionStopRequest.

  • Checkpoint905: The charger confirms with SessionStopResponse.