МАРСОХОД

Open Source Hardware Project

Проекты Altera Quartus II для платы Марсоход

Часики

Часы, синхронизирующиеся по спутнику GPS

В тему названию сайта, наши часики тоже будут космические!

Можно было бы написать две статьи, но у меня получилась одна, но состоящая из двух частей.

Часть 1.

Пример использования популярного в народе символьного LCD-дисплея WH0802. Это восьмисимвольный двухстрочный жидкокристаллический дисплей со светодиодной подсветкой.

Для его подключения был спаяна вот такая платка:

Платка для подключения LCD дисплея к плате Марсоход

Ее схема:

Схема платки для подключения LCD дисплея к плате Марсоход

Кроме того, сам дисплейчик был слегка доработан. На плате есть посадочные места, но не впаяны резисторы, с помощью которых можно подать питание на светодиоды подсветки. Мы поставили два резистора на 33 ома.

доработка LCD дисплея

Дисплей имеет не сложный параллельный интерфейс, подробно описанный в документации (

LCD дисплей ( 458341 bytes )
). Для сокращения количества подключаемых пинов мы использовали 4х-битный режим, хотя из-за этого несколько усложнился проект для платы Марсоход ().

Хочу отметить несколько важных моментов при работе с дисплеем. Сразу после включения питания нужно немного подождать - в дисплее есть свой контроллер, и на его инициализацию уходит какое-то время (мы ждем 1 секунду). Далее в него нужно занести управляющую последовательность, включить 4-х битный режим, отображение второй строки и так далее. ( мы, кроме того, пишем слово "Marsohod" в верхней строке ). После этого можно выводить нужную нам информацию, не забывая корректировать указатель на дисплейную память.

Теперь, когда мы можем пользоваться дисплейчиком и хотим сделать из него часы, встает резонный вопрос, а где, собственно, брать время?

Часть 2.

GPS-приемник.
Приобрел по случаю GPS модуль CONDOR67650-10. К счастью, к самому модулю, в магазине, где я его покупал, мне предложили взять и антенну, за что им огромное спасибо.

антенна GPS приемника

К сожалению, документация на него не очень подробная (

GPS приемник ( 1006382 bytes )
), но что куда подключать в принципе понятно.

Для экспериментов была спаяна платка:

платка для подключения GPS модуля к плате Марсоход

Обратная сторона:

платка для подключения GPS модуля к плате Марсоход

Модуль имеет последовательный интерфейс,  и первое, что мы сделали - это подключили его к компьютеру (правда понадобился еще преобразователь уровней RS232). Сразу после включения модуль один раз в секунду передает примерно такие сообщения:


$GPRMC,115403.908,V,,,,,0.00,0.00,261110,13.6,W,N*06
$GPGGA,115404.908,,,,,0,0,,,M,,M,,*4C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115404.908,V,,,,,0.00,0.00,261110,13.6,W,N*01
$GPGGA,115405.908,,,,,0,0,,,M,, $GPGGA,115417.908,,,,,0,0,,,M,,M,,*4E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115417.908,V,,,,,0.00,0.00,261110,13.6,W,N*03
$GPGGA,115418.908,,,,,0,0,,,M,,M,,*41
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115418.908,V,,,,,0.00,0.00,261110,13.6,W,N*0C


Что они конкретно означают, можно почитать где-нибудь в википедии, а нас интересуют только первые цифры после названия сообщения - это время UTC в символьном виде ( московское UTC+3, в проекте мы это учли ).
Причем время есть с разных сообщениях, для нас достаточно какого нибудь одного, например, "$GPRMC".

Нам остается подключить приемник к плате Марсоход и из каждого сообщения "$GPRMC" выводить время на дисплей.

Сразу после включения GPS-приемник выдает какое-то свое время (2:59:47),
а правильное начинает выдавать только через некоторое время, когда настроится на спутник. Причем, в зависимости от условий приема, это время может быть достаточно большим.

 

Комментарии  

