U2X0 = 1 Double Speed Operation

Hi guys

Please help me understand this feature. Why and When is need Double Speed Operation
what the pros and cons of this operation?


Maybe this will help you understand : serial - Double Speed Operation for USART on Arduino Mega 2560 - Arduino Stack Exchange

As I understand It more related to % of error but there no special reason to use it always. In additional, it more unstable.
Why Arduino using it by default ?
what the pros and cons of this operation?

It’s NOT “more unstable.”
Using it permits higher speeds, and iirc produces less error on some common speeds like 115200.

Until 76.8k the same % of errors.
Yeah on 115.2 on 1% less then normal speed. only 1%. and only on 115.2. thtas it? only for this case Arduino setup by default U2X01 = 1 ? Initial value of MCU is 0

more unstable I mean because - setting U2X to 1 doubles the rate at which bits are transmitted and will cut in half the number of samples performed per received bit.

AFACT from the datasheetm the main feature of oversampling the UART signal is supposed to be “noise immunity”, which probably isn’t relevant on the cm or two of signal path between the USB chip and the ATmega on an Arduino.

In an older version of the Arduino core (pre 1.0, I think), Serial.begin() would actually calculate the error for both normal and u2x mode, and use whichever one got closer to the desired bitrate. But I think this cause problems with code that did simpler calculations in addition to adding complexity, and was removed. (even now, if you have two avrs connected at 115200bps, and one has u2x set and one doesn’t, the combined error is high enough to prevent reliable communication.)

so will/should work these two devices in mentioned mode ?