соединение GlobalSat EM-411 и ATmega32

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 8
Зарегистрирован: Ср июн 09, 2010 16:39:50

Сообщение n00b »

Всем доброго времени суток, товарищи =)
Проблема моя в следующем: я студент(это пока не проблема) который пишет диплом(и тут все начинается =) суть которого интеграция GPS модуля в уже готовое устройстно. на самом же деле все свидено к тому что бы соединить модуль ( я выбрал GLOBALSAT EM-406 ) и микроконтроллер ATmega32 (это как бы дано)
Теперь по сути проблемы. я вообще ничего не понимаю, паяльник я конечно держал, но только под присмотром отца, который у меня бог в этих делах, но он сейчас в коммандировке (аж на 50 дней) да еще и в программировании ничего не понимает.
Я знаю что работа будет вестить по протоколу NMEA. знаю какая будте строка и даже видел код на сишке что бы её обработать (http://www.radiokot.ru/forum/viewtopic. ... b952339b80 )
подключать модуль к устройству нужно только для того что бы узнать координаты проведения работ и время их завершения. Тоесть отправляться запрос будет только 1 раз. ( вообще это устройство сертификации процесса сварки, оно отслеживает кучу параметров и в конце выдает отчет, вот в него то я и вставляю полученные данные.)
теперь вопросы:
1)есть ли у кого компилятор для перевода кода С в код для ATmega32. какие ограничения накладываются ?
2) говорят нужно узнать даташитс (как я понял это адреса портов обмена данными) где это можно найти ?
3) есть ли у вас пример программы самой примитивной где бы было видно как отпраляется запрос, к примеру GLL (это из протокола NMEA)

И вообще ребят, если у кого есть время и желание помочь - постучитесь в скайп dmitry-lyalin
если есть кто из Казани - 89178544995 (Дима)

по возможности опишите алгоритм действий, всетаки это мой первый опыт, а ставки очень высоки.

п.с. зарание всем огромное спасибо!
Последний раз редактировалось n00b Чт июн 10, 2010 20:34:32, всего редактировалось 1 раз.
Реклама
Родился
Сообщения: 8
Зарегистрирован: Ср июн 09, 2010 16:39:50

Сообщение n00b »

о, только что заметил поисковик даташитов на главной=)
Реклама
Мявтор!
Аватара пользователя
Сообщения: 384
Зарегистрирован: Ср май 17, 2006 18:39:01
Откуда: Москва

Сообщение Pavel V. »

Про GPS тут на форуме много написано, поищи еще. Главный принцип такой: GPS приемник с некоторой периодичностью (обычно 1 раз в секунду по умолчанию) шлет свои данные в UART, на стороне контроллера необходимо эти данные записывать в некоторый буфер, причем, отсеивать все NMEA кадры кроме RMC, который несет основную полезную информацию. Признаком начала приема кадра является символ "$", признаком окончания приема комбинация "\r\n" или просто "\n".

В прерывании по приему данных, принятый байт записывается в буфер (не забывать проверять на переполнение), по приему "$" указатель буфера обнуляется, по приему "\n" выставляется флаг окончания приема кадра и запрещается прием новых данных до окончания обработки текущего (чтобы избежать порчи данных).

В основном цикле программы проверяется флаг окончания приема, если установлен, запускаем функцию парсера, которая делает всю работу, а в конце сбрасывает флаг, тем самым разрешая прием новых данных.

Конфигурировать приемник, как правило, не надо, он работает с параметрами по умолчанию (какие именно параметры - в мануале).

Раз это диплом, то живой девайс никому не нужен?
Контактная информация:
Родился
Сообщения: 8
Зарегистрирован: Ср июн 09, 2010 16:39:50

Сообщение n00b »

Спасибо за Ваш ответ. Именно так, живой девайс никому не нужен. Поэтому мне достаточно знать саму логику работы и программу написать в общих чертах без отладки.
Как написано на оф. сайте, в секунду модуль выдает 4-5 выражений протакола NMEA. тоесть мне просто нужно отловить RMC пакет и запарсить его на предмет даты, времени и координат. Допустим с этим рзобрались, тогда такой вопрос, для чего в модуле вообще пин ввода данных, только что бы менять прошивку самого устройста ?! Тоесть грубо говоря, для моего проекта его можно вообще не конектить или это архитектурная особенность и коннектить нужно полюбому ?!
И самое главное, как мне посоветовати в ЛС сообщении - позицианировать себя не "неумехой", а "новичком", в С я тоже не эксперт и за рамки программы ВУЗА не выходил, познакомили нас с основами и то хорошо. лично мне достаточно. Но вся работа там сводилась с тем что бы взять строчку из файла и скопировать его в буфер или там в другой файл, тоесть никогда я не писал как бы принять данные с такого то пина и обработать их заголовок... как сообщить программе что она должна принимать покеты "вот отсюда" и как это "отсюда" вообще выглядит!?



