UART

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

UART

Сообщение sich »

Очень хотелось бы разобраться с этим УАПП. Как я понимаю, это простая аппаратная реализация посл.интерфейса (как на МК51?)...
1? чтобы гонять по нему различные протоколы (напр. RS232,485) нужна только программная часть??? или это уже готовый RS-232 ?
2? Можно ли по этому UART протащить 1wire? и как? у него же RXDиTXD в одном флаконе (проводе)...
3? кто-нить применял это чудо для своих поделок? Интересно, насколько это эффективно, поскольку мне кажется это можно и на 2-х пинах порта организовать (разве что скорость здесь можно выставить точно)....
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Это есть аппаратный RS-232. 1-wire не получится. Но! В мегах (ATMEGA какие-то) есть и аппаратный 1-ваир.
Воть. Ноги RXD и TXD соединяем с соответствующими выводами COM-порта - и радуемся :))
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
Alexey_B
Нашел транзистор. Понюхал.
Сообщения: 186
Зарегистрирован: Чт янв 12, 2006 00:17:30
Откуда: Новосибирск, ИФП СО РАН
Контактная информация:

Сообщение Alexey_B »

Это в каких таких ATmega есть поддержка 1-wire на аппаратном уровне, искал по этой серии, не нашел
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

М-да?
Ну значит я чет напутал. :?
Ладно, извиняюсь за дезинформацию :))
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

а где реально этот УАПП использовать? для связи с компом? а как туда данные запихивать/принимать?
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Куда запихивать?
В контроллере - пишем программулину, которая выводит данные по UART или принимает. Подключаем к КОМ-порту компа.

На компе - с помощью терминальной проги. Например, стандартного виндозного гипертерминала. Или пишем свою прогу.
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

Serega писал(а):Это есть аппаратный RS-232. 1-wire не получится. Но! Воть. Ноги RXD и TXD соединяем с соответствующими выводами COM-порта - и радуемся :))

А разве преобразование уровней не надо? напрмиер MAX2323?
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Желательно но не обязательно. :)
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Возьми библиотечку и пример для начала, в том же WinAVR есть, скомпилируй и попробуй. Там если с бибиотекой вообще все просто. Инициализация и потом прмо текстом шлешь. :)
Oleg

Сообщение Oleg »

Помогите пожалуйста разобраться с подключением Меги к ПК с взаимодействием через терминальную программу. Как настроить УАПП и по какому протоколу взаимодействовать? А вот если бы это ещё было в стиле Ваших уроков :)) было бы просто супер.
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

тогда потерпи, завтра всё равно делать нефиг - напишу
тока вот... Серёга!!! Где моя статья? Завтра будет ещё одна!!!
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

Поспешил я однако с "нефиг делать".
Короче про UART. На асме я не силён, а вот на с++ помогу. Перевести в асп не составит я думю труда.

Код: Выделить всё

#include <avr/io.h>

#define F_OSC 16000000                 /* oscillator-frequency in Hz */
#define UART_BAUD_RATE 38400
#define UART_BAUD_CALC(UART_BAUD_RATE,F_OSC) ((F_OSC)/((UART_BAUD_RATE)*16l)-1)

void usart_putc(unsigned char c) {
   // ждм пока UDR не будет готов к передаче, возможно с прошлой операции он ещё не подготовился
   loop_until_bit_is_set(UCSRA,UDRE);
   UDR = c;    // отправляем символ в UART
}

int main(void) {
   // устанавливаем скорость порта
   UBRRH = (uint8_t)(UART_BAUD_CALC(UART_BAUD_RATE,F_OSC)>>8);
   UBRRL = (uint8_t)UART_BAUD_CALC(UART_BAUD_RATE,F_OSC);

   // Разрешить Приём и передачу данных черех UART
   UCSRB = (1 << RXEN) | (1 << TXEN) ;

   //ассинхронный 8N1
   UCSRC = (1 << URSEL) | (3 << UCSZ0);

   while (1) {
      // ждм пока UDR не будет готов к приёму, точнее ждём когда он просигнализирует, что в UDR лежит свежепринятый байт
      loop_until_bit_is_set(UCSRA, RXC);
      ch = UDR;
      //ch содержит байт приянтый с UART.
      usart_putc(ch); //плюнет в UART обратно что поймал, ECHO так сказать.
   }

   return 0;
}

вот тот минимум, что даст работу в синхронном режиме.
Теперь чтобы это почуствовать, так с сказать, в деледе на м нужен компьютер типа PC и MAX232 (или любой другой 232 преобразователь уровней) хотя грят работает и без МАХ232, но рисковать я не стал. Даташитов на МАХ232 полно, и как его подключить я думаю сообразишь.
На компе запускаем любую терминалку, в виндах это Hyper Terminal выбираешь COM порт, к которому ты это подключил, у меня это COM3, и жмёшь кнопоку Дополнительно, там выставляешь скорость порта, в нашем случае это 38400 и 8 бит с 1 стоповым, проверку на ошибки выставь в none (отключи). Всё. Жмём Ок и начинам судорожно долбить по клаве :) Должны получать то что нажимаем обратно. Хочу заметить, если оторвать от порта устройство, и продолжить долбить по клаве, ничего появляться не должно.

Ах да! Практика показла, что RX и TX ноги микрухи было бы не плохо подтянуть к земле резистором от 300 до 1к, иначе когда будут "паузы" во время передачи, рискуем получить мусор. Я долго бился с этим :(
Oleg
Родился
Сообщения: 2
Зарегистрирован: Вт фев 28, 2006 09:23:17
Откуда: Запорожье

Uart

Сообщение Oleg »

Большое спасибо за консультацию. Придётся видимо изучать си, т.к. я в них в полных нулях и пока не разобрался со всякими войдами и т.п. Пробовал мучать WinAVR но знаний не хватает. Изучал в универе турбопаскаль и это всё. Мах у меня есть, попробуем.
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

в даташите есть это же но на асме. в смысле берёшь строку что я написал и смотришь её аналок в даташите :) Если уж так всё плохо.
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Alexey_B писал(а):Это в каких таких ATmega есть поддержка 1-wire на аппаратном уровне, искал по этой серии, не нашел

На аппаратном нету, а вот в CodeVision есть программная реализация...
Today fine night...
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

тов Spider 300 эт Ом см. выше. У меня вот хрень какая написал на С++, програмулину на модем как надо шлёт(звонил ч/з ATDxxxx),а вот на контроллер мусор приходит.
Настоящий кот всегда либо голоден,
либо невыспался ...
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

У модема AUTO DETECT скорости порта. т.е. если ты ему туда 9600 и он тебе в ответ 9600. Но это только в теории. А ещё у него коррекция ошибок и прочее. Я бы глянул осцилографом что там происходит...
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

осцил у меня есть токма обычный С1-94. Прокатит???? И это резюк то на сколько всё таки. Я на 300 Ом поставил.

Пробовал Гипером та же хрень символы причём почти все одни и теже почти, не зависимо от посылаемой инфы.
Вложения
usart.rar
прошивка на Си под М16(10 МГц) + сама прога
(8.36 КБ) 685 скачиваний
Настоящий кот всегда либо голоден,
либо невыспался ...
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Ты фузы контроллеру выставил на работу с внешним кварцем?
Today fine night...
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

А как иначе? Без них вообче бы не работало. них...на???
Кстати к СОМу когда подключае какой режим использовать синхр. или асинхр. если синхр. то ч.з. T или R MAX232 подглючать синхронизирующий сигнал(т.е. контроллер или комп выдаёт тактовый).
Настоящий кот всегда либо голоден,
либо невыспался ...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»