|
Нужна помощ с UART ATmega16, Подскажите в чем дело ? |
|
|
|
Aug 3 2008, 15:13
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
МК ATmega16 (dip) обвес нечего примечательного диодный каскад и пара кнопочек + кондюк резистр и диод на резе. MAx232EPE (dip) обвес конденсаторы(105) выполненено по схеме  Все это питаю от USB Пишу на CodeVisioAVR Код #include <mega16.h> #include <stdio.h>
void initialization(void){ DDRA = 0xFF; PORTA = 0xFF; TCCR0 = 0x05;
UCSRA=0x00; UCSRB=0x10; UCSRC=0x86; UBRRH=0x00; UBRRL=0x0C; }
void main (void){ initialization(); while (1){ PORTA++; putsf("hello world"); while (!(TIFR&0x01)); TIFR = 0x01; }; } прошиваю через COM с помощью UNIPROF дальше все это подключаю и мониторю с помощью LookRS232 и ComVC и там и там "helloworld" не наблюдаю но обе программы конектятся и пишут что все гуд , попытался замкнут ношки max232 *11 - 12) сообщения назад не возращается . попытался замкнут 2-3 ножки комп порта результат нулевой. вследствии того что прошиваю я через com port отпадает вариант что он не рабочий. Диоды на мк мигают все гуд значет мк тоже работает. материал брал с http://www.123avr.com/z4.htm
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 24)
|
Aug 3 2008, 16:51
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 9-03-08
Пользователь №: 35 755

|
Для начала можно попробовать просто записать один символ в регистр uart, не пользуясь putsf. Когда ты замыкаешь на компе TX и RX по идее буковки, которые ты посылаешь через терминал, должны появляться в терминале без включенного локального эха. Если локальное эхо включено - появятся сразу две буквы. Вообще ничего не появляется?
Сообщение отредактировал LamerMan - Aug 3 2008, 16:52
|
|
|
|
|
Aug 3 2008, 17:38
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
Цитата(SysRq @ Aug 3 2008, 21:11)  По линку написано, что перемычки CTS\RTS и DTR\DSR не обязательны. Ежели у вас их нет, то управление потоком в настройках порта на компе ставить исключительно как "Нет", иначе замыкание RX на TX в любом месте схемы ничего не даст.
Ну и разделительной емкости между питанием и землей не видать, у меня MAX3232 не заводился без нее толком при питании от USB О_о Если не сложно можно по подробнее что за разделительная емкость ? да, у меня стоят перемычки . Если точнее то когда ставлю замыкаю Rx Tx на максе и в програме COmVS отсылаю символы то возращаются какито цифры ??? УБрал перемычки CTS-RTS и DTR-DSR замкнул Rx Tx LookRS232 молчит как партезеан а ComVs при передачи сылается на ошибку .
|
|
|
|
|
Aug 3 2008, 18:02
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
Я вот про это и говарил .... я проверял все уже по 10 раз все правельно(кроме моего написания) все по схеме все прозвонено дважды и просмотренно и все не работает ........ Конденсатор подцепил между питанием и землей и нефига не пашет а прога comvs выдает ошибку при отправки ?????????? а есть каконебуд мение капризный интерфейс ?
Я тут подумал что по идеи надо сначало добиватся чтобы при замыкания Tx Rx на комп порте должны биты возращатся . Если ктонебуд делал можно поподробно, с помощью каких программ мониторили и как замыкали ?
|
|
|
|
|
Aug 3 2008, 18:10
|
Участник

Группа: Новичок
Сообщений: 44
Регистрация: 9-03-08
Пользователь №: 35 755

|
Цитата(Costia @ Aug 3 2008, 22:02)  Я тут подумал что по идеи надо сначало добиватся чтобы при замыкания Tx Rx на комп порте должны биты возращатся . Если ктонебуд делал можно поподробно, с помощью каких программ мониторили и как замыкали ? в linux есть программа minicom, в windows есть hyper terminal. Я просто замыкаю rx и tx и смотрю как выводится эхо вводимых данных. Как было сказано выше нужно выставить управление потоком в none, если стоит hardware или software.
|
|
|
|
|
Aug 3 2008, 19:08
|

Местный
  
Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317

|
Советую такую последовательность действий: 1. Запускаете терминалку (я предпочитаю Zoc, для непривередливых подойдет и HyperTerminal), замыкаете txd rxd без подключения Вашего девайса и наблюдаете эхо сигнал. В противном случае ищем багу на компе. 2. Подключаете Ваш девайс и дергаете ножкой txd со стороны PC, при этом щупаете мультиметром за нужку 12 максика (за rxd со стороны меги) и наблюдаете за изменением сигнала. Если все происходит ожидаемо - можно двигаться дальше. Иначе - ищем багу в цепи txd. 3. Замыкаете выходы txd-rxd максика со стороны меги. При этом мегу нужно либо вовсе вытащить (если она в дип колодке) или стереть прошивку в меге - во избежании несчатных случаев. Опять же, дергаете ножкой txd со стороны PC и наблюдаете за ножкой 14 максика (RXD со стороны PC). Уровень на ней должен изменяться примерно от примерно -7.5 до +7.5 вольт в карйних положениях. Если это так, то все должно работать. (Естесственно, txd rxd надо разомкнуть) P.S. Проверьте, снять ли ресет с контроллера P.P.S. Ссылки на сайт avr123 на этом форуме считаются дурным тоном. P.P.P.S. Если всеже перейдете на avr gcc, то с примерами будет проще  Так же отмечу, что врятли кто будет разбираться, что означает строчка типа такой "UCSRC=0x86" Обычно этом записывают ввиде битовых сдвигов в перемешку с битовым "или" - читать такой код проще.
|
|
|
|
|
Aug 3 2008, 19:22
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
Попробовал Виндовз терминал , выполнен он конечно в лучших традициях виндовз но я не догнал как там сообщения отсылать , попробовал файл - не увенчалось успехом говарит о сетевой ошибки . управления потоком стоит - ноне и когда я в программе ComVs отсылаю сообщения возращаются биты но в текст он не переводит а тока в 10ричиную систему . как только отключаю питание max232 биты не приходят следственно .... чтота есть но хваленая LookRS232 все есче молчит
|
|
|
|
|
Aug 3 2008, 19:32
|