:shock: :shock: :shock: СПАСИБО ВСЕМ КТО ПОМОГАЕТ И ТЕМ КТО ПИШЕТ В ЛИЧКУ! не ожидал, что тут там много добрых людей!
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 43
Зарегистрирован: Пт апр 09, 2010 12:54:00
Откуда: Санкт-Петербург

Сообщение Maxxon »

Не совсем по последнему вопросу, но может быть пригодится (может быть уже есть где-то тут ссылка):

http://frank.circleofcurrent.com/cache/gps_device.htm - используется atmega644 и тот же самый gps модуль.

Там же есть нужные даташиты и мануалы по протоколу.
Реклама
Родился
Сообщения: 8
Зарегистрирован: Ср июн 09, 2010 16:39:50

Сообщение n00b »

Всем привет!
Необходимо соединить Globalsat EM-411 (rs-232) и ATmega32. читая мануалы по GPS модулю нашел такую интересную строчку:
$psrf103,<msg>,<mode>,<rate>,<cksumEnable>*CKSUM<CR><LF>

где
msg - задается от 1-5 и означает какую строку протокола NMEA выводить. к примеры 4- MRC
mode - режим, тоесть 0- переодично, 1- по запросу.
rate - период в секундах от 0-255
cksumEnable - вывод контрольной суммы 0-вык. 1 -вкл.

сказано, что при отправке данных команд, модуль хранит их в оперативке,используя внутреннюю батарейку в качестве питания.
внимание вопрос: если я отправлю такую команду и попрошу мне выдавать только MRC пакет по запросу, то на вход в микроконтроллер будет поступать только он ?! или еще какой хлам будет идти ?! (пытался зарегиться на оф. сайте но там только для юр лиц.)



ТОВАРИЩИ ЕСЛИ У КОГО ЕСТЬ ОПЫТ ПРОГРАММИРОВАНИЯ GPS модулей и ATmega32 (через С с компилятором) пожалуйста, свяжитесь со мной в личке.
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

GPS модули обычно подключаются по RS-232. В ATmega32 есть UART. Вот отсюда и плясать. Настроить UART, ну и принимать данные в прерывании, как отловим \n - вызывать процедуру обработки. Чего сложного то?

[offtopic]Человек дожил до диплома, и практически не держал в руках паяльник... Нужны ли нам такие инженеры? Народ, вы подумайте, прежде чем делать что-то за него. Пусть даже и за деньги...[/offtopic]
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Родился
Сообщения: 8
Зарегистрирован: Ср июн 09, 2010 16:39:50

Сообщение n00b »

Увожаемый YS, во-первых я не "дожил", а доучился и это поверте разница. Во-вторых, я учусь на вечерке, в силу ряда обстоятельств перевелся с очной формы. А вот о разнице качества дневной и вечерней форм образования я думаю говорить излишне.
Нужны ли Вам такие инженеры, мне признаться не интересно, потому как лично я НЕ собирнаюсь получать деньги занимаясь делом в котором я не смыслю, собственно потому и планирую получить второе высшее. Но для того что бы пройти конкурсный отбор мне нужен высокий средний бал по диплому. пока у меня 4.2 (выправил на вечернем).
А вы, прежде чем судить когото, соберите больше информации об объекте.
Если уж говорить по чесноку, то мне смешно, вот понимаете Вы в теме и смеетесь над другими, мол "чего сложного то", "нужны ли нам такие инженеры", а сам что написал то по теме !? Удивил меня перечислив интерфейсы что ли !? Забавный. С этим я уже давно разобрался, вопрос мой в написании программы, опыта писать прогу которая работала бы в среде микроконтроллеров у меня нет И В ПРОГРАММЕ ВУЗА ДЛЯ АСУ ТОЖЕ! так что ваш надменный тон, засуньте себе и запаяйте!
Если можете помочь по делу - буду рад, а нет, так не сорите в ветке.

ПРИМУ В ДАР ИСХОДНИКИ ПОДОБНЫХ СОЕДИНЕНИЙ(на С до компиляции), так как на примерах учиться проще.

п.с. пользователь YS
Наиболее активен в форуме: МЯЯЯУ!
[ 761 сообщений / 63.90% сообщений пользователя ]
Наиболее активен в теме: Помощь блондинке
[ 50 сообщений / 4.20% сообщений пользователя ]
//ну как бы вот она сфера Ваших интересов, ну понятнее стало немного, еще забавнее читается ваш коммент =)

п.с. Вот к примеры Pavel V. парень первый комментил пост, посмотрел его профиль, скачал аську, добавил его. через пол часа поймал его онлайн. Все по сути, за 15 минут ответил почти на все мои вопросы, ссылки точные, повествование лаканичное, но не надменное. Простой, адекватный человек. огромный ему респект. Даже "Груша" вспомнилась в её лучшие годы... :cry:
Мявтор!
Аватара пользователя
Сообщения: 384
Зарегистрирован: Ср май 17, 2006 18:39:01
Откуда: Москва

