Страница 1 из 1
Тема перенесена в раздел "Микроконтроллеры и ПЛИС"
Добавлено: Ср сен 08, 2010 17:35:46
erkishiosman
Всем доброго времени суток. Пытаюсь решить следующую задачу: имеется Attiny 2313, LCD от WINSTAR (16x2) и GPS приемник em-406. В даташите на приемник указано, что он передает данные по USART (протокол NMEA, 4800 бод/с, формат сообщения 8N1). Я написал программу для отображения первых 16 символов, полученных в сообщении. Таблица символов для LCD схожа с таблицей ASCII символов (по крайней мере те символы, которые используются в сообщении), поэтому я передаю полученное сообщение сразу же на дисплей, не преобразовывая его. Но, к сожалению на дисплее отображается чушь всякая. Я приемник и к com-порту подключал - та же байда. Может кто знает в чем дело?
P.S. Прикрепляю файл программы на асме
Re: OEM GPS приемник, не могу настроить USART ((
Добавлено: Ср сен 08, 2010 22:15:40
erkishiosman
Кто-нибудь может помочь? Или мне лучше перевести тему в раздел "Микроконтроллеры и ПЛИС"?
Re: OEM GPS приемник, не могу настроить USART ((
Добавлено: Чт сен 09, 2010 07:44:49
Sergey_K
erkishiosman писал(а):Или мне лучше перевести тему в раздел "Микроконтроллеры и ПЛИС"?
Лучше, конечно, сразу туда. Специфика понимашь.
erkishiosman писал(а):com-порту подключал - та же байда.
Сначала через СОМ и наладь связь понятную, а потом уже понятое мурлыканье тинькой будешь обрабатывать.
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Чт сен 09, 2010 13:18:41
lacvel
Вначале отлаживайте вывод, потом проверьте что получаете верно. Ошибка часто в скорости.
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Чт сен 09, 2010 13:54:23
Fasterpast
а em-406 не USB разве?
если нет, пробуй скорость 9600. по умолчанию скорость порта на подобных модулях обычно именно такая (независимо от скорости NMEA)
ну и пробуй команды устройства. может он по умолчанию в двоичном сирфе передаёт а не в нмеа. всё есть в дш.
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Чт сен 09, 2010 13:57:45
Engineer_Keen
Частота МК какая? Просто при таких настройках и частоте по-умолчанию 8МГц скорость выходит 9600. Если 4МГц, то скорость сойдет и надо вывод LCD смотреть... Строка "Ready" нормально выводится?
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Чт сен 09, 2010 15:04:32
erkishiosman
Fasterpast писал(а):а em-406 не USB разве?
Нет em-406 не USB. В даташите сказано, что по дефолту используется NMEA 4800 бод/с, формат слова 8N1.
Engineer_Keen писал(а):Частота МК какая? Просто при таких настройках и частоте по-умолчанию 8МГц скорость выходит 9600. Если 4МГц, то скорость сойдет и надо вывод LCD смотреть... Строка "Ready" нормально выводится?
Частота контроллера 4 МГц (резонатор), строка "Ready" выводится нормально. Самое интересное, что я и к ком-порту через гипертерминал подключал и там та же фигня - перепробовал все скорости: не помогло(( Приемник лежал без дела больше года, говорят, что такие вещицы не любят статического электричества, не знаю насколько это правда.
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Чт сен 09, 2010 15:07:57
erkishiosman
Написал программу, которая меняет скорость USART от 1200 до 115200 до тех пор, пока не прийдет последовательность символов "$GP" (в протоколе NMEA так начинаются все сообщения). Контроллер очень долго думал, но искомую скорость так и не подобрал.
Re: Тема перенесена в раздел "Микроконтроллеры и ПЛИС"
Добавлено: Чт сен 09, 2010 18:45:52
kolobok0
erkishiosman писал(а):... Прикрепляю файл программы на асме
не указали какой частотой кормите мк.
если 2МГц - то ошибка
Это то что на поверхности.
1) джампы не обязательно все рисовать. Есть замечательная директива .org <имя смещения из инклуд файла на ваш камень>
2) нафига вообще прерывание? Если для понтов - то мимо. Если под развитие - так оно не правильно написано. Смысл? Делали то же самое бы в цикле - меньше непоняток было бы.
3) что мешает прогнать в симуляторе под дебагом?
4) в начале прерывания можно заюзать вместо brne => breq меньше джампов в коде.
5) почему юзаете st Y+,r21 и стесняетесь ld r21,Y+ ?
6) нафига задержка в прерывании? это типа чтоб пропустить некий кусок данных по USART?
так же не понятно LCD у вас подключён по 4 или по 8 проводной шине данных? Стирает и выводит что то осмысленное уже как я понял? Т.е. дисплей дышит?
кстати что значит "подключали и к COM порту"? у девайса какие уровни то на выходе? 5 вольтовые или стандарт COM?
(круглый)
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Чт сен 09, 2010 20:39:03
Engineer_Keen
Частота была объявлена выше - 4МГц.
Кстати ошибочка:
После метки endd нет выхода из обработчика прерывания через reti, только ret.
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Пт сен 10, 2010 14:04:06
erkishiosman
2 kolobok0
Частота 4 МГц
1) Я не ставил целью получить оптимизированный код
2) В программе два прерывания - первое: прерывание по сбросу, второе: прерывание по получению байта данных.
3) В протеусе все работает нормально, в реальности тоже работает, но не так, как надо - показывает не те символы, что нужны
4) Ответ в 1)
5) Недоглядел
6) Этот вопрос я не понял. Где там задержка? Все задержки необходимы для дисплея (по ДШ)
LCD подключен по 8 проводной шине. Алгоритм работы - программа по получению байта данных по USART запускает прерывание, в прерывании байт данных записывается в SRAM. Далее программа выходит в основной цикл до начала нового прерывания по принятии байта. В sram записываются первые 16 символов сообщения, после чего все прерывания отключаются и записанные в SRAM символы выводятся на дисплей и программа больше ничего не делает. Смысл такой программы - удостовериться в правильности настроек USART, найдя правильные настройки я буду писать другую программу.
Сам GPS приемник имеет стандартные ТТЛ уровни. Подключал я его используя MAX232 - также выдает непонятные символы((
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Пт сен 10, 2010 20:40:34
kolobok0
> Частота 4 МГц
1) замечание касалось не оптимизации. а чтоб не кол-во джампов счтать а написать всего два. ресет и на приёме.
.org 0
jmp init
.org URXCaddr
jmp gps
2) -- второе: прерывание по получению байта данных. в коде немного не так. а) - это не прервание для боевого б) (как тут замечено было) окончивается странно. обычным рэтом!
3) симуляцию так же не плохое дело. но требует настроек. пользуюсь студией обычно. про протеус - хз.
4) -
5) -
6) у вас вконце прерывания задержки..задержки..задержки и рэт. собственно (см.1) нуна ирэт вообщето. а ежели вам никуда не нужно - так и организуйте бесконечный цикл на хвосте.
.. после чего все прерывания отключаются (в коде - запрещаются прерывания) и записанные в SRAM символы выводятся на дисплей и программа больше ничего не делает (кроме ретурна непонятно куды). Смысл - ок..
глазками больше, лично я - ничего не вижу.
рекомендации следующие:
1) вам необходимо удостовериться что Вы видите именно то что выдаётся gps. Т.е. ручками вывести на дисплей те символы которые вы ожидаете от него. проверить что они выводяться.
2) если Вы подключали макс - то наверное можно с организовать мостик на писюшный комп с указанными параметрами. глазками ошибки не видно.
3) стоит посчитать ручками и вывести делитель на 4 000 000 (например). засечь реальную скорость МК.
после этого остаёться только одно - gps и сигнал с него.
(круглый)
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Пт сен 10, 2010 20:46:04
uldemir
Посмотрите полярность сигнала.
Re: OEM GPS em-406. Подключение к Attiny 2313 через USART
Добавлено: Вс сен 12, 2010 08:43:35
Fasterpast
А какая версия модуля у вас TTL или RS-232? Вы уверены что там TTL? В ДШ написано, что может быть и то и другое.
Я бы всё же посоветовал сначала к компу его подключить через соответствующий адптер (если TTL), и там найти нужную скорость.
Если он точно ттл, и при этом с компом через мах не работает, и с полярностью сигнала всё точно не напутано, боюсь он может быть мёртв.