Дану програму я часто використовую при налагодженні пристроїв працюють з протоколом USART, зокрема навіть при тестуванні модуля конвертера рівнів RS-232 / TTL на MAX232 я застосовував цю програму.
Алгоритм роботи програми:
Програма виконує прийом символів і їх негайну відправку на вихід, тобто дана програма своєрідна заглушка.
Давайте трохи детальніше розглянемо ділянки програми.
USART_Init (47); - тут число "47" це значення регістра ubrr, вибрано з таких міркувань.
Для розуміння нам необхідно відкрити документацію на мікроконтролер Attiny2313 на сторінці містить таблицю швидкостей роботи по протоколу USART в залежності від зовнішнього кварцового генератора.
Де цифри 1..4 означають:
1 - швидкість на якій ми плануємо працювати,
2 - значення величини ubrr,
3 - стовпчик з величиною ubrr для режиму роботи подвійний швидкості (U2X = 1),
4 - частота нашого зовнішнього кварцового генератора.
За швидкістю передачі даних можу сказати що немає ніякої різниці яку вибирати, будь то 9600 біт / сек або 115,2кбіт / с, стабільність роботи і там і там висока.
З подвоєнням швидкості раджу просто раз і назавжди визначитися і завжди працювати з подвоєною швидкістю або в звичайному режимі, щоб уникнути плутанини в майбутньому. Різниці в роботі я не відчув що в режимі U2X = 1 що в U2X = 0.
За вибором кварцового генератора можу сказати що необхідно врахувати що за специфікою своєї роботи порт USART має деяке значення помилки, яке в деяких випадках може досягати великих значень і відповідно негативно впливати на якість передачі даних, що призводить до збоїв в роботі. Для уникнення таких збоїв раджу зупинитися з вибором на наступних величинах кварцового генератора:
1. 1,8432Мгц
2. 3,6864МГц
3. 7,3728МГц
4. 11,0592МГц
5. 14,7456Мгц
Деякі досить складно дістати, хоч на дворі і 21-е століття і Китай так їх клепає що аж гуде в гаю, але все ж факт є факт. Мені пощастило знайти кварц 7,3728МГц, їм зараз і користуюся.
Вибір саме цих величин кварцового генератора обумовлений відсутністю помилок в даних при роботі з USART, все значення взяті з datasheet на мікроконтролер attiny2313. колонка error.
Ось власне і сам код USART "Ехо" для ATtiny2313:
Завантажити проект для AVR studio з прошивкою.
Для роботи з COM портом персонального комп'ютера рекомендую користуватися програмою Terminal RS232