Сообщение Pavel V. »

По идее сначала надо отключить всё лишнее (установить <rate> = 0), а потом настроить RMC на периодическую выдачу (можно реже чем раз в секунду). Делать по запросу не советую - лишний геморрой, удобнее просто ловить данные и постоянно их обновлять в буфере, тогда он будет всегда содержать актуальную информацию.

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

Вот функции для преобразования ASCII символов в BIN и наоборот. Пригодятся.

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

/*
 * Convert Character to BIN
 */
static uint8_t CHAR2BIN(uint8_t ucCharacter) {
    if((ucCharacter >= '0') && (ucCharacter <= '9'))
        return (uint8_t)(ucCharacter - '0');
    else if((ucCharacter >= 'A') && (ucCharacter <= 'F'))
        return (uint8_t)(ucCharacter - 'A' + 0x0A);
	return 0xFF;
}

/*
 * Convert BIN to Character
 */
static uint8_t BIN2CHAR(uint8_t ucByte) {
    if(ucByte <= 0x09)
        return (uint8_t)('0' + ucByte);
    else if((ucByte >= 0x0A) && (ucByte <= 0x0F))
        return (uint8_t)(ucByte - 0x0A + 'A');
	return '0';
}
Контактная информация:
Родился
Сообщения: 8
Зарегистрирован: Ср июн 09, 2010 16:39:50

Сообщение n00b »

РЕБЯТ!! :beer:
Всем кто помогал, да и тем кто критиковал тоже - ОГРОМНОЕ СПАСИБО!
Диплом я сделал и защитил, получилось добротно и оценили на 5ть =))) так что все прошло как нельзя лучше. За время подготовки, много прочитал и получил массу полезной инфы.
Товарищи! еще раз всем респект за помощь ! Приятно осозновать, что мы не разучились приходить друг другу на помощь.
:)
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1138
Зарегистрирован: Сб апр 03, 2010 08:57:35

Сообщение Modest »

n00b писал(а): 1)есть ли у кого компилятор для перевода кода С в код для ATmega32. какие ограничения накладываются ?
2) говорят нужно узнать даташитс (как я понял это адреса портов обмена данными) где это можно найти ?
бугага :))
Вот... они выросли получили диплом, а теперь сидят в начальниках и гоняют таких как мы :cry:
[img]http://i053.radikal.ru/1102/71/0a0346d3a067.gif[/img]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
Встал на лапы
Сообщения: 135
Зарегистрирован: Чт окт 25, 2007 11:00:10
Откуда: Russland

Сообщение krant »

Таких начальников всегда просто засовывать туда откуда они вылезли :)


P.S. к автору никакого отношения не имею и против ничего собственно тоже.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1138
Зарегистрирован: Сб апр 03, 2010 08:57:35

Сообщение Modest »

Да, а ты пробовал своего начальника засунуть.... Я вот пробовал на прошлой работе...
Да к автору у меня тоже ничего личного.. наболевшее... вчера просто директор заходил, настроение всем подымать.
[img]http://i053.radikal.ru/1102/71/0a0346d3a067.gif[/img]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
Родился
Сообщения: 8
Зарегистрирован: Ср июн 09, 2010 16:39:50

Сообщение n00b »

Привет всем!
Забавно было читать эту тему, вспоминая былое.
Как и обещал всем на форуме - работать в направлении, в котором ничего не смыслю не стал. Спокойненько получил второе высшее и работаю менеджером проектов. Легко нахожу общий язык с IT, так как понимаю все о чем они говорят и стараюсь ставить задачи так, что бы мне "студенту" было понятно. В итоге ТЗ проходят 100% без уточнений, а на выходе получается именно то, что и требовалось.
По вопросу затыкать начальство, тут Вы правы, не всегда это возможно, но нужно ли работать в месте, где начальство идиоты? Учитывая Ваш скилл - не думаю, что трудно найти другое место. А если нет, то есть вариант, самим стать начальством=)
В любом случае, хотел еще раз всех поблагодарить за помощь. А если кто-то из студентов первых курсов читает эту ветку - РЕБЯТА, СИДИТИ И ЧИТАЙТЕ ВСЕ КНИГИ, ЧТО УДАСТСЯ НАЙТИ!!! все статьи и все ветки, практик, практика и практика!!! Иначе как я будите сидеть на хабре и жалеть о бесцельно прожитом времени )) Мне посчастливилось взять от учебы системность мышления, но я был бы куда более доволен собой, если бы мат. часть была прочнее.
Удачи всем! Спасибо.
Ответить

Вернуться в «AVR»