нестандартная скорость Serial.begin()

Buzoff
Offline
Зарегистрирован: 03.04.2018

здравствуйте.

есть необходимость в нестандартной скорости сериал. находил информацию как менять на програмном юурт (SoftwareSerial), а вот как это сделать со "стандартным" ничего не нашел. не нашел и решил просто в скетче написать Serial.begin(10400); и к удивлению ничего не ругнулось. проверил еще на сторонней программе что-то попередавать, вроде все работает.

вопрос, функция Serial.begin() может работать на нестандартных скоростями без каких либоманипуляций?!

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Может на любых (в пределах разумного)

Buzoff
Offline
Зарегистрирован: 03.04.2018

mykaida пишет:

Может на любых (в пределах разумного)

спасибо. буду знать)

Buzoff
Offline
Зарегистрирован: 03.04.2018

mykaida пишет:

а еще не подскажите, чем можно заменить библиотеку SoftwareSerial для использования програмного юарт на атмеге8?

Buzoff
Offline
Зарегистрирован: 03.04.2018

mykaida пишет:

Может на любых (в пределах разумного)

 

а что подрозумиваетется под пределом?

sadman41
Offline
Зарегистрирован: 19.10.2016

Скорость света.

Buzoff
Offline
Зарегистрирован: 03.04.2018

А! ну да такого я б не додумался)))

я думал, может там какой-то кратности должна соответствовать или еше какие-то правила и ограничения.

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

sadman41 пишет:

Скорость света.

Ну это если только в передаче. И то стоит уточнить в какой среде :)

А аппаратно скорость ограничена тактовой частотой процессора. При этом стоит учитывать, что для "дерганья" ножек ему нужно выполнить 2-4 операции. Далее если операции выполняются за 1 такт, то ограничение - тактовая частота разделить на 2-4.

dezz0riented
dezz0riented аватар
Offline
Зарегистрирован: 27.07.2014

Кроме верхнего предела есть ещё нюанс с точностью. Не всякая частота ровно поделится, не всякая частота ровно получится. Поэтому в промышленных девайсах иногда ставят извращенские кварцы на 9.126 МГц. Нужно иметь это в виду, хотя и сильно переживать из-за этого не стоит - UART терпит несовпадение скорости до определённого предела.

Buzoff
Offline
Зарегистрирован: 03.04.2018

dezz0riented пишет:

Кроме верхнего предела есть ещё нюанс с точностью. Не всякая частота ровно поделится, не всякая частота ровно получится. Поэтому в промышленных девайсах иногда ставят извращенские кварцы на 9.126 МГц. Нужно иметь это в виду, хотя и сильно переживать из-за этого не стоит - UART терпит несовпадение скорости до определённого предела.

частота 8 или 16МГц, скорость 10400, смотрел на онлайнкалькуляторе, вроде незначительное отклонение.