Я пишу простую программную реализацию UART для своего ATtiny. Мой процессор не быстрый, поэтому я должен выбрать низкую скорость передачи данных. Тем не менее, я хочу использовать как можно более высокую скорость передачи данных. И я могу оценить неточность скорости передачи в моей реализации.
Какова максимально возможная относительная погрешность скорости передачи данных RS-232 для правильной связи с другими устройствами? Определяет ли это стандарт RS-232?
Я не знаю, есть ли формальное определение. Но учтите это:
Символ RS232 имеет длину около 10 символов (старт, 8 бит, стоп).
Если вы начнете декодировать на полпути через символ, а ваши часы отстают на 5%, после 10 символов вы отклонитесь от цели на 50% ширины символа; т.е. 5% - это максимально возможная допустимая ошибка. И это предполагает, что другой конец синхронизирован правильно; если бы у него была ошибка в другом направлении, вы бы неправильно расшифровали его.
Таким образом, ошибка в 2,5% в противоположных направлениях на каждом конце также будет на грани отказа.
Проблемы с целостностью сигнала, вызванные длиной кабеля, только усугубят ситуацию.
Так что практически ошибка ниже 5% будет работать с «хорошими» часами на другом конце и очень коротким кабелем; для надежной связи вам нужна ошибка часов ниже 2%, а еще лучше для поддержки длинных кабелей.
Теперь узнайте, на что способен ваш ATTiny при разных скоростях передачи данных и тактовых частотах процессора...
геометрический
Воутер ван Оойен
Джиппи