помехо- и просто устойчивость МК, кто с чем сталкивался практичекски. |
Здравствуйте, гость ( Вход | Регистрация )
помехо- и просто устойчивость МК, кто с чем сталкивался практичекски. |
27.5.2010, 22:08
Сообщение
#1
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Вот, решил что пора все же освоить эту тему, хоть светодиодами моргать научиться для начала...
Ну и возник вопрос - как все же у разных МК с помехоустойчивостью... По питанию - как-то не очень тревожит, защитим если что. По входам и прочее - тоже контролируемо. А вот если такой тупой эксперимент - мобильник в режиме разговора или вызова , приближенный к работающему девайсу? Как повлияет? Есть ли девайсы, что сбросятся или зависнут в таком случае? Или я глупость спросил? Просто пора определяться уже с выбором да начинать учить систему команд, так вместо чтоб монетку кидать - решил вот так вот попробовать выбрать... |
|
|
27.5.2010, 22:26
Сообщение
#2
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
Богатая тема...
Когда-то научился ресетить очень дубовые в плане помехоустойчивости TMP87 с расстояния нескольких метров. Это был базовый блок радиотелефона, мощность передатчика 1 Вт. Подключал волновой канал, направлял на базовый блок и давал входящий звонок... выходит в передачу и тут же сбрасывается. Там кое-какая экранировка имелась, в виде металлизации пластикового корпуса, однако. |
|
|
27.5.2010, 23:35
Сообщение
#3
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Богатая тема... Когда-то научился ресетить очень дубовые в плане помехоустойчивости TMP87 с расстояния нескольких метров. Это был базовый блок радиотелефона, мощность передатчика 1 Вт. Подключал волновой канал, направлял на базовый блок и давал входящий звонок... выходит в передачу и тут же сбрасывается. Там кое-какая экранировка имелась, в виде металлизации пластикового корпуса, однако. Вот я и думаю, что спросил все же глупость... В конце концов, есть некоторый опыт защищать даже AT89 или как их там, от всего что предусмотрено сертификацией... Ну, разве что добавлять еще полное экранирование из соображений параноидальности... И не забывать резисторы в затворах силовых ключей...Никогда и нигде Бо помеха от забытия бывает уж очень лезучая куда хошь... |
|
|
28.5.2010, 20:43
Сообщение
#4
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Вот я и думаю, что спросил все же глупость... Отнюдь не глупость. К примеру, я проверял свой крайний МК девайс, расположив его в середине работающего силового устройства. В мире МК существует 2 направления защиты. 1. Схемотехнические методы. Про них Вы и так все знаете. Никаких отличий от силовой электроники нет. Есть микро-нюансы. Но они зависят от задачи. 2. Программные методы. Здесь есть поле для предметного разговора. Для начала - надо сразу научиться создавать программы без ошибок. Вот очень хорошая статья на эту тему. Есть еще мысли на эту тему... |
|
|
28.5.2010, 21:06
Сообщение
#5
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
- Добрый день ! - Ассалам алейкум ! - До свидания !!! (Это такой анекдот, кто не помнит, на вступительных экзаменах, например.) Этот анекдот, ПМСМ, к делу отношения не имеет. Уважаемый ortodox выступает в роли начинающего. В его 19 лет (с которыми я его запоздало поздравляю) заниматься Ассемблером уже невозможно. Начинать надо сразу с языка высокого уровня, например С. А там уже давно существуют вполне определенные правила, которые изложены в статье. И в догонку. Виктор Тимофеев - известный специалист по отладке чужого кода. Для старта ortodox-у потребуется лишь компьютер с любой С или С++ системой и Керниган вместе с Ритчи. Да и последующий вопрос с выбором камня решать будет легче. |
|
|
28.5.2010, 21:59
Сообщение
#6
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
В его 19 лет (с которыми я его запоздало поздравляю) заниматься Ассемблером уже невозможно. Начинать надо сразу с языка высокого уровня, например С. Да ну? Если оно будет в кайф, то очень даже возможно, вопрос только - а зачем? Я в 37 51-м асмом капитально был занялся, и за три месяца "вылизал" два подзаброшенных прожекта, исключительно во внеурочное время... Если кроме шуток, то, собственно, именно C. Без плюсов и решёток. Для старта хватит вполне, а потом, если надо, недостающее приложится. Касательно защиты от РЧ помех, честно, много чего могу подсказать. Но на первых порах заморачиваться этим наверняка не придётся. А может, и вообще не придётся, смотря какие задачи. Там порой даже некоторая доля шаманства. Вот сейчас без понятия, как поведёт себя американский девайс, собранный в Китае, когда в 20 см от него будет излучаться 0,5 Вт на 916 МГц. При 20 мВт ереси не наблюдалось. |
|
|
28.5.2010, 22:19
Сообщение
#7
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Если кроме шуток, то, собственно, именно C. Без плюсов и решёток. Для старта хватит вполне, а потом, если надо, недостающее приложится. Согласен. Просто С++ пакет можно эксплуатировать и в С режиме. Чисто в тренировочных целях. И еще - АСМ портит начинающего программиста сразу. Потом еще долго текст на С будет мало отличаться от текста на АСМ. |
|
|
28.5.2010, 22:26
Сообщение
#8
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
И еще - АСМ портит начинающего программиста сразу. Ага. Наступил. Потом еще долго текст на С будет мало отличаться от текста на АСМ. Есть некоторые исключения - диспетчер задач RTOS, в частности. Обычно такие штуки пишутся на асме, с учётом национальных особенностей компиляторов. Ну и для задач, в которых важен каждый цент и каждый байт, ASM остаётся в силе. Но это уже что-то вроде народного искусства... |
|
|
28.5.2010, 23:29
Сообщение
#9
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Еще как имеет. Не представляю себе Асм знать обязательно, ибо это 1. не сложно, 2. позволяет понять архитектуру. Огромнейшее спасибо моему первому преподу по программированию, который (персонально) презентовал мне книжку по ассемблеру и архитектуре PDP11, иначе б так я и помер кодером неграмотным. Про знание АСМ-а соглашусь. Но только изучать его надо после С. Или совместно. А насчет несложно - рекомендую АСМ от i486. Тут Вам не здесь... Это далеко не PDP11 с ее ортогональной и симметричной системой команд. Нечто похожее имеем в настоящее время в MCP430 и PIC24/dsPIC. А программировать без ошибок (алгоритмических) не только можно, но и нужно... |
|
|
29.5.2010, 6:48
Сообщение
#10
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Еще как имеет. Не представляю себе Да нормально это. Я почитал до половины примерно статью на которую указал Прохожий, это мне все близко - практически все из упомянутого до этого момента было причиной выбора Паскаля вместо Си в свое время Не странно, что оно спустя 15 лет все еще актуально (ну мы ж не будем подвергать сомнению, что Си- единственно возмложный выбор, я вовсе не хотел его как-то там того...)... Свободу ограничивать, короче, нужно везде - и в схемах и в языках (хотя несколько неочевидных глючков, требующих особого внимания, нашлось и в Паскале) То есть, вполне можно и без ошибок, только поначалу медленно придется писать и тестировать каждый шаг, вот и все. И не делать сложного, ни в начале ни потом. Хотя я бы предпочел больше ограничений в языке, ну да ладно - сам себя ограничу. Цитата Асм знать обязательно, ибо это 1. не сложно, 2. позволяет понять архитектуру. Да. я уже изучаю. Для AVR. После прочитаю про PIC asm и который логичнее будет - те МК и выберу для работы. Хотя кажется мне, что AVR популярнее, и это тоже, наверное, причина...Или не причина? Потом еще долго текст на С будет мало отличаться от текста на АСМ. А, вот так еще можно? Это на заметку, это нужно будет. PS Где в первой части примера пропущено ';' ? И что будет делать вставленный 'continue' во второй части примера ? Вопрос идиотский, конечно, но я еще не зубрил Си, а без практики ранее зазубренное стерлось. Цитата Пустые операторы
Не следует в теле цикла while, а также в операторах if…else использовать пустой оператор: while (!TRMT); // Ожидаем освобождение буфера TXREG = Data; Нечаянно пропущенная ‘;’ обернется неправильным поведением программы. Лучше вместо пустого оператора ставить continue либо {}: while (!TRMT) continue; // Ожидаем освобождение буфера TXREG = Data; |
|
|
29.5.2010, 7:07
Сообщение
#11
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
Имеется в виду while (!TRMT) вместо while (!TRMT); .
Хотя для зацикливания главных циклов while(1) используется, пмсм, так же часто, как и for(;;). |
|
|
29.5.2010, 7:36
Сообщение
#12
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
|
|
|
29.5.2010, 7:53
Сообщение
#13
|
|
внештатный сотрудник Группа: Пользователи Сообщений: 1568 Регистрация: 21.11.2009 Из: МО, Медвежьи озера Пользователь №: 12 |
Про знание АСМ-а соглашусь. Но только изучать его надо после С. Или совместно. никак не могу себя заставить основательно заняться изучением С, несколько раз начинал и сразу забрасывал. какой-то уж больно синтаксис заумный, хотя я понимаю конечно, что для знающего человека он наверное кажется логичным, это всегда так. но тем не менее решаю пока все задачи на асме, даже вот для такой штуки, где казалось бы ввиду наличия пользовательского интерфейса нужен переход на язык высокого уровня, было написано 2,5кБайта честного ассемблерного кода (хотя на С может и не влез бы в мегу8 ): http://electronix.ru/forum/index.php?showt...mp;#entry562585 |
|
|
Гость_MrYuran_* |
29.5.2010, 10:00
Сообщение
#14
|
Гости |
И еще - АСМ портит начинающего программиста сразу. Потом еще долго текст на С будет мало отличаться от текста на АСМ. Лучше он будет похож на асм, чем на бейсик Вот уж действительно, чем можно испоганить неокрепший моск на долгие годы, так это бейсиком. Васик-стайл в сишных программах сразу бросается в глаза. Только недавно вот разгребал несколько проектов, доставшихся по наследству. Да и свои первые тоже без мата править не могу... |
|
|
29.5.2010, 12:34
Сообщение
#15
|
||
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Лучше он будет похож на асм, чем на бейсик Это когда обьявления переменных и пр. по всему телу программы? Авр разработан позже, поэтому гораздо прямее, для него легко (а может быть даже легче, чем на си) пишется на асме. Для пиков писать на асме - лучше даже А Прохожий что на это скажет? Пока вроде вычитал, что в Пиках порты можно выставлять напрямую, а в Авр-ах это усложнено немного... Ну и еще Хотя в принципе о том же... Не, понятно что все работает и разобраться можно... |
|
|
||
Гость_MrYuran_* |
29.5.2010, 15:48
Сообщение
#16
|
Гости |
Это когда обьявления переменных и пр. по всему телу программы? Нет, это когда порграмма написана в одну линию, и временами посылает тебя: GOTO XXX, GOTO YYY... И ты мечешься по тексту, и никак не поймёшь, что же имел в виду аффтор Ассемблер полезно изучать, чтобы понять как работает процессор. Писать на ассемблере не советую категорически. Пример: недавно пришёл в гарантийный ремонт старый прибор (2008г.в. Старый - в том смысле, что на старой платформе - атмел 8253 (не AVR), программа на асме. Мне проще и дешевле оказалось заменить всю плату (теперь на msp430) и немного адаптировать программу под старый протокол обмена, чем зарываться на месяц в асмовые исходники, к тому же ещё писаные другим человеком. Ну и другое: 3 года назад делали всё на атмеле, теперь на техасовских мсп430, я уже заглядываюсь на Cortex-M0 (LPC111x). На асме придётся каждый раз переписывать всё практически заново, от первой до последней строчки. На си - только физический уровень, типа макросов "поднять/опустить ногу" все платформо-независимые части (протоколы обмена, алгоритмы рассчётов, калибровок, общая логика работы) остаются без изменений. Далее. По исходной теме. У нас все приборы проходят сертификцию на безопасность и ещё что-то для внесения в Гос реестр средств измерений. В том числе при испытаниях на ЭМС шарахают по всем выступающим металлическим частям наноимпульсами 4кВ. Вот это, по-моему, не выдерживает практически никто. (за исключением полностью металлического модуля, у которого ещё и корпус заземлён). То есть - шарах! - перезагрузка. Но там и нет такого требования, чтобы выдерживал. Есть - чтобы возвращался в прежнее состояние, вплоть до соответствия показаний на экране. |
|
|
29.5.2010, 17:21
Сообщение
#17
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
В том числе при испытаниях на ЭМС шарахают по всем выступающим металлическим частям наноимпульсами 4кВ. Вот это, по-моему, не выдерживает практически никто. (за исключением полностью металлического модуля, у которого ещё и корпус заземлён). То есть - шарах! - перезагрузка. Но там и нет такого требования, чтобы выдерживал. Есть - чтобы возвращался в прежнее состояние, вплоть до соответствия показаний на экране. Как раз с этим проблем нету - это я делал, еще на Атмеле серии классик, старичке с худшей чем у нынешних помехоустойчивостью... Естественно, корпус выбрал металлический, хотя и с пластиком есть приличная концепция защиты... В принципе - это голая схемотехника, я все промоделировал в начале в микрокапе и все пошло сразу. А интересовало действие ВЧ по воздуху, напрямую на проц , хотя и это наверное, зря... Тоже лечится - почему нет? PS По выступающим - это на искру, у нас было до 20 кв , больше тот пистолет не давал Никаких сбоев, даже когда сеть в здании вышибло искрой напрочь - и то не сбивалось, на аккум перешло... |
|
|
29.5.2010, 18:32
Сообщение
#18
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
Писать на ассемблере не советую категорически. Пример: недавно пришёл в гарантийный ремонт старый прибор (2008г.в. Старый - в том смысле, что на старой платформе - атмел 8253 (не AVR), программа на асме. Мне проще и дешевле оказалось заменить всю плату (теперь на msp430) и немного адаптировать программу под старый протокол обмена, чем зарываться на месяц в асмовые исходники, к тому же ещё писаные другим человеком. Хех. Цитата dec SP А шоб я был здоров так писать. Таких приколов там было преизрядно, на разборки ушло 20 выходных дней! Но получилось же. dec SP ;из подпрограммы вызвал подпрограмму jmp Eror_Parit В другом доставшемся по наследству исходнике, тоже на 51-м асме, в комментариях обнаружились пространные, представляющие художественный интерес, но к делу отношения не имеющие, рассуждения о половых сношениях модемов в процессе установки связи... и ничего сверх того!!! П.С. 8253 фтопку. Дорогой и глюковатый, завести кварц на морозе не у всех получается... Megawin forever! (Мнение могу вскоре поменять, идут испытания... там ещё и 51 от NXP участвуют, тем веры больше, но цоколёвка подгуляла). |
|
|
29.5.2010, 18:55
Сообщение
#19
|
|
посіпака Хунти Группа: Мод Сообщений: 20016 Регистрация: 21.11.2009 Из: Vinnitsa Пользователь №: 11 |
настоящий программер никогда не исправляет чужие программы, а всегда пишет заново свою. ))) Оказывается, я был прав, когда не считал себя настоящим программером - т.к. "вылизывание" сделанного предшественниками есть основная служебная обязанность. Так и железячник (блин, схемотехник) - тоже, оказывается, ненастоящий, и по той же причине. Недавно пришлось впихивать в 2 кБ невпихуемое, на элхе вскользь обсуждалось. Там меня Methane пытался наставить на путь истинный, на предмет выбора контроллера с некоторой избыточностью по части объёма памяти. Рад бы был весьма. Но то ж решают не разработчики... в общем, приходилось занимать области памяти, обычно используемые для обработчиков прерываний, под нехарактерные задачи (несчастные десятки байт) и ещё всякие извраты применять... и таки 112 байт свободных осталось, но там я об этом ни гу-гу, мало ли что придётся ещё прикручивать... само собой, ASM. Вопрос почти не в тему. Вот возился с программатором (ISP-ICP Bridge) под P89LPCxxx - в оригинале объём кода превышает 2 кБ, и поэтому там применили P89LPC921. Переписал то же самое на асме, и оно заработало - меньше 800 байт, умещается в P89LPC917, который на 4 ноги меньше и на 25 центов дешевле. Просмотрел, что и как - получается, что printf столько флеши жрёт??? Интерес, конечно, академический. |
|
|
29.5.2010, 21:04
Сообщение
#20
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
А Прохожий что на это скажет? Пока вроде вычитал, что в Пиках порты можно выставлять напрямую, а в Авр-ах это усложнено немного... Скажу следующее. Система команд должна быть ортогональна (это когда имеется четко заданная структура команды) и симметрична (когда в команде приемник описывается точно так же, как и передатчик). В этом случае можно программировать в чистых кодах. Даже без АСМ. Примером может служить архитектура PDP-11, во многом непревзойденная до сих пор. Наиболее близко к этому делу находится нынче 16-разрядные "моторы" PIC24 и MCP430. Что же касается ARM-ов, то ввиду того, что он делался в надежде переплюнуть INTEL, то изюма в нем нет. Одно поле условного перехода в самой команде чего стоит! Вот и весь выбор, собственно. Сравнение же PIC24 и любого из 8-разрядных AVR будет не в пользу последнего. В силу ряда причин. Если кто хочет подробностей - их есть у меня. Если же говорить о MCP430, то он уступает PIC24 по производительности в виду многотактности большего числа команд. Таким образом, получается, что начинающему эмбеддеру надо реально смотреть в сторону PIC24. Ну и цена PIC24 стремительно приближается к 0. Как-то так... |
|
|
Текстовая версия | Сейчас: 28.3.2024, 14:03 |