|
|
  |
Передача сигналов по радиоканалу., Передача на частоте 433.92 МГц |
|
|
|
Nov 6 2009, 14:08
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Masterskaia @ Nov 6 2009, 16:39)  Как мне организовать проект, что бы я выход приёмника смог подключить к любому входу МК, кроме входа UART, а с выхода UART мог передать полученный сигнал от приёмника в терминал? Начать с правильного выбора элементной базы. Отказаться от дорогого и неудобного RX5000 и уж, разумеется, не стоит полагаться на прозрачную передачу через него асинхронной посылки с UART. Программный-то полудуплексный UART на небольшой скорости сделать не просто, а очень просто. На любой ноге (хотя предпочтительно для этого использовать аппаратные средства, типа ICP). Но не стоит так делать, честное слово. Все ж надо делать модем. А еще лучше, по нынешним временам - взять радиотракт с встроенным модемом. Например, Chipcon/TI CC1100 (или CC2500). Он заодно (и в первую очередь, исходя из озвученных требований) решит и проблему обратного канала. Можно взять и микроконтроллер с встроенным трансивером (из того же выводка от TI), но это получится дороже и может оказаться менее удобным. Atmega8 (или 48 или 88) и CC1100 - очень удобная связка. Но в освоении CC11xx несколько сложнее, да. Зато потом, после освоения - полная свобода (говорю как автор десятка изделий на этой связке, с общим тиражом уже под 100K, если не больше).
|
|
|
|
|
Nov 6 2009, 14:10
|

Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452

|
Цитата(Vetal-Soft @ Nov 6 2009, 16:05)  Глянул на ваши фото Можно же просто подключить rx5000 напрямую к FTDI, по мимо контроллера, и опредилиться со скоростью передачи данных. Уже пробовал. Результат то же, что и в первом посту. Тем более мне намного проще согласовать приёмник и COM так как я в своей сжеме использую FT232 преобразователь COM too USB. А в ней как всем известно входной и выходной сигналы TTL уровня. Перед тем как создать тему я провёл множество различных эксперементов, но всё безуспешно. Поэтому и прошу помощи в виде работающего куска кода программы.
--------------------
Всегда в поиске...
|
|
|
|
|
Nov 6 2009, 14:26
|

Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452

|
Цитата(rx3apf @ Nov 6 2009, 16:08)  Начать с правильного выбора элементной базы. Отказаться от дорогого и неудобного RX5000 и уж, разумеется, не стоит полагаться на прозрачную передачу через него асинхронной посылки с UART. Программный-то полудуплексный UART на небольшой скорости сделать не просто, а очень просто. На любой ноге (хотя предпочтительно для этого использовать аппаратные средства, типа ICP). Но не стоит так делать, честное слово. Все ж надо делать модем. А еще лучше, по нынешним временам - взять радиотракт с встроенным модемом. Например, Chipcon/TI CC1100 (или CC2500). Он заодно (и в первую очередь, исходя из озвученных требований) решит и проблему обратного канала. Можно взять и микроконтроллер с встроенным трансивером (из того же выводка от TI), но это получится дороже и может оказаться менее удобным. Atmega8 (или 48 или 88) и CC1100 - очень удобная связка. Но в освоении CC11xx несколько сложнее, да. Зато потом, после освоения - полная свобода (говорю как автор десятка изделий на этой связке, с общим тиражом уже под 100K, если не больше). Только, что ознакомился сописанием CC2500, приглянулась. Но сейчас я не готов приобрести эту микросхему, но обязательно её на неделе опробую. Если Вы разрабатывали конструкции которые используют часть моей задумки, прошу поделиться опытом. У Вас наверное был опыт работы с моими исходными данными и Вы наверное так же стакивались с моими проблеммами. Я уже отключал от МК приёмник и напрямую аппаратный UART МК подключал к терминалу. В терминале я писал что либо и при отправке в МК я незамедлительно получал то же, что и отправил обратно в терминал. Поэтому осмелюсь сделать вывод: МК программно правильно настроен на работу с COM потром. А вот аппаратно не уверен. Так как с приёмника я получаю какую то постоянную последовательность кода, но на совершенно не похожа на то, чего ожидалось получить. Поэтому либо проблемма со скоростью, что мало вероятно, либо, но это вообще абсурд, сигнал с приёмника нужно сначало инвертировать, и только потом отправлять на UART МК. И тогда сразу же следующий вопрос: А как я спогу принятый сигнал на МК преджварительно обработать? В какую переменную или регистр он попадает?
--------------------
Всегда в поиске...
|
|
|
|
|
Nov 6 2009, 14:31
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 16-06-05
Пользователь №: 6 074

|
Цитата(Masterskaia @ Nov 6 2009, 19:10)  Уже пробовал. Результат то же, что и в первом посту. Тем более мне намного проще согласовать приёмник и COM так как я в своей сжеме использую FT232 преобразователь COM too USB. А в ней как всем известно входной и выходной сигналы TTL уровня. Перед тем как создать тему я провёл множество различных эксперементов, но всё безуспешно. Поэтому и прошу помощи в виде работающего куска кода программы. Кусок программы что в вашем первом посте рабочий, раз уж вы что то получаете в терминале. просто нужно знать с какой скоростью передает данные rx5000 и настоить контроллер и компьтер на эту скорость. По даташиту на rx5000 у него три режима со скоростями 2.4 kbps, 19.2 kbps и 115.2 kbps. При том что на скорости 115.2 kbps контроллер с кварцем 8МГц скорее всего работать не будет т.к. большой процент ошибки
|
|
|
|
|
Nov 6 2009, 14:31
|

Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452

|
Решение с двумя UART конечно же интересное но когда своими глазами видишь рабочую схему в которой сигнал с приёмника приходят не на UART то уже уверен, что такое возможно.... Но как?
--------------------
Всегда в поиске...
|
|
|
|
|
Nov 6 2009, 14:38
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 16-06-05
Пользователь №: 6 074

|
Цитата(Masterskaia @ Nov 6 2009, 19:31)  Решение с двумя UART конечно же интересное но когда своими глазами видишь рабочую схему в которой сигнал с приёмника приходят не на UART то уже уверен, что такое возможно.... Но как? Сушествует множество решений програмного UARTа
|
|
|
|
|
Nov 6 2009, 14:44
|

Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452

|
Цитата(Vetal-Soft @ Nov 6 2009, 16:31)  Кусок программы что в вашем первом посте рабочий, раз уж вы что то получаете в терминале. просто нужно знать с какой скоростью передает данные rx5000 и настоить контроллер и компьтер на эту скорость.
По даташиту на rx5000 у него три режима со скоростями 2.4 kbps, 19.2 kbps и 115.2 kbps.
При том что на скорости 115.2 kbps контроллер с кварцем 8МГц скорее всего работать не будет т.к. большой процент ошибки Вы правильно сказали по поводу фиксированных скоростей в RX5000 я из-за своей невнимательности не посмотрел в верзнюю строку колонки где указаны номиналы для скорости 19200. Сейчас пересмотрю свои настройки и результаты проверки выложу на форум. Меня ввёл в заблуждение рабочий проект этого устройства в котором используется такая же элементная база как в моём проекте. Я её просто скопировал но программу решил написать свою. Так вот в рабочем проекте с собранным приёмником для скорости 19200 я настраивал терминал на скорость 9600 и при прошивке рабочего проекта у меня выводился в терминал правильный код. А будучи уверенный в том, что скорости я установил правильные, то есть 9600 я и не пытался обратить внимание на эту существенную деталь. Спасибо.
--------------------
Всегда в поиске...
|
|
|
|
|
Nov 6 2009, 14:50
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Masterskaia @ Nov 6 2009, 17:26)  Только, что ознакомился сописанием CC2500, приглянулась. Но сейчас я не готов приобрести эту микросхему, но обязательно её на неделе опробую. Если Вы разрабатывали конструкции которые используют часть моей задумки, прошу поделиться опытом. Поскольку я пишу на asm, то вряд ли мои наработки пригодятся. И, естественно, know how никто не раскрывает  Цитата Так как с приёмника я получаю какую то постоянную последовательность кода, но на совершенно не похожа на то, чего ожидалось получить. Поэтому либо проблемма со скоростью, что мало вероятно, либо, но это вообще абсурд, сигнал с приёмника нужно сначало инвертировать, и только потом отправлять на UART МК. И тогда сразу же следующий вопрос: А как я спогу принятый сигнал на МК преджварительно обработать? В какую переменную или регистр он попадает? Лениво вникать в предисторию, поэтому спрошу, как я понял - так что, Вы ожидаете, что принятый приемником RX5000 сигнал брелка можно передать в компьютер через UART непосредственно ? Просто забудьте это как страшный сон, и больше не вспоминайте. Начинать надо с принципов работы кодера в брелке, с формата его выходных данных. Просто в данном случае это не нужно и неинтересно, поскольку для решения поставленной задачи неприменимо (по причине абсолютной необходимости обратного канала. Которая, кстати, проистекает в первую очередь вовсе не из-за гипотетической возможности одномоментного нажатия кнопок на двух брелках)... Цитата И тогда сразу же следующий вопрос: А как я спогу принятый сигнал на МК преджварительно обработать? В какую переменную или регистр он попадает? Это про обработку выхода RX5000 ? Превратить входной сигнал в последовательность "0" и "1", декодировать, превратить в осмысленную посылку для компьютера и передать по UART. А как декодировать - зависит от формата посылки, определяемой кодером. И уж, конечно, это не 115200,8,n,1, и штатный UART тут не в помощь (впрочем, могу представить себе вариант, когда можно было бы применить, в конце концов, UART успешно используют при общении, скажем, с 1-wire).
|
|
|
|
|
Nov 6 2009, 15:27
|

Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452

