-
Notifications
You must be signed in to change notification settings - Fork 92
HydraFW UART guide
This guide is updated towards firmware release HydraFW v0.11 and later
Bus: UART, MIDI (universal asynchronous receiver transmitter).
Connections: two pins (RX/TX) and ground.
Output types: 3.3volt normal output, or open drain
(pull-up/pull-down resistors integrated in MCU or external).
Pull-up resistors: required for open collector output mode (2K – 10K).
Pull-up/down resistors Integrated in MCU: Between 30 to 50K (Typical 40K).
Maximum Voltage: 5.5volts (5volt safe).
UART is also known as the common PC serial port.
The PC serial port operates at full RS232 voltage levels
(-13volts to +13volts) though, which are not compatible with the HydraBus.
-
show
Show UART parameters orshow pins
Show pins used in this mode -
device
with parameter1
or2
to choose UART device (1 or 2) -
speed
with integer baudrate value (supportk
,m
suffix or no suffix)- UART1 Baudrate from
1281
and up to10.5M
- UART2 Baudrate from
640
and up to5.25M
- Standard UART baudrate: 2400, 4800, 9600, 19200, 38400, 57600, 115200, 31250
- UART1 Baudrate from
-
parity
with parameternone
oreven
orodd
for parity value -
stop-bits
with parameter1
or2
for number of stop bits -
bridge
to enter USB <-> UART mode -
trigger
configures the trigger mode -
scan
tries to calculate the baudrate (See baudrate detection) -
exit
to exit UART mode
Note default value for device 1 or 2:
For device 1 (UART1):
> uart device 1
Note: UART parameters have been reset to default values.
Device: UART1
Speed: 9600 bps
Parity: none
Stop bits: 1
For device 2 (UART2):
> uart device 2
Note: UART parameters have been reset to default values.
Device: UART2
Speed: 9600 bps
Parity: none
Stop bits: 1
Hardware Informations:
uart1> show pins
TX: PA9
RX: PA10
uart2> show pins
TX: PA2
RX: PA3
Configuration of UART1 9600bauds 8bits data, 1stop, no parity:
> uart device 1
Note: UART parameters have been reset to default values.
Device: UART1
Speed: 9600 bps
Parity: none
Stop bits: 1
uart1> 0xFF 0 1 0x80 0x55 0xAA 0xFF 0x11:4
WRITE: 0xFF 0x00 0x01 0x80 0x55 0xAA 0xFF 0x11 0x11 0x11 0x11
Hydrabus can be used as a USB to UART bridge with the bridge
command :
> uart
Device: UART1
Speed: 9600 bps
Parity: none
Stop bits: 1
uart1> bridge
Interrupt by pressing user button.
Since cb2ebea9f694a344fee28b2baf4e160f7066dcf2, Hydrabus can automatically detect the baudrate on a UART line.
In order to do that, connect the device TX line to PC6, and run the scan command
:
uart1> scan
Estimated baudrate : 57712
The baudrate detection waits for at least 10 bytes sent to the UART, then measures the shortest transition to calculate the baudrate. This means that you need to make sure that bytes are sent on the target UART in order to measure the signal.
Example of baudrates and related error:
Extreme baudrate example:
Baudrate | 10,500,000 | 8,400,000 | 6,000,000 | 5,250,000 | 4,000,000 |
---|---|---|---|---|---|
Final baudrate | 10,500,000 | 8,400,000 | 6,000,000 | 5,250,000 | 4,000,000 |
Error % | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
Baudrate | 3,000,000 | 2,000,000 | 2,500,000 | 1,000,000 | 921,600 |
---|---|---|---|---|---|
Final baudrate | 3,000,000 | 2,000,000 | 2,470,588 | 1,000,000 | 923,076 |
Error % | 0.000 | 0.000 | 1.190 | 0.000 | 0.160 |
Standard baudrate example:
Baudrate | 460,800 | 250,000 | 230,400 | 115,200 | 57,600 | 38,400 |
---|---|---|---|---|---|---|
Final baudrate | 461538 | 250,000 | 230,136 | 115,226 | 57,613 | 38,408 |
Error % | 0.160 | 0.000 | 0.110 | 0.030 | 0.030 | 0.030 |
baudrate from 33,600 to 2400 bauds 0% error
Additional information about baudrate error:
- https://www.robotroom.com/Asynchronous-Serial-Communication-2.html
- Important information:
Therefore, to be fair, each device is only allowed to be less than 2.5% in error, to ensure that the total difference in timing between devices is less than 5%. To provide a safer margin, Atmel recommends a 2% error or less per device.
For more details on UARTprotocol see: http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter
Tests & informations from Philippe Teuwen Wiki: https://wiki.yobi.be/index.php/HydraNFC#HydraBus_UART
Recommended USB High Speed to UART interface (for real-time data input/output using High Speed UART)
Support HydraBus v1 UART1(PA10/USART1_RX & PA9/USART1_TX) up to 10.5Mbaud
-
FTDI interface C232HM-DDHSL-0 (3.3V Output Level, 0.5M cable) See https://wiki.yobi.be/index.php/HydraNFC#HydraBus_UART
-
I recommend to use FTDI C32HM-DDHSL-0 cable with 6MegaBaud (8N1) settings on both side (tested with HydraBus uart1 bridge & FTDI C232HM-DDHSL-0)
-
Datasheet: https://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_C232HD_UART_CABLE.pdf
-
UART FTDI C232HM-DDHSL-0 to HydraBus connection:
C232HM-DDHSL-0 Pin HydraBus Pin Orange ADBUS0 TX(Pin2) PA10 / USART1_RX Yellow ADBUS1 RX(Pin3) PA9 / USART1_TX Black GND (Pin10) GND (near PA9)
- Note1: FTDI C232HM-DDHSL-0 Baudrate of 8.4MBaud is possible when setting the FTDI C232HM-DDHSL-0 to any value greater or equal to 6.3MBauds.
- Note2: FTDI C232HM-DDHSL-0 Baudrate of 8.4MBaud DutyCycle is 46.4% / 53.6% or the reverse so up to +/-3.6% error/variation but still works with HydraBus configured @8.4MBauds.
- Warning: FTDI C232HM-DDHSL-0 Baudrate values like 6.2MBauds, 6.6MBauds, 7.1MBauds, 7.7MBauds set the FTDI Baudrate to 115.2KBauds.
-
-
FTDI C232HM-EDHSL-0 (5V Output Level, 0.5M cable) => Not tested
- CHANGELOG
- Console commands
- Binary mode guide
-
NFC/HydraNFC v1 guide
- Read UID of an ISO/IEC_14443 Tag
- Read UID and data of a MIFARE Ultralight Tag
- Read UID of an ISO/IEC 15693 Tag
- Emul ISO14443a Tag
- Emul MIFARE Ultralight Tag
- Emul Mifare Classic Tag
- Unique NFC sniffer design
- Launch NFC sniffer from console
- Sniffer ISO14443A wireshark pcap
- Autonomous/stand-alone sniffer mode
- Sniffer ISO14443A real-time infinite trace mode
- HydraFW-HydraNFC-v1.x-TRF7970A-Tutorial