соединение GlobalSat EM-411 и ATmega32
соединение GlobalSat EM-411 и ATmega32
Всем доброго времени суток, товарищи =)
Проблема моя в следующем: я студент(это пока не проблема) который пишет диплом(и тут все начинается =) суть которого интеграция GPS модуля в уже готовое устройстно. на самом же деле все свидено к тому что бы соединить модуль ( я выбрал GLOBALSAT EM-406 ) и микроконтроллер ATmega32 (это как бы дано)
Теперь по сути проблемы. я вообще ничего не понимаю, паяльник я конечно держал, но только под присмотром отца, который у меня бог в этих делах, но он сейчас в коммандировке (аж на 50 дней) да еще и в программировании ничего не понимает.
Я знаю что работа будет вестить по протоколу NMEA. знаю какая будте строка и даже видел код на сишке что бы её обработать (http://www.radiokot.ru/forum/viewtopic. ... b952339b80 )
подключать модуль к устройству нужно только для того что бы узнать координаты проведения работ и время их завершения. Тоесть отправляться запрос будет только 1 раз. ( вообще это устройство сертификации процесса сварки, оно отслеживает кучу параметров и в конце выдает отчет, вот в него то я и вставляю полученные данные.)
теперь вопросы:
1)есть ли у кого компилятор для перевода кода С в код для ATmega32. какие ограничения накладываются ?
2) говорят нужно узнать даташитс (как я понял это адреса портов обмена данными) где это можно найти ?
3) есть ли у вас пример программы самой примитивной где бы было видно как отпраляется запрос, к примеру GLL (это из протокола NMEA)
И вообще ребят, если у кого есть время и желание помочь - постучитесь в скайп dmitry-lyalin
если есть кто из Казани - 89178544995 (Дима)
по возможности опишите алгоритм действий, всетаки это мой первый опыт, а ставки очень высоки.
п.с. зарание всем огромное спасибо!
Проблема моя в следующем: я студент(это пока не проблема) который пишет диплом(и тут все начинается =) суть которого интеграция 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 раз.
Re: Помогите неумехе, кто чем может =)) О мудрейшие КОТЭ=)
о, только что заметил поисковик даташитов на главной=)
- Pavel V.
- Мявтор!
- Сообщения: 384
- Зарегистрирован: Ср май 17, 2006 18:39:01
- Откуда: Москва
- Контактная информация:
Re: Помогите неумехе, кто чем может =)) О мудрейшие КОТЭ=)
Про GPS тут на форуме много написано, поищи еще. Главный принцип такой: GPS приемник с некоторой периодичностью (обычно 1 раз в секунду по умолчанию) шлет свои данные в UART, на стороне контроллера необходимо эти данные записывать в некоторый буфер, причем, отсеивать все NMEA кадры кроме RMC, который несет основную полезную информацию. Признаком начала приема кадра является символ "$", признаком окончания приема комбинация "\r\n" или просто "\n".
В прерывании по приему данных, принятый байт записывается в буфер (не забывать проверять на переполнение), по приему "$" указатель буфера обнуляется, по приему "\n" выставляется флаг окончания приема кадра и запрещается прием новых данных до окончания обработки текущего (чтобы избежать порчи данных).
В основном цикле программы проверяется флаг окончания приема, если установлен, запускаем функцию парсера, которая делает всю работу, а в конце сбрасывает флаг, тем самым разрешая прием новых данных.
Конфигурировать приемник, как правило, не надо, он работает с параметрами по умолчанию (какие именно параметры - в мануале).
Раз это диплом, то живой девайс никому не нужен?
В прерывании по приему данных, принятый байт записывается в буфер (не забывать проверять на переполнение), по приему "$" указатель буфера обнуляется, по приему "\n" выставляется флаг окончания приема кадра и запрещается прием новых данных до окончания обработки текущего (чтобы избежать порчи данных).
В основном цикле программы проверяется флаг окончания приема, если установлен, запускаем функцию парсера, которая делает всю работу, а в конце сбрасывает флаг, тем самым разрешая прием новых данных.
Конфигурировать приемник, как правило, не надо, он работает с параметрами по умолчанию (какие именно параметры - в мануале).
Раз это диплом, то живой девайс никому не нужен?
Re: Помогите неумехе, кто чем может =)) О мудрейшие КОТЭ=)
Спасибо за Ваш ответ. Именно так, живой девайс никому не нужен. Поэтому мне достаточно знать саму логику работы и программу написать в общих чертах без отладки.
Как написано на оф. сайте, в секунду модуль выдает 4-5 выражений протакола NMEA. тоесть мне просто нужно отловить RMC пакет и запарсить его на предмет даты, времени и координат. Допустим с этим рзобрались, тогда такой вопрос, для чего в модуле вообще пин ввода данных, только что бы менять прошивку самого устройста ?! Тоесть грубо говоря, для моего проекта его можно вообще не конектить или это архитектурная особенность и коннектить нужно полюбому ?!
И самое главное, как мне посоветовати в ЛС сообщении - позицианировать себя не "неумехой", а "новичком", в С я тоже не эксперт и за рамки программы ВУЗА не выходил, познакомили нас с основами и то хорошо. лично мне достаточно. Но вся работа там сводилась с тем что бы взять строчку из файла и скопировать его в буфер или там в другой файл, тоесть никогда я не писал как бы принять данные с такого то пина и обработать их заголовок... как сообщить программе что она должна принимать покеты "вот отсюда" и как это "отсюда" вообще выглядит!?
СПАСИБО ВСЕМ КТО ПОМОГАЕТ И ТЕМ КТО ПИШЕТ В ЛИЧКУ! не ожидал, что тут там много добрых людей!
Как написано на оф. сайте, в секунду модуль выдает 4-5 выражений протакола NMEA. тоесть мне просто нужно отловить RMC пакет и запарсить его на предмет даты, времени и координат. Допустим с этим рзобрались, тогда такой вопрос, для чего в модуле вообще пин ввода данных, только что бы менять прошивку самого устройста ?! Тоесть грубо говоря, для моего проекта его можно вообще не конектить или это архитектурная особенность и коннектить нужно полюбому ?!
И самое главное, как мне посоветовати в ЛС сообщении - позицианировать себя не "неумехой", а "новичком", в С я тоже не эксперт и за рамки программы ВУЗА не выходил, познакомили нас с основами и то хорошо. лично мне достаточно. Но вся работа там сводилась с тем что бы взять строчку из файла и скопировать его в буфер или там в другой файл, тоесть никогда я не писал как бы принять данные с такого то пина и обработать их заголовок... как сообщить программе что она должна принимать покеты "вот отсюда" и как это "отсюда" вообще выглядит!?
Re: Помогите неумехе, кто чем может =)) О мудрейшие КОТЭ=)
Не совсем по последнему вопросу, но может быть пригодится (может быть уже есть где-то тут ссылка):
http://frank.circleofcurrent.com/cache/gps_device.htm - используется atmega644 и тот же самый gps модуль.
Там же есть нужные даташиты и мануалы по протоколу.
http://frank.circleofcurrent.com/cache/gps_device.htm - используется atmega644 и тот же самый gps модуль.
Там же есть нужные даташиты и мануалы по протоколу.
Программирование GPS модуля
Всем привет!
Необходимо соединить 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 (через С с компилятором) пожалуйста, свяжитесь со мной в личке.
Необходимо соединить 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 (через С с компилятором) пожалуйста, свяжитесь со мной в личке.
Re: Помогите неумехе, кто чем может =)) О мудрейшие КОТЭ=)
GPS модули обычно подключаются по RS-232. В ATmega32 есть UART. Вот отсюда и плясать. Настроить UART, ну и принимать данные в прерывании, как отловим \n - вызывать процедуру обработки. Чего сложного то?
[offtopic]Человек дожил до диплома, и практически не держал в руках паяльник... Нужны ли нам такие инженеры? Народ, вы подумайте, прежде чем делать что-то за него. Пусть даже и за деньги...[/offtopic]
[offtopic]Человек дожил до диплома, и практически не держал в руках паяльник... Нужны ли нам такие инженеры? Народ, вы подумайте, прежде чем делать что-то за него. Пусть даже и за деньги...[/offtopic]
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Re: Помогите неумехе, кто чем может =)) О мудрейшие КОТЭ=)
Увожаемый YS, во-первых я не "дожил", а доучился и это поверте разница. Во-вторых, я учусь на вечерке, в силу ряда обстоятельств перевелся с очной формы. А вот о разнице качества дневной и вечерней форм образования я думаю говорить излишне.
Нужны ли Вам такие инженеры, мне признаться не интересно, потому как лично я НЕ собирнаюсь получать деньги занимаясь делом в котором я не смыслю, собственно потому и планирую получить второе высшее. Но для того что бы пройти конкурсный отбор мне нужен высокий средний бал по диплому. пока у меня 4.2 (выправил на вечернем).
А вы, прежде чем судить когото, соберите больше информации об объекте.
Если уж говорить по чесноку, то мне смешно, вот понимаете Вы в теме и смеетесь над другими, мол "чего сложного то", "нужны ли нам такие инженеры", а сам что написал то по теме !? Удивил меня перечислив интерфейсы что ли !? Забавный. С этим я уже давно разобрался, вопрос мой в написании программы, опыта писать прогу которая работала бы в среде микроконтроллеров у меня нет И В ПРОГРАММЕ ВУЗА ДЛЯ АСУ ТОЖЕ! так что ваш надменный тон, засуньте себе и запаяйте!
Если можете помочь по делу - буду рад, а нет, так не сорите в ветке.
ПРИМУ В ДАР ИСХОДНИКИ ПОДОБНЫХ СОЕДИНЕНИЙ(на С до компиляции), так как на примерах учиться проще.
п.с. пользователь YS
Наиболее активен в форуме: МЯЯЯУ!
[ 761 сообщений / 63.90% сообщений пользователя ]
Наиболее активен в теме: Помощь блондинке
[ 50 сообщений / 4.20% сообщений пользователя ]
//ну как бы вот она сфера Ваших интересов, ну понятнее стало немного, еще забавнее читается ваш коммент =)
п.с. Вот к примеры Pavel V. парень первый комментил пост, посмотрел его профиль, скачал аську, добавил его. через пол часа поймал его онлайн. Все по сути, за 15 минут ответил почти на все мои вопросы, ссылки точные, повествование лаканичное, но не надменное. Простой, адекватный человек. огромный ему респект. Даже "Груша" вспомнилась в её лучшие годы...
Нужны ли Вам такие инженеры, мне признаться не интересно, потому как лично я НЕ собирнаюсь получать деньги занимаясь делом в котором я не смыслю, собственно потому и планирую получить второе высшее. Но для того что бы пройти конкурсный отбор мне нужен высокий средний бал по диплому. пока у меня 4.2 (выправил на вечернем).
А вы, прежде чем судить когото, соберите больше информации об объекте.
Если уж говорить по чесноку, то мне смешно, вот понимаете Вы в теме и смеетесь над другими, мол "чего сложного то", "нужны ли нам такие инженеры", а сам что написал то по теме !? Удивил меня перечислив интерфейсы что ли !? Забавный. С этим я уже давно разобрался, вопрос мой в написании программы, опыта писать прогу которая работала бы в среде микроконтроллеров у меня нет И В ПРОГРАММЕ ВУЗА ДЛЯ АСУ ТОЖЕ! так что ваш надменный тон, засуньте себе и запаяйте!
Если можете помочь по делу - буду рад, а нет, так не сорите в ветке.
ПРИМУ В ДАР ИСХОДНИКИ ПОДОБНЫХ СОЕДИНЕНИЙ(на С до компиляции), так как на примерах учиться проще.
п.с. пользователь YS
Наиболее активен в форуме: МЯЯЯУ!
[ 761 сообщений / 63.90% сообщений пользователя ]
Наиболее активен в теме: Помощь блондинке
[ 50 сообщений / 4.20% сообщений пользователя ]
//ну как бы вот она сфера Ваших интересов, ну понятнее стало немного, еще забавнее читается ваш коммент =)
п.с. Вот к примеры Pavel V. парень первый комментил пост, посмотрел его профиль, скачал аську, добавил его. через пол часа поймал его онлайн. Все по сути, за 15 минут ответил почти на все мои вопросы, ссылки точные, повествование лаканичное, но не надменное. Простой, адекватный человек. огромный ему респект. Даже "Груша" вспомнилась в её лучшие годы...
- Pavel V.
- Мявтор!
- Сообщения: 384
- Зарегистрирован: Ср май 17, 2006 18:39:01
- Откуда: Москва
- Контактная информация:
Re: соединение GlobalSat EM-411 и ATmega32
По идее сначала надо отключить всё лишнее (установить <rate> = 0), а потом настроить RMC на периодическую выдачу (можно реже чем раз в секунду). Делать по запросу не советую - лишний геморрой, удобнее просто ловить данные и постоянно их обновлять в буфере, тогда он будет всегда содержать актуальную информацию.
Есть еще такой метод приема данных, когда парсинг совмещается с непосредственно приемом. Для этого реализуется конечный автомат, переключающий свое состояние по приему разделительного символа (в нашем случае ","). Соответственно, в обработчике события приема байта в зависимости от текущего состояния, пишем в нужный буфер.
Вот функции для преобразования ASCII символов в BIN и наоборот. Пригодятся.
Есть еще такой метод приема данных, когда парсинг совмещается с непосредственно приемом. Для этого реализуется конечный автомат, переключающий свое состояние по приему разделительного символа (в нашем случае ","). Соответственно, в обработчике события приема байта в зависимости от текущего состояния, пишем в нужный буфер.
Вот функции для преобразования 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';
}Re: соединение GlobalSat EM-411 и ATmega32
РЕБЯТ!!
Всем кто помогал, да и тем кто критиковал тоже - ОГРОМНОЕ СПАСИБО!
Диплом я сделал и защитил, получилось добротно и оценили на 5ть =))) так что все прошло как нельзя лучше. За время подготовки, много прочитал и получил массу полезной инфы.
Товарищи! еще раз всем респект за помощь ! Приятно осозновать, что мы не разучились приходить друг другу на помощь.