0 #17 Ю р и й 21.02.2013 12:59
Цитирую Яромир:
С инициализацией разобрался спасибо за помощь. Скажите пожалуйста для того чтобы вывести на LCD символ "Q" мне надо посмотреть адрес в Таблице 2 Character Generator ROM Pattern
(Upper4 bit и Lower 4 bit)
в таблице он равен LHLH и LLLH и теперь мне надо выставить команду Write Data to RAM с этим адресом и на LCD появится символ "Q"????

Точно не помню, но , по моему никаких команд не надо, только код символа.
0 #16 Яромир 21.02.2013 12:08
С инициализацией разобрался спасибо за помощь. Скажите пожалуйста для того чтобы вывести на LCD символ "Q" мне надо посмотреть адрес в Таблице 2 Character Generator ROM Pattern
(Upper4 bit и Lower 4 bit)
в таблице он равен LHLH и LLLH и теперь мне надо выставить команду Write Data to RAM с этим адресом и на LCD появится символ "Q"????
0 #15 Ю р и й 21.02.2013 10:58
Цитирую Яромир:
Цитирую Ю р и й:
От 3.3В этот дисплейчик может не заработать. Где-то
видел статью, как его переделать на 3.3, Там, нужно какой-то резистор перепаивать. Кроме того, может не
хватить напряжения на ногу контрастности, прийдется отрицательного немного добавлять. Попробуйте дисплей
запитать от 5В, а все ноги подключите через резисторы на 75-100 ом. Если из дисплея не нужно читать, то должно работать.

А с алгоритмом работы можете пояснить? Хотя бы последовательность инициализации дисплея для шины 8бит, ну и вывод символа к примеру...можно если есть пример кода на VHDL или Verilog или AHDL... а то в данной статье всё спроектировано на SimdolFile-е и я не могу с ним разобраться. Спасибо

Для восьмибитной шины даже проще чем для четырехбитной. Последовательно сть есть в даташите - пнкт13.
0 #14 Яромир 21.02.2013 09:19
Цитирую Ю р и й:
От 3.3В этот дисплейчик может не заработать. Где-то
видел статью, как его переделать на 3.3, Там, нужно какой-то резистор перепаивать. Кроме того, может не
хватить напряжения на ногу контрастности, прийдется отрицательного немного добавлять. Попробуйте дисплей
запитать от 5В, а все ноги подключите через резисторы на 75-100 ом. Если из дисплея не нужно читать, то должно работать.

А с алгоритмом работы можете пояснить? Хотя бы последовательно сть инициализации дисплея для шины 8бит, ну и вывод символа к примеру...можно если есть пример кода на VHDL или Verilog или AHDL... а то в данной статье всё спроектировано на SimdolFile-е и я не могу с ним разобраться. Спасибо
+1 #13 Ю р и й 21.02.2013 07:11
От 3.3В этот дисплейчик может не заработать. Где-то
видел статью, как его переделать на 3.3, Там, нужно какой-то резистор перепаивать. Кроме того, может не
хватить напряжения на ногу контрастности, прийдется отрицательного немного добавлять. Попробуйте дисплей
запитать от 5В, а все ноги подключите через резисторы на 75-100 ом. Если из дисплея не нужно читать, то должно работать.
0 #12 Яромир 21.02.2013 06:27
Товарищи опишите пожалуйста как происходит инициализация дисплея, какой алгоритм работы ? в проекте используются константы 12, 19, 26, 36 с шиной 5 bit я так понял это 4бита данных и 1 бит RS, а где тогда R\W? так же интересует: дисплей запитан от +5В, а I/O CPLD настроены на +3,3В, а в даташите дисплея указано:
Input High Volt ---0.7 VDD= 0,7*5В=3,5В
т.е. Min 3,5V а Max 5V а I/O CPLD выдают MAX +3,3V
Решил прикрутить этот дисплей к Cyclone III ,будет ли он работать? LVTTL=3.3V максимум что можно выставить на Циклоне.
0 #11 Ю р и й 13.12.2012 08:47
Цитирую Николай Пастушок:


Может ввиду некого особенного согласования антенного входа модуля ничего не вышло, ведь SMA имеет минус для подключения оплетки кабеля, а в вашем впаиваемом модуле это согласование делают на плате, в которую впаивается модуль, отдельно?

