UART for the new target board

Hi.
I am planning to run the SCA attack on a new target board.
…and I would like to double check whether I correctly understand how communication works between the host and the target board so that to develop conforming UART communication.

  1. Using CW Python API, the specific/required UART setting can be pushed to the SAM3U via USB CDC from the host machine to the CW Husky.


target = cw.target(scope, cw.targets.SimpleSerial2)
target.baud = 115200 # assuming the target board works on 115200 bps

  1. The CW Husky’s SAM3U has the USART communication with the Atrix-7 FPGA and all SimpleSerial2 USART messages for the target board are passed through the FPGA without any changes on the FPGA side.
  2. The FPGA just implements routing for the USART RX/TX lines.
  3. Using the usart0 driver, the SAM3U establishes the USART session with the target board to send and receive the SimpleSerial2 messages.
  4. SAM3U side RX/TX activity is triggered by the interrupts.
  5. The SAM3U is kind of proxy between the host and the target board in terms of the SimpleSerial2 communication. The temporal storage for the data being transmitted and being received is the circular buffer.

If above is correct, I don’t need to care about UART setting directly on the SAM3U and the target board firmwares. Necessary UART settings can be pushed to the SAM3U by means of the CW python API.

Yup, that’s all correct. My only correction is that we don’t generally do UART via USB CDC. Instead, it’s usually done via USB vendor requests, with CDC being a separate option you can use with a serial terminal.

1 Like

Thanks for the confirmation!