Местный
  
Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317

|
Цитата(Costia @ Aug 3 2008, 23:22)  Попробовал Виндовз терминал , выполнен он конечно в лучших традициях виндовз но я не догнал как там сообщения отсылать , попробовал файл - не увенчалось успехом говарит о сетевой ошибки . управления потоком стоит - ноне и когда я в программе ComVs отсылаю сообщения возращаются биты но в текст он не переводит а тока в 10ричиную систему . как только отключаю питание max232 биты не приходят следственно .... чтота есть но хваленая LookRS232 все есче молчит Вообще-то, при нажатии на клавиши терминалка посылает в порт код нажатого символа... О каком сообщении Вы говорите, какие биты у вас там ходят - мне не понятно. Скачайте триальную версию zoc`а.
|
|
|
|
|
Aug 3 2008, 20:14
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
Попробовал эту программу чесно говаря лень даже в нее везжать .. что касается битов то они просто в логе пишутся .
Колличество установленных СОМ портов: COM3 COM1
Базовый регистр порта : $3F8
00:02:42 $FF 1 1 1 1 1 1 1 1 [ 1 ] 255
Подключено к : Com1
00:02:51 $00 0 0 0 0 0 0 0 0 [ 2 ] 0 00:03:30 $31 0 0 0 1 0 1 0 0 [ 3 ] 72 00:03:30 $00 0 0 0 0 0 0 0 0 [ 4 ] 0
Какие могут быть причины отсуствия " Эхо " я бы уже полез в биос но дело в том что прошиваю мк я через комп порт и не жалуюсь ???
все я разобрался с виндовым терминалом там одно окно и в него призодят символы которые приходят от порта я питания выключа и по клаве стучу и символов нет клаву покдлюча И ВОТ ОНО эХОООО ураа !!!!
судя по своим сообщениям я туплю не хуже своиего UART а .. извеняюсь просто спать хочется Но это дело принципов !
так я замыкал контакты на максе тоесть и адптер в порядке но когда мк поключаю hello world нету тоесть проблема с мк .... дайте пожалуйста код для мк который какоенебуд сообщения через уарт передает с учетом что у меня встроенный тактовый гениратор и мега16
|
|
|
|
|
Aug 3 2008, 20:23
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
со стороны меги я выдернул её из колодки и зымакаю ножки ..
|
|
|
|
|
Aug 3 2008, 20:49
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
а код даш ???
|
|
|
|
|
Aug 3 2008, 21:35
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
одним словом код странный проще самому изобразить ... напиши плиз как ты реализуеш отправку какогонебуд сообщения по uart, а лучше какуюниебуд инфу
|
|
|
|
|
Aug 3 2008, 22:52
|

Местный
  
Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317

|
Ну во первых, о каком сообщении идет речь? RS232 - байт-ориентированный интерфейс. Вы можите послать байт, можите послать последовательность (независимых байтов), можите сами порезат это на пакеты и слать "сообщения". Главное что нужно иметь - это функция посылки/ приема одного байта. У меня это uart_recv/uart_send. Дальше, если хотим послать буфер, то в простейшем случае делаем так: Код void uart_write(void *vbuffer, size_t size) { register unsigned char *buffer = (unsigned char*)buffer; while (size--) { uart_send(*buffer); buffer++; } }
int main (void) { ... char message[] = "Hello, world\n"; uart_write(message, sizeof(message)); // message отводится на стадии компиляции, // поэтому sizeof здесь допустимо использовать. ... } В Си есть такая замечательная функция как printf - незаменимая вещь при отладке. Разберитесь, как ее использовать с вашим компилятором. Заодно, покурите доки на то, что вообще такое RS232 и как он работает. В общем, RTFM...
|
|
|
|
|
Aug 5 2008, 18:42
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
Уважаемые тут возник такой момент что я подумал а вдруг avr123 пиздеж и провакация и сделал все в лучших традициях этой статьи http://www.pcports.ru/articles/avr6.phpи что вы думает все заработало ... но вот суть вопроса . в программе Terminal v1.9b все работает как и обещали а вот в программе LookRS232 & COMVS нефига не работает тоесть не эха не сообщения ... чем это может быть вызвано ?
|
|
|
|
|
Aug 5 2008, 19:30
|

Местный
  
Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317

|
Цитата(Costia @ Aug 5 2008, 22:42)  ...чем это может быть вызвано ? Это скорее всего связано с игнорированием Вами официальной документации, а также с поиском готовых решений вместо создания своих! К тому же, пример http://www.pcports.ru/articles/avr6.php сделан по меньшей мере безграмототно.
|
|
|
|
|
Aug 5 2008, 20:14
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
Дело в том что я глубоко убежден что многие вещи нельзя преодалеть с прышка а следовательно если действовать по шагова то надо разобратся с железом и проверить его роботоспособность другова варианта кроме как использования чужова кода я не вижу !
|
|
|
|
|
Aug 5 2008, 20:48
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507

|
НАсчет официальной документации .. я буду вам благодарен если поделитесь такой . енглиш знаю только азы поэтому дш на енгле читать затруднительно .
Модератор . Я учту ваши замечания .
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|