Похоже, антенна нужна активная :sad:
0 #10 Николай Пастушок 12.12.2012 14:45
Модуль проработал часов пять находясь также на подоконнике моей мастерской, помещение кирпичное, потолок из пластика и дерева а крыша из азбесто-цементн ого шифера. В этот день был снегопад наверное дополнительная помеха, но думаю, не очень уж серьезная. Хотя честно говоря я приемником крутил и вертел с пол часа ожидая хотя бы каких нибудь изменений в посылках модуля, увы, тикало только некое виртуальное время, в GSA не появился ни один спутник. Смог на минутку протянуть приемник на улицу на пол метра, хотя отсутствие какого либо результата и начало очередного снегопада заставили опять спрятаться в мастерской.
Значить Вы не припаивали нижнее по-серебряное покрытие к "земле" а просто наклеили на имеющуюся самоклейку?
Может ввиду некого особенного согласования антенного входа модуля ничего не вышло, ведь SMA имеет минус для подключения оплетки кабеля, а в вашем впаиваемом модуле это согласование делают на плате, в которую впаивается модуль, отдельно?
0 #9 Ю р и й 12.12.2012 06:10
Может вы сильно торопитесь?
У нас в офисе металлическая крыша, поэтому в середине комнаты связи приходится ждать минут 40.
Я экспериментиров ал на подоконнике. :sad:
0 #8 Николай Пастушок 11.12.2012 21:01
Припаивается не только штырь верхнего покрытия но и нижнее припаивается к "земле"?
Как подключить антенну?
0 #7 Николай Пастушок 11.12.2012 21:00
Здравствуйте
Купил GPS-модуль TISTAR-15 и антенну B35-3556920-AMT03.
Антенна по размеру больше, но аналогичной конструкции с таким же методом крепления.
Основной критерий покупки -цена(модуль и пассивная антенна очень дешевы).
Модуль подключил к COM порту компa, преобразователь уровня сделал на транзисторе BC557, диоде, конденсаторе и трех резисторах по схеме из популярного Arduino на Atmega8. Виндовым терминалом наблюдаю пакеты аналогичные приведенным в статье - где на связи нет спутников.
В TISTAR-15 все на разъемах, не под пайку, и SMA ВЧ разъем для антенны.
Подставлял антеннку центральной жилой к центральной SMA, и результата нет.
На фото проекта, антенна припаяна за штырь, но не видно, что было проделано с ее обратной стороной, которая имеет метализированое покрытие, как и верхняя сторона, но на это покрытие наклеина самоклейка, и нет намеков на припаивание его к "земле".
-8 #6 ELEKTROGOD 16.04.2011 09:24
афигеть блин меня заинтересовал GPS модуль это чо реально такие штуки существуют которые на халяву связываются со спутником :roll: :eek: :eek: афигеееть как я отстал от жизни я даже и представить немог что такие хреновины будут в свободном доступе кароч люди скажите откуда такую микруху можно выковырить(ну там из мобил или еще каконеть электроники просто в моих местах нету не одного магазина радиодеталей :cry: ) жутко хачу поэксперементир овать с такой игрушечкой
+2 #5 Денис 05.01.2011 22:57
Я поддерживаю коллег, если не трудно пишите пожалуйста статьи более подробные, такие как, например http://marsohod.org/11-blog/80-adder
+1 #4 chirik 14.12.2010 17:37
Я пока, не представляю как можно управлять ЖК с ПЛИС, и как считывать данные с UART. До этого работал с МК (и жк к нему подключить могу). Мышление не может пока переключится на железную логику. Можно поподробнее как плис управляет ЖК?
+6 #3 Дима 12.12.2010 12:01
Делайте более подробное описание проектов, трудно разобраться что к чему и как работает
-1 #2 Ю р и й 30.11.2010 17:41
Нужно будет эту буковку на дисплей вывести
вместо какого-нибудь двоеточия,напри мер,спасибо.
0 #1 3ABXO3 30.11.2010 17:18
"$GPRMC,115417.908,V"
"$GPRMC,115417.908,А" вроде как станет вот так так сразу можно и время начинать выводить на экран

Добавить комментарий


Защитный код
Обновить


GitHub YouTube Twitter