|
Проблема с софтовым UART на Mega8, Проблема с софтовым UART на Mega8 |
|
|
|
Jul 28 2008, 22:32
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-07-07
Пользователь №: 29 364

|
Уважаемые форумчане. Софтовый уарт принимает не корректно. Передача происходит без проблем, а принимает вместо: Пример: Должен принять 000102030405 принимает FFFFFFFFFFFFF В чем проблема, так и не понял(может настройки пррываний ?). Компилятор IAR. Проверял на Proteus 7.2 Или быть может у кого нибудь есть рабочий софтовый уарт. Скорость нужна макс. 115200. Буду признателен любой помощи. С Уважением, Руслан.
|
|
|
|
|
 |
Ответов
|
Jul 28 2008, 23:27
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-07-07
Пользователь №: 29 364

|
Цитата(bgc @ Jul 29 2008, 01:35)  Скорость великовата для софтового... Проверьте на 2400. при большой загрузке процессора это предел. При малой наверное потянет 19200. Но точно не проверял. Пробовал на 115200. Передает нормально а прием нет. У меня есть другой софтовый уарт так он работает как раз на 19200. Неужели 19200 предел ? Кстати прием и передача работают по очереди. Неужели если только принимать, то не получится принять на большей чем 19200 скорости ? А это оригинальный софтовый уарт. Потом я его переделал под IAR(предыдущий аттачмент). Может я где-то напартачил ?
|
|
|
|
|
Jul 29 2008, 13:06
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Ruslan Konovalov @ Jul 29 2008, 02:27)  У меня есть другой софтовый уарт так он работает как раз на 19200. Неужели если только принимать, то не получится принять на большей чем 19200 скорости ? С кварцем 14.7456 должно тянуть 57600. ЗЫ: А почему не используете аппаратный? Цитата(=GM= @ Jul 29 2008, 15:42)  Ну почему отказаться, приём по прерываниям, основная работа в фоне. Для приёма на таких скоростях лучше, конечно, чтобы других прерываний не было. 5 выборок надо делать. 115200 x 5 = 576kHz (будет всего 16Mhz / 576 = с натягом 32 такта на выборку).
|
|
|
|
|
Jul 29 2008, 14:59
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(=GM= @ Jul 29 2008, 16:43)  5-то зачем? Для того чтобы соответствовать стандарту (обеспечить нормальную работу при 2% отклонении частоты приемника и 2% отклонении частоты передатчика (суммарно 4% отклонение) ). Цитата Ну, для 1Мбода длительность одного бита 16МЦ(тактов), вполне хватит на приём по прерыванию. ну ну, хватит ровно на чтение из порта одной выбоки и задвигание в регистр. Даже на анализ старт/стоп не хватит. Работать будет так же г...но плохо как и то, что в примере автора ветки.
|
|
|
|
Сообщений в этой теме
Ruslan Konovalov Проблема с софтовым UART на Mega8 Jul 28 2008, 22:32  =GM= Цитата(Ruslan Konovalov @ Jul 28 2008, 22... Jul 29 2008, 12:32   MrYuran Цитата(=GM= @ Jul 29 2008, 16:32) для пол... Jul 29 2008, 12:36    =GM= Цитата(MrYuran @ Jul 29 2008, 11:36) Если... Jul 29 2008, 12:42      defunct Цитата(SasaVitebsk @ Jul 29 2008, 18:55) ... Jul 29 2008, 16:10       AHTOXA Цитата(defunct @ Jul 29 2008, 22:10) Связ... Jul 29 2008, 16:29        defunct Цитата(AHTOXA @ Jul 29 2008, 19:29) При т... Jul 29 2008, 16:53         AHTOXA Цитата(defunct @ Jul 29 2008, 22:53) Теор... Jul 29 2008, 18:18          defunct Цитата(AHTOXA @ Jul 29 2008, 21:18) Скоро... Jul 29 2008, 19:03           AHTOXA Цитата(defunct @ Jul 30 2008, 01:03) Не м... Jul 29 2008, 19:56            defunct Цитата(AHTOXA @ Jul 29 2008, 22:56) Там п... Jul 29 2008, 20:36             AHTOXA Цитата(defunct @ Jul 30 2008, 02:36) Поче... Jul 29 2008, 21:23     =GM= defunct ну ну, хватит ровно на чтение из порта одн... Jul 29 2008, 16:20 Ruslan Konovalov Огромное спасибо всем кто отозвался.
Мне было бы д... Jul 29 2008, 18:14 =GM= Цитата(Ruslan Konovalov @ Jul 29 2008, 17... Jul 29 2008, 21:10 _Pasha Цитата(AHTOXA @ Jul 29 2008, 19:29) Потом... Jul 30 2008, 10:57 AHTOXA Цитата(_Pasha @ Jul 30 2008, 16:57) В общ... Jul 30 2008, 11:27
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|