arduino / arduino/ArduinoCore-sam

Programming port UART doesn't work at 230400; no rounding in BRGR calculations.

Open
#54 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
HTML
Stars
91
Forks
112
PR merge metrics
No merged PRs in 30d

Description

The Baud Rate Generator Divisor calculations in UARTClass::init() do not round, leading to error rates higher than they could be. In particular, the error at 230400bps is both large and in the opposite direction of the 16u2 error, and it fails. Adding rounding allows it to work.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at UARTClass::init(), where the Baud Rate Generator Divisor (BRGR) is calculated, and inspect the existing UART initialization path. Verify the divisor rounding against the 230400bps case and confirm that the resulting baud-rate error is reduced enough for programming to work.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
embedded-iot
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.