Всем кто помогал, да и тем кто критиковал тоже - ОГРОМНОЕ СПАСИБО!
Диплом я сделал и защитил, получилось добротно и оценили на 5ть =))) так что все прошло как нельзя лучше. За время подготовки, много прочитал и получил массу полезной инфы.
Товарищи! еще раз всем респект за помощь ! Приятно осозновать, что мы не разучились приходить друг другу на помощь.
Re: соединение GlobalSat EM-411 и ATmega32
n00b писал(а):1)есть ли у кого компилятор для перевода кода С в код для ATmega32. какие ограничения накладываются ?
2) говорят нужно узнать даташитс (как я понял это адреса портов обмена данными) где это можно найти ?
бугага
Вот... они выросли получили диплом, а теперь сидят в начальниках и гоняют таких как мы
[img]http://i053.radikal.ru/1102/71/0a0346d3a067.gif[/img]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
Re: соединение GlobalSat EM-411 и ATmega32
Таких начальников всегда просто засовывать туда откуда они вылезли 
P.S. к автору никакого отношения не имею и против ничего собственно тоже.
P.S. к автору никакого отношения не имею и против ничего собственно тоже.
Re: соединение GlobalSat EM-411 и ATmega32
Да, а ты пробовал своего начальника засунуть.... Я вот пробовал на прошлой работе...
Да к автору у меня тоже ничего личного.. наболевшее... вчера просто директор заходил, настроение всем подымать.
Да к автору у меня тоже ничего личного.. наболевшее... вчера просто директор заходил, настроение всем подымать.
[img]http://i053.radikal.ru/1102/71/0a0346d3a067.gif[/img]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
Re: соединение GlobalSat EM-411 и ATmega32
Привет всем!
Забавно было читать эту тему, вспоминая былое.
Как и обещал всем на форуме - работать в направлении, в котором ничего не смыслю не стал. Спокойненько получил второе высшее и работаю менеджером проектов. Легко нахожу общий язык с IT, так как понимаю все о чем они говорят и стараюсь ставить задачи так, что бы мне "студенту" было понятно. В итоге ТЗ проходят 100% без уточнений, а на выходе получается именно то, что и требовалось.
По вопросу затыкать начальство, тут Вы правы, не всегда это возможно, но нужно ли работать в месте, где начальство идиоты? Учитывая Ваш скилл - не думаю, что трудно найти другое место. А если нет, то есть вариант, самим стать начальством=)
В любом случае, хотел еще раз всех поблагодарить за помощь. А если кто-то из студентов первых курсов читает эту ветку - РЕБЯТА, СИДИТИ И ЧИТАЙТЕ ВСЕ КНИГИ, ЧТО УДАСТСЯ НАЙТИ!!! все статьи и все ветки, практик, практика и практика!!! Иначе как я будите сидеть на хабре и жалеть о бесцельно прожитом времени )) Мне посчастливилось взять от учебы системность мышления, но я был бы куда более доволен собой, если бы мат. часть была прочнее.
Удачи всем! Спасибо.
Забавно было читать эту тему, вспоминая былое.
Как и обещал всем на форуме - работать в направлении, в котором ничего не смыслю не стал. Спокойненько получил второе высшее и работаю менеджером проектов. Легко нахожу общий язык с IT, так как понимаю все о чем они говорят и стараюсь ставить задачи так, что бы мне "студенту" было понятно. В итоге ТЗ проходят 100% без уточнений, а на выходе получается именно то, что и требовалось.
По вопросу затыкать начальство, тут Вы правы, не всегда это возможно, но нужно ли работать в месте, где начальство идиоты? Учитывая Ваш скилл - не думаю, что трудно найти другое место. А если нет, то есть вариант, самим стать начальством=)
В любом случае, хотел еще раз всех поблагодарить за помощь. А если кто-то из студентов первых курсов читает эту ветку - РЕБЯТА, СИДИТИ И ЧИТАЙТЕ ВСЕ КНИГИ, ЧТО УДАСТСЯ НАЙТИ!!! все статьи и все ветки, практик, практика и практика!!! Иначе как я будите сидеть на хабре и жалеть о бесцельно прожитом времени )) Мне посчастливилось взять от учебы системность мышления, но я был бы куда более доволен собой, если бы мат. часть была прочнее.
Удачи всем! Спасибо.