Радиоуправление. Переходим на МК.
-
zhuplev
- Первый раз сказал Мяу!
- Сообщения: 39
- Зарегистрирован: Вс июн 23, 2013 10:58:29
- Откуда: Запорожье
Re: Радиоуправление. Переходим на МК.
Был бы был дома проверил немедля но увы. Теперь я думаю всё должно быть хорошо, но только практика покажет все плюса и минуса. По поводу скорости передачи сигнала то поднять её хотя бы до 1 килогерца. Так как вы используете передатчик радиостанций то по идее вписывается в полосу пропускания, хотя могу ошибаться. Реле или транзисторы - поэксперементируйте на индуктивной нагрузке ампер на 5 и там видно будет. Я же не говорю что реле это панацея 
- Реклама
Re: Радиоуправление. Переходим на МК.
На составном транзисторе.
- Вложения
-
- Безымянный.jpg
- (141.58 КБ) 637 скачиваний
Re: Радиоуправление. Переходим на МК.
А мост на мосфетах не работает? Просто интересно...
Вообще, всё зависит от моторчика. У вас какой ток моторчика? Хоть фото покажите)) Транзисторы подбираются по току моторчиков.
Вообще, всё зависит от моторчика. У вас какой ток моторчика? Хоть фото покажите)) Транзисторы подбираются по току моторчиков.
Re: Радиоуправление. Переходим на МК.
Собран на B772 и D882, хочу собрать на TIP122 и TIP127.
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Радиоуправление. Переходим на МК.
копеин, Вас roman.com спрашивал
Если захочете, я могу предложить вам подумать над тем что написал въше - кроме "филтрь и спектральный анализ " -с етим нет желание связъватся.
roman.com, Въ не задумавались воплотить в жизни (в программе) все преимущества манчестерского кода. Скажем синхронизация, и второе - освободить МК и для каких то других задач (хотя бъ астронавигация - шутка) кроме приема. Кстати, по моему мнению, решение первой задачи решает и вторую. Я позволил себе посмотрет на ваши программъ. Там твердо линейнъй алгоритм и несмотря на то что въ говорите,roman.com писал(а):А мост на мосфетах не работает? Просто интересно...
филтрь и спектральный анализ сигнала у вас сделан на простой (раза 252) проверке сигнала. Я не сторонник ATmega8, AVR и т.п. , но с утверждениемroman.com писал(а):с помощью цифровых фильтров проводим спектральный анализ сигнала
я не согласен.roman.com писал(а):Мой МК не может одновременно и сигнал принимать и за колёсами следить
Если захочете, я могу предложить вам подумать над тем что написал въше - кроме "филтрь и спектральный анализ " -с етим нет желание связъватся.
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
- Реклама
Re: Радиоуправление. Переходим на МК.
Питание моторчика на 7,2 будет ли мост работать с таким питанием или нужно подбирать резисторы и как согласовать с последней прошивкой?
Мост на мосфетах - затров irfz40 оставлять висеть в воздухе?
Что скажите про такой H-мост?
Мост на мосфетах - затров irfz40 оставлять висеть в воздухе?
Что скажите про такой H-мост?
- Вложения
-
- hb_mosfet.gif
- (5.38 КБ) 402 скачивания
Re: Радиоуправление. Переходим на МК.
Измерил ток своих моторчиков... все показали примерно одинаковый ток:копеин писал(а):Питание моторчика на 7,2 будет ли мост работать с таким питанием или нужно подбирать резисторы.
Ток при максимальной нагрузке: 6V - 0,5 A
Ток при максимальной нагрузке: 12V - 0,8...1 A
Достал из коробки разные транзисторы и измерил падение напряжение при токе 6V - 0,5 A:
Все транзисторы - составные. Как видем, обычные биполярные транзисторы работают не хуже чем мосфеты... а некоторые даже лучше!
А один транзистор мощный с монитора - вообще не составной... а работает даже лучше чем мосфет! У него сопротивление маленькое, потому что он мощный... Так что в крайнем случае вместо составных можно ставить обычные мощные, только уменьшить резистор в цепи базы.
При 6V моторчики нормально работают... только мощность естественно меньше чем при 12V...
Нет конечно! Просто схему так нарисовали ...копеин писал(а):Мост на мосфетах - затров irfz40 оставлять висеть в воздухе?
Вообщем на обычных составных транзисторах схема будет такая:
Для переключения вперед-назад можно использовать любые свободные выводы МК. Для этого открываем исходник приёмника ... и пишем в программе любые свободные выводы какие захотим... ну например PB6 и PB7...
Что вы имеете ввиду? У меня и так синхронизация записи кода по первому биту в пакете.botchin писал(а):Въ не задумавались воплотить в жизни (в программе) все преимущества манчестерского кода. Скажем синхронизация, и второе - освободить МК и для каких то других задач...
Да. Спектральный анализ сигнала сделан на простой (раза 252) проверке сигнала. Мы выделяем низкочастотную составляющую сигнала... Короче обычный цифровой фильтр низкой частоты. Я писал выше.
При таком алгоритме мой МК не может одновременно и сигнал принимать и за колёсами следить. Если надо чтобы мой МК делал это одновременно, то придётся переписывать всю программу... И тогда не будет фильтра низкой частоты.
Я могу всё переписать под другой алгоритм работы - без фильтра низкой частоты...
А вот это интересно. И какие у вас есть идеи по поводу алгоритма?botchin писал(а):Если захочете, я могу предложить вам подумать над тем что написал въше - кроме "филтрь и спектральный анализ " -с етим нет желание связъватся.
- Вложения
-
- TX-RX-рабочий-машинка-250-минус0.6-серво-3900.rar
- (598.57 КБ) 211 скачиваний
-
- транзисторы.JPG
- (210.8 КБ) 299 скачиваний
-
- модель машинка-серво-2-составные.rar
- (195.73 КБ) 197 скачиваний
Последний раз редактировалось roman.com Чт апр 02, 2015 17:52:12, всего редактировалось 1 раз.
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Радиоуправление. Переходим на МК.
Если запитаете Н-мост на MOS-fet от 2 Li-Po то, я опасаюсь что напряжение маловато. MOS будут работат на "линейном" участке. При 7,2В, думаю - биполярники.копеин писал(а):Что скажите про такой H-мост?
roman.com,
Я вам предлагаю такой вариант. Грубо
1. в режиме захвата (capture) ждем, ищем синхро битов. Режим захват генерирует преръвание => в interrupte.
2. Знаем уже сколко "стоят" скажем 4 синхро битов (помечаем SBL - SinBitLen). (4 для елементарное деление). Ета информация в режиме захвата получается автоматом. Тоже в interrupte.
3. Въчисляем SBL/16 и SBL/4
4. Запускаем таймер генерирующии преръвание с SBL/16 и по преръвание читаем порта ето первъй Информационнъй бит. Смещение равное 1/4 инфо бита. Тоже в interrupte.
5. Запускаем таймер генерирующии преръвание еще 53 раза с SBL/4 и по преръвание читаем - порта ето следующие инфобитами. Смещение равное 1 инфо бита. Тоже в interrupte.
Етим методом мъ попадаем всегда на первую четверть следующего инфо бита. Произходит авто синхронизация с частотой передатчика и все попадает в interrupte
если хочется то можно опять читат несколько раз с порта для каждого бита и таким образом страховать себе. Я думаю что ето излишно. Мъ читает уже установившиесеся (как пишется ето слово - установени) сигнали всегда в середине первой половинъ инфо бита.
Надеюсь что написал разборчиво.
PS. После завершения чтение инфо битов и стоп бита проверяем валидности п. 1. Если сразу за стоп бита приходит синхро значит можем принять что пакет валиднъй. Передаем его для въдачи на въводах МК - ето уже в main.
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Re: Радиоуправление. Переходим на МК.
да ничего. этот мост практически ничем не отличается от того что я писал выше... только время перезаряда ёмкости затворов будет одинаковая.. если слишком высокая частота и крутой фронт.. то транзисторы могут не успевать переключится .. и будет БУМ! об этом уже писали выше..копеин писал(а):Что скажите про такой H-мост?
переходим на страница №10 этого форума.. http://radiokot.ru/forum/viewtopic.php? ... &start=180 и читаем:botchin писал(а):Если запитаете Н-мост на MOS-fet от 2 Li-Po то, я опасаюсь что напряжение маловато. MOS будут работат на "линейном" участке. При 7,2В, думаю - биполярники.
Короче, при напряжении полного открывания не более 5V, данную схему можно подключать напрямую к МК и всё будет работать чётко.MASIK писал(а):хватит ли 5В для полного открытия мосфета?roman.com писал(а):Нашёл парочку FQPF10N20C... измерил... напряжение полного открывания - 4,3 V... подключил к МК... работают чётко.
Я об этом писал на страница №1 http://radiokot.ru/forum/viewtopic.php?f=28&t=108688botchin писал(а):филтрь и спектральный анализ сигнала у вас сделан на простой (раза 252) проверке сигнала...
Я использую идею обычного UART в ATmega8:roman.com писал(а):дошли до UART в ATmega8......
только увеличил количество выборок:
поэтому количество ошибок у меня уменьшилось в несколько раз!
Вот и всё.
надо нарисовать вашу идею... )))
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Радиоуправление. Переходим на МК.
Вот irf510 въходнъе характеристики. При Ugs=5V i Uds=8v он уже въшел на режим "генератор тока". Я бъ не делал на его.
- Вложения
-
- irf510.png
- (22.93 КБ) 398 скачиваний
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Re: Радиоуправление. Переходим на МК.
botchin писал(а):Я вам предлагаю такой вариант. Грубо...
Ну... и что тут "суперского"?)) Где "изюминка"? Просто проверять каждый импульс через равные промежутки...
1) увеличивается количество ошибок определения импульса... Вероятность ошибки определения импульса зависит от количества выборок... В заводском UART в ATmega8 - 3 выборки... и идут ошибки!
2) зачем такая сложная синхронизация? У нас частота передачи импульсов постоянная. Поэтому подстраиваться под передатчик при одиночных выборках ... нет смысла...
3) при появлении помехи в синхроимпульсе... будет ошибка определения SBL/16 и SBL/4 ... и сразу ошибка кода.
У меня сейчас количество проверок одинаковое. Причём на всю ширину импульса. Это значит что у меня всегда проверки импульсов проходят точно по фронтам...
Синхропауза одинаковая - задаётся при настройке... значит время выборки SBL/16 и SBL/4 не меняется и нее зависит от помех.. это тоже уменьшает количество ошибок...
Единственный большой сейчас недостаток моей схемы - приходится настраивать схему с помощью осциллографа.. Поэтому можно подумать над автоматической подстройкой частоты и фазы приёмника.
Вообщем .. чёто мне не нравися ваша идея... Схема слишком уязвима в помехам... слишком уязвима. ваша прога будет работать нормально только при очень мощном сигнеле... даже малейшая помеха от работающего двигателя или реле приведёт к ошибке.
Сейчас наш МК читает порт непрерывно... поэтому он не может отвлекаться на другие дела)) Например наш МК не может проверять двигатели:
Если мы хотим чтобы наш МК кроме приёма сигнала ещё что-то делал, например проверял двигатели... то тогда лучше использовать встроенный в ATmega8 аппаратный UART ... Который работает незавсимо от основной программы...
скорости: 110, 300, 600, 1200, 2400, 4800... Поддержка формата передаваемых данных с 5, 6, 7, 8 или 9 битами данных и 1 или2 стоп-битами... Три раздельных прерывания по завершении передачи, освобождении
регистра передаваемых данных и завершении приема...
Так наш приёмник освобождается от приёма сигнала... и занимается проверкой двигателей и т.д. И только иногда прерывается после окончания приёма... быстренько проверяет и выполняет команду и опять продолжает следить за двигателями...
Таким же образом можно освободить от лишней работы и МК-передатчик.
Причём можно заставить UART МК-передатчика выдавать манчестер...
Недостаток встроенного UART - он не умет находить синхропаузу... встроенный UART автоматически включается на запись по первому биту... и начинает принимать всё подряд))) Впринципе можно научить UART находить синхропаузу и принимать как положено.
Всё это замечательно... только обе идеи (ваша и моя с UART) имеют недостаток - количество ошибок не уменьшается. Т.е. они могут работать только при мощном сигнале.. без помех. Поэтому если хотим уменьшить ошибки и увеличить скорость передачи.. придётся придумать другую идею. Вот.
При разработке программы вы допускаете ошибку... как и многие... вы не учитываете особенности работы радиоканала. Такие системы с UART и одиночными выборками могут нормально работать только по оптическому кабелю))) в котором нет помех:
Я тут придумал другую идею. Выше вы писали что используете прерывание по фронтам импульсов...
Вот... только у вас идет передача с помощью ШИМ, а я предлагаю подумать как сделать приём манчестера с помошью прерываний:
Что это даёт? Как я писал выше... если момент выборки попадает на помеху то получаем ошибку бита:
Если использовать прерывание по фронтам... то такой номер не пройдёт))
1) Количество прерываний в одном пакете всегда одинаковое (!).
2) Время между прерываниями может быть или равным одному импульсу или равным двум импульсам (!).
По этим двум параметрам наш МК без труда отличит сигнал от помехи. Понятно, что такая схема может работать только при мощьном сигнале... т.к. даже малейшая помеха... и ошибка. Но зато мы можем работать без синхронизации (!)... при каждом прерывании сбрасывается таймер и начинает отсчитывать время до следующего прерывания... в итоге выбег по частоте сокращается с 54 импульсов до 2... При этом импульс может дрожать... джитер мы устанавливаем сами - программно.
Помоему это намного лучше чем просто проверять один раз импульс и бояться что проскочит помеха. Так мы можем даже уменьшить размер пакета... и даже передавать пакеты без инверсии... это дополнительно увеличит скорость передачи.
- Вложения
-
- манчестер.JPG
- (148.78 КБ) 449 скачиваний
-
- 3.JPG
- (255.37 КБ) 294 скачивания
-
- 2.JPG
- (235.82 КБ) 393 скачивания
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Радиоуправление. Переходим на МК.
Понял ! Извини
Кстати, у вас есть такой фрагмент кода
Исползуйте
if (d>v) //вероятность 50%
m[x]=1;
else
m[x]=0;
Кстати, у вас есть такой фрагмент кода
Здесь с вероятности 1/v когда (d==v) есть неопределенность.
if (d>v) { //вероятность 50%
m[x]=1;
};
if (d<v) { //вероятность 50%
m[x]=0;
Исползуйте
if (d>v) //вероятность 50%
m[x]=1;
else
m[x]=0;
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Re: Радиоуправление. Переходим на МК.
Нельзя. Чтобы писать "крутые" программы (botchin писал(а):Здесь с вероятности 1/v когда (d==v) есть неопределенность... Исползуйте...
В чём разница между написанием так:
if (d>v) { //вероятность 50%
m[x]=1;
};
if (d<v) { //вероятность 50%
m[x]=0;
};
или так:
if (d>v) //вероятность 50%
m[x]=1;
else
m[x]=0;
Разница в машинных тактак МК :
Проверка условия if и запись в массив m[x] - занимает (грубо) - 10 машинных тактов МК... Поэтому если писать так:
if (d>v) { //вероятность 50% - это10 машинных тактов МК
m[x]=1;
};
if (d<v) { //вероятность 50% - это 10 машинных тактов МК
m[x]=0;
};
В итоге: подсчёт вероятности занимает (грубо) - 20 машинных тактов МК
Если писать так:
if (d>v) //вероятность 50% - это 10 машинных тактов МК
m[x]=1;
else - это 5 машинных тактов МК
m[x]=0;
В итоге: подсчёт вероятности и запись в массив занимает (грубо) - 15 машинных тактов МК
И что пулачаем? А вот что:
if...
if...
Считаем: 255 выборок (100 тактов)... + if (10 тактов)... + if (10 тактов)... + 255 выборок (100 тактов)... + if (10 тактов)... + if (10 тактов)...
= 240 машинных тактов МК...
Или так:
if...
else...
Считаем: 255 выборок (100 тактов)... + if (10 тактов)... + else (5 тактов)... + 255 выборок (100 тактов)... + if (10 тактов)... + else (5 тактов)...
= 230 машинных тактов МК...
Т.е. если if + if.........., то время подсчета вероятности и записи в массив всегда одинаковое и не зависит от того "1" или "0"...
Если if + else.........., то время подсчета вероятности и записи в массив следующего импульса разное, зависит от того какой был предыдущий результат подсчёта вероятности... т.е. "1" или "0"...
Т.е. if + if МК свегда проверяет два условия... поэтому время проверки всегда постоянное...
Т.е. if + else МК проверяет одно условие... поэтому время проверки зависит от того, верное условие или нет... поэтому время проверки зависит от выполнения условия...
При частоте 250 гец при тактовой 1.000.000 - это практически не заметно. Но если увеличить частоту импульсов и соответственно уменьшить выборки... то несовпадения по фазе выборок становятся заметны. У нас линейный код!
Вообщем примерно так.
Во я загнул... )))))
Кстате, об этом я уже писал выше... почему нельзя при записи использовать сдвиговые регистры...
Страница №2 http://radiokot.ru/forum/viewtopic.php? ... 8&start=20
Линейные коды... запись кодов с помощью сдвиговых регистров...
бла-бла-бла )))
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Радиоуправление. Переходим на МК.
; 235 if (d>v) { //вероятность 50%roman.com писал(а):if (d>v) { //вероятность 50% - это10 машинных тактов
МКm[x]=1; };
CP R8,R9
BRSH _0x77
; 236 m[x]=1;
RCALL SUBOPT_0x5
LDI R26,LOW(1)
STD Z+0,R26
; 237 };
_0x77:
Считайте. Далее того пункта не читал.
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Re: Радиоуправление. Переходим на МК.
Я так глубоко в подробностях не разбирался))) Поэтому я написал грубо - 10 тактов... Я на прогрмаммиста не учился... Я не могу ответить на этот вопрос...botchin писал(а):Считайте. Далее того пункта не читал.
В таком случае вы подробно расскажите нам...
if (d>v) - проверка условия... если выполняется, то записываем в массив и читаем программу дальше...
else - если условие не выполняется...
В итоге: получается что время проверки условия зависит от того выполняется условие или нет...
Сколько это в тактах? Вы ниписали не понятно что... регисты.. кудато складываются.. вычитаются... ничего не понятно...
Вот если вы хорошо разбиратетесь в программах... то ответьте на вопрос - сколько у нас получается по времени тактов???
Если не знаете.. то так и скажите. Значит мы оба не знаем )) Значит надо найти настоящего опытного программиста... и он нам всё расскажет.
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Радиоуправление. Переходим на МК.
Если исполнилос первое то второе не будет въполнятся. Кроме мат часть надо и язъка программирования знать.roman.com писал(а):if (d>v) { //вероятность 50% - это10 машинных тактов
МКm[x]=1; };
if (d<v) { //вероятность 50% - это 10 машинных тактов
МКm[x]=0; };
; 235 if (d>v) { //вероятность 50%roman.com писал(а):Сколько это в тактах?
CP R8,R9 1
BRSH _0x77 1
; 236 m[x]=1;
RCALL SUBOPT_0x5 2(1)
LDI R26,LOW(1) 1
STD Z+0,R26 1
;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:3 WORDS
SUBOPT_0x5:
MOV R30,R5 1
LDI R31,0 1
SUBI R30,LOW(-_m) 1
SBCI R31,HIGH(-_m) 1
RET 1
Итого 11 (если rcall 2 такта, с второе условие If 2(или 3 такта)
CP R9,R8
BRSH _0x78
Говорю 2 или 3 потому что ето Атмега. Я его не знаю.
Вообще въ меня уничтожили!!!
Въ что. Всю программу сделали так чтоб от одной лишней инструкции зависела?
Если добавлю один пустой опператор (в PIC ето NOP) что будет. Программа зависнет? Плават к кораблику будем?
Если солнце повъсит температтуру кодера (смотрел зависимость внутреннего RC от t - надо матчасть учить) что будеть? Плават к кораблику будем?
Мало то, что передавая манчестера принимаете черт знает что (но не и манчестера), а сейчась дошло до того что и декодер зависит от все!!! Да сейчась я понимаю зачем въ тупо висите на входном порте и около 8000-9000 раз проверяете что там. И ни СИНХРО, НИЧЕГО.
PS. Когда не знаете что как происходить то смотрите на ASM file. От туда многое можете научить. Разумеется для ASM надо иметь хотя бъ какое то понятие от МК для которого пишете.
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Re: Радиоуправление. Переходим на МК.
А вы меня рассмешили ))))))botchin писал(а):Вообще въ меня уничтожили!!!...
Напомнили закомых программистов... которые пишут программы для предприятий ... а когда подключают модем.. то удивляются почему связи нет))) А взять прибор и померить параметры линии связи... не судьба)))
Ничего страшного в этом нет. Просто кто на кого учился...
Итого 11 тактов... Замечательно... значит столько и показывает осциллограф. Примерно 10 тактов... Это я просто для интереса спросил.
А я думал что на этом сайте одни коротковолновики собрались)))
Вот за это я Вас уже уважаю!
Ничего не будет. Выбег частоты допускает отклонение времени выборки до 0, 5 импульса на каждый пакет... Поэтому можем добавлять что хотим... Вот только вероятность ошибок зависит от точности выборок по фазе импульсов... значит любой оператор просто увеличит вероятность ошибки принимаемого сигнала... А сама схема будет и дальше себе спокойно работать.botchin писал(а):Если добавлю один пустой опператор (в PIC ето NOP) что будет. Программа зависнет?
Мы передаём и принимаем чётко манчестер, а не черт знает что))) У нас всё четко посчитано))) У нас самый настоящий манчестер. Постоянная составляющая отсутсвует. (чуть только надо подкрутить синхро... в зависимости от последнего импульса кода ... добавляется или убирается лишний импульс... и тогда у нас будет просто идеальный манчестер!) Но это мелочи...botchin писал(а):Мало то, что передавая манчестера принимаете черт знает что (но не и манчестера), а сейчась дошло до того что и декодер зависит от все!!!
Всё верно. Мы сейчас тупо сидим и проверяем порт... 255х54=13770 ... минус время на обработку кода и выполнение команды...botchin писал(а):Да сейчась я понимаю зачем въ тупо висите на входном порте и около 8000-9000 раз проверяете что там...
А вам о чем-нибудь говорит выражение Асинхронный поиск данных? Шучу)))botchin писал(а):И ни СИНХРО, НИЧЕГО.
Вообще... наша машинка (или кораблик) работает по принципу UART ATmega8... открываем даташит ATmega8 и читаем:
Асинхронный поиск данных...
1) "Частота выборок в 16 раз выше скорости связи для нормального режима... "
- это мои 255 выборок на импульс.
2) "Если две или более из этих выборок имеют единичное состояние (принцип мажоритарного голосования), то старт-бит отклоняется как ложный, а приемник продолжит поиск следующего..."
- это мой моиск синхро паузы по 255 выборкам...
3) "Однако если определен действительный старт-бит, то логика обнаружения синхронизации оказывается засинхронизированной, после чего вступит в силу логика обнаружения данных..."
- это у меня вклычается запись кода.
4) "Определение логического уровня принимаемого бита данных происходит с помощью мажоритарного голосования... "
- это у меня идет проверка битов по 255 выборкам...
5) "Процесс мажоритарного голосования состоит в следующем: если две или все три выборки имеют высокие уровни, то принятый бит фиксируется как лог. 1. Если две или три выборки имеют низкие уровни, то принятый бит фиксируется как лог. 0... "
- у меня больше или меньше 127.. т.е. 255/2=127.
6) "Процесс мажоритарного голосования, по сути, представляет собой фильтр низких частот для входящего сигнала с вывода RxD..." - это о чём я писал выше... про фильтр низкой частоты.
7) "Процесс обнаружения повторяется до полного завершения приема посылки, в т.ч. первый стоп-бит..."
- тоже писал...
Рабочий диапазон асинхронной связи "Рабочий диапазон приемника зависит от расхождения между внутренне
генерируемой скоростью связи и скоростью принимаемых бит. Если передатчик отправляет посылки на более высокой или более низкой скорости или внутренне-генерируемая скорость связи приемника не соответствует основной частоте... " - это я настраиваю с помощью осциллографа.
В таблицах 53и54приведен список максимальных допустимых погрешностей при
генерации скорости приемника. - Это о чем я писал выше... погрешности выборки у нас допускаются не более половина импульса на пакет.
"Имеется два возможных источника влияния на погрешность скорости связи приемника. Системная синхронизация (XTAL) приемника всегда имеет некоторую нестабильность в зависимости от напряжения питания и температуры. При использовании кварцевого резонатора для генерации системной синхронизации как правило не возникает проблем, но при использовании керамических резонаторов частота синхронизации может изменяться более чем на 2% в зависимости характеристик выбранного резонатора.... "
Это вопрос о стабильности тактового генератора. На первой странице я писал, что если напряжение питания ATmega8 больше 5,5 V ... или меньше 4,5 V ... то появляются ошибки при приёме кода.... просто импульс выходит за пределы...
Если нужна высокая стабильность ... то можно подключить кварц.
Кстате, встроенный UART ATmega8 может работать без кварца на частотах до 4800...
Компилятор cvavr пишет с какой погрешность будет работать наш любимый UART ATmega8 при разных частотах... Если мы выбираем слишком высокую скорость... то компилятор нам об этом сообщит.
И т.д. и т.п. Собственно вся моя программа построена на том что написано в даташите ATmega8... весь даташит я вам переписывать не
буду... вы сами можите скачать.
Просто мне не нравится работа заводского UART ATmega8... он даёт ошибки... Поэтому я написал программу своего UART...
А по поводу температурной стабильности... то про это в даташите тоже написано. Стабильность встроенного RC-генератора. Только я не всему доверяю что написано))) Я лучше возьму приборы и сам всё померию.
Если интересно... я могу сказать при каких температурах нормально работает наша схема ... т.е. ATmega8 (т.е. как меняется частота тактового генератора). Я все свои рабочие схемы передатчиков и приёмников проверяю на температурную стабильность. Могу проверить и ATmega8... не проблема!
Если Вы знаете как работает UART ATmega8... то Вы без труда поймёте как работает моя программа.
Если мы хотим получить синхронизацию... то нужно хорошо подумать... так как при таком сигнале довольно трудно выделить синхронизацию... а использовать отдельный блок (цифровой или аналоговый) синхронизации ... чето не очень хочется....
простым делением и умножением ... синхронизацию не получим... тут надо выделять синхроимпульсы из шума... конечно можно подумать... но не так вы предлагали выше... а более сложным алгоритмом...
Вот.
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Радиоуправление. Переходим на МК.
Вам уже один товарию писал, что смеется очень часто заходя в тему.
Вот, рано утром - расмешили.
Дерзайте. Работайте. Другие плавать будут, не въ.
Я постою в сторону и почитаю. Въ писат любите, а вот читать и воспронимать чужое мнение вам о-о-о-о-очень трудно. Бъло такое и в моей жизни - в начале проффесионалного пути. Потом понял - легче учится на чужие ошибки.
Вот вам задачка. У вас есть приемо-передатчик в одном изделие - кораблик. Сделайте и приема и передачи на одном МК. Тогда может бъть поймете. А то сейчас - как будто получаете % продаж ATmega.
Кстати. Про мажоритарную логику. Когда я учился так назъвалась логика 2 из 3 (два из трех). Где у вас в программе есть такая логика? Или она как код манчестера. Говорим, а его нету.
И еще: Но ето проверте!!!! Расчитал сколко инструкции (машиннъх тактах) будет разница при изменение температуру МК на 20град. Получилось свъше 300. Т.е. ваш код должен допускат изменение на целъх 1,2мС (милиСекунд).
Вот, рано утром - расмешили.
Дерзайте. Работайте. Другие плавать будут, не въ.
Я постою в сторону и почитаю. Въ писат любите, а вот читать и воспронимать чужое мнение вам о-о-о-о-очень трудно. Бъло такое и в моей жизни - в начале проффесионалного пути. Потом понял - легче учится на чужие ошибки.
Вот вам задачка. У вас есть приемо-передатчик в одном изделие - кораблик. Сделайте и приема и передачи на одном МК. Тогда может бъть поймете. А то сейчас - как будто получаете % продаж ATmega.
Кстати. Про мажоритарную логику. Когда я учился так назъвалась логика 2 из 3 (два из трех). Где у вас в программе есть такая логика? Или она как код манчестера. Говорим, а его нету.
И еще: Но ето проверте!!!! Расчитал сколко инструкции (машиннъх тактах) будет разница при изменение температуру МК на 20град. Получилось свъше 300. Т.е. ваш код должен допускат изменение на целъх 1,2мС (милиСекунд).
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Re: Радиоуправление. Переходим на МК.
Я вам всё пишу... пишу... пишу... а вы опять не так понимаете... не до конца... и не читаете мих сообщений до конца...
Есть разница между смеяться и улыбаться))) Потому что он понимает что я пишу... и мы улыбаемся с ним вместе))
MASIK кудато пропал...
так мы и не узнали... получилось у него все настроить или нет...
А что такое код манчестера... а у меня по вашему что?
Давайте лучше поговорим конкретно по теме. А то мы сейчас испишем весь форум пустой болтовней))) И нас с вами отсуда "выкинут" модераторы...
P.S. Мы находимся в теме Радиоуправление. Переходим на МК. Давайте писать по теме... цифры... факты... предположения (аргументированные)... Я не думаю что тут комуто интересно читать про нашу карьеру и выслушивать чужие советы кто на чьих ошибках учится ))) Извините.
Скорость мы может сделать какую захотим.. Проблема в ошибках - т.е. ложных срабатываний машинки. Сейчас у нас 250 герц... ложных срабатываний я не зафиксировал при любом уровне сигнала.
Если повысим скорость то могут проскакивать очень редкие ложные срабатывания. Например при скорости 1 кГц - я фиксировал одно ложное срабатывание примерно каждые пять минут работы схемы... Это только при слабом сигнале, т.е. когда машинка выходит из зоны уверенного приёма передатчика... Впринципе, ничего страшного нет. Т.к. после "ложного" кода сразу приходит "правильный" .... в этот момент машинка может только чуть-чуть дёрнуться не в ту сторону.. и всё. На скорости это вообще будет не заметно.
Или можно подкрутить программу под другой код - т.е. уменьшить пакеты... но тогда ошибок будет больше... или ... вообщем надо сначала подумать... допускаются ли ложные срабатывания или нет.
Ну или придётся переписывать всё программу... это будет не быстро...
"Товарищ" Ser60 не смеётся, а улыбаетсяbotchin писал(а):Вам уже один товарию писал, что смеется очень часто заходя в тему...
Мы ещё пока никуда не плаваем... Проект ещё не завершён. Любой проект считается завершённым, только после испытаний на полигоне.botchin писал(а):Другие плавать будут, не въ...
Для этого и существует этот форум... тут все пишут что думают и обмениваются мнениями... и могут соглашаться или не соглашатся... У нас свободная страна!))botchin писал(а):Въ писат любите,...
В изделии "кораблик" прием и передача уже сделаны на одном МК... Просто там МК переключается с приёме на передачи и обратно... Если вы имеете ввиду чтобы МК работал одновременно и на приём и на передачу? Ну... пока он так не умеет...botchin писал(а):Вот вам задачка...
вы просто надомной издеваетесь))) Я вам говорю что принцип работы схемы - это передаланный UART... т.е. я ииспользую сам только принцип! А нелогику 2 из 3... У меня вместо 2 из 3 - 127 из 255... Вы вообще не читаете что я пишу...botchin писал(а):логика 2 из 3 ... Где у вас в программе есть такая логика? Или она как код манчестера. Говорим, а его нету.
А что такое код манчестера... а у меня по вашему что?
Вот! Ближе к делу! Это проверим.botchin писал(а):Расчитал сколко машиннъх тактах будет разница при изменение температуру МК на 20град. Получилось свъше 300. Т.е. ваш код должен допускат изменение на целъх 1,2мС (милиСекунд).
Давайте лучше поговорим конкретно по теме. А то мы сейчас испишем весь форум пустой болтовней))) И нас с вами отсуда "выкинут" модераторы...
P.S. Мы находимся в теме Радиоуправление. Переходим на МК. Давайте писать по теме... цифры... факты... предположения (аргументированные)... Я не думаю что тут комуто интересно читать про нашу карьеру и выслушивать чужие советы кто на чьих ошибках учится ))) Извините.
Если вы дочиталидо этого места... и не уснули от моих заумной писанины... То вы уже знаете как работает наша машинка. Если ещё не пропало желание всё это собирать... то тогда надо посоветоватся.zhuplev писал(а):По поводу скорости передачи сигнала то поднять её хотя бы до 1 килогерца. Так как вы используете передатчик радиостанций то по идее вписывается в полосу пропускания...
Скорость мы может сделать какую захотим.. Проблема в ошибках - т.е. ложных срабатываний машинки. Сейчас у нас 250 герц... ложных срабатываний я не зафиксировал при любом уровне сигнала.
Если повысим скорость то могут проскакивать очень редкие ложные срабатывания. Например при скорости 1 кГц - я фиксировал одно ложное срабатывание примерно каждые пять минут работы схемы... Это только при слабом сигнале, т.е. когда машинка выходит из зоны уверенного приёма передатчика... Впринципе, ничего страшного нет. Т.к. после "ложного" кода сразу приходит "правильный" .... в этот момент машинка может только чуть-чуть дёрнуться не в ту сторону.. и всё. На скорости это вообще будет не заметно.
Или можно подкрутить программу под другой код - т.е. уменьшить пакеты... но тогда ошибок будет больше... или ... вообщем надо сначала подумать... допускаются ли ложные срабатывания или нет.
Ну или придётся переписывать всё программу... это будет не быстро...
Re: Радиоуправление. Переходим на МК.
Рассуждайте по-дольше, а то я не успеваю схему переделать под Atmega8 smd и на TIP122 и TIP127.