|
И так, из всего написанного делаю следующие выводы: Для данного проекта необходимо использовать МК с двумя UART. Один на приём с выхода приёмника, другой на передачу в COM компьютера. Следовательно принятый сигнал с первого UATR я смогу редактировать непосредственно в МК и передавать его на второй UART. Теперь о только что проведённых мной эксперементах с моим железом и настройкой скоростей. Эксперемент 1. Подключил выход приёмника на вход FT232. В терминале на разных скоростях принимал сигнал с кнопок. Ближе всего к положительному результату была скорость 2400. Эксперемент 2. Подключил выход приёмника на вход МК UART. Выход UART водключил на вход FT232. В терминале на на скорости 2400 были похожие сигналы на реальный сигнал с кнопки. Завтра я разберу прошивку любой из кнопок и посмотрю с какими настройками передаётся сигнал. Хотя я в asm ничего не понимаю, но с дизасемблером и самоучителем попробую разобраться. Если кто знает настройки таких брелков или правельнее сказать, по какому протоколу они передают свои коды, буду признателен за предоставленную информацию.
--------------------
Всегда в поиске...
|
|
|
|
|
Nov 6 2009, 16:03
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Vetal-Soft @ Nov 6 2009, 17:31)  По даташиту на rx5000 у него три режима со скоростями 2.4 kbps, 19.2 kbps и 115.2 kbps.
При том что на скорости 115.2 kbps контроллер с кварцем 8МГц скорее всего работать не будет т.к. большой процент ошибки Да нет у RX5000 никаких "режимов". Он примитивен как грабли. Все, что относится к скорости передачи - это выбор обвязки фильтра. Ничего больше. Предположение, что сигнал с OOK/ASK приемника можно подать на вход UART и получить осмысленный отклик от брелка автосигналки - у меня лично цензурных выражений для комментариев не находится, честное слово. Ну учите же матчасть или скопом гляньте... Поглядите, в конце концов, даташит на микрочиповские HCSxxx (даташиты на прародителей, продукцию Nanoteq, пожалуй, найти будет трудновато) - на выходе у них типично PWM. Вот его и надо декодировать. Да, можно, конечно, согласовав полярность и выбрав правильную скорость, заставить UART принимать посылку побитно (только скорость надо тогда выбрать порядка 1200 bps), но лучше фигней не страдать. Тем более что описанную задачу так вообще не решить... Пардон, скорость должна быть где-то 9600...
Сообщение отредактировал rx3apf - Nov 6 2009, 16:28
|
|
|
|
|
Nov 6 2009, 16:11
|

Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452

|
Проанализировав datasheet HCSxxx стало понятно, что она шифрутет данные как я понял по какому то протоколу. И теперь становится понятно почему я постоянно получаю не то, что хотелось бы. Если я не ошибаюсь надо просто на уровне МК расшифровать полученный сигнал и тогда я ы терминале получу то, что мне нужно. Я проавильно думаю?
--------------------
Всегда в поиске...
|
|
|
|
|
Nov 6 2009, 16:18
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Masterskaia @ Nov 6 2009, 19:11)  Если я не ошибаюсь надо просто на уровне МК расшифровать полученный сигнал и тогда я ы терминале получу то, что мне нужно. Я проавильно думаю? Ну наконец-то ! С этого (ознакомления с даташитом и просмотр выходного сигнала брелка скопом) и надо было начинать. Да, надо декодировать этот сигнал, превратив PWM в "0" и "1", разобраться с форматом посылок (а кодеров вообще-то много разных, с разными форматами), надо проверять контрольную сумму посылки (если она есть), найти и выделить серийный номер (иначе как различать кнопки ?) Но, главное, это не решает поставленной задачи - надежную передачу запроса с подтверждением можно реализовать только при наличии обратного канала. Так что с брелками стоит играть разве что для общего развития или под какую-то другую задачу...
|
|
|
|
|
Nov 6 2009, 16:29
|

Группа: Участник
Сообщений: 14
Регистрация: 6-11-09
Пользователь №: 53 452

|
Меня непосредственно интересует HCS301 KEELOQ Code так как есть возможность приобрести таких кнопок от гаражных ворот сотни по 10$ за штуку. А если учесть, что они используют один и тот же протокол шифрования, то осталось только разобраться в этом протоколе, написать свою программу дешифрования и результат налицо. Теперь понятно почему у меня в рабочем проекте и прошивке все брелки с этой HCS301 прекрасно отображают свой код в терминале. Где бы только найти протокол этого KEELOQ
--------------------
Всегда в поиске...
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|