IPB

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> помехо- и просто устойчивость МК, кто с чем сталкивался практичекски.
orthodox
сообщение 27.5.2010, 22:08
Сообщение #1


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Вот, решил что пора все же освоить эту тему, хоть светодиодами моргать научиться для начала...
Ну и возник вопрос - как все же у разных МК с помехоустойчивостью...
По питанию - как-то не очень тревожит, защитим если что.
По входам и прочее - тоже контролируемо.

А вот если такой тупой эксперимент - мобильник в режиме разговора или вызова , приближенный к
работающему девайсу? Как повлияет? Есть ли девайсы, что сбросятся или зависнут в таком случае?
Или я глупость спросил? Просто пора определяться уже с выбором да начинать учить систему команд,
так вместо чтоб монетку кидать - решил вот так вот попробовать выбрать...
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 27.5.2010, 22:26
Сообщение #2


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 20016
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Богатая тема... wink.gif
Когда-то научился ресетить очень дубовые в плане помехоустойчивости TMP87 с расстояния нескольких метров. Это был базовый блок радиотелефона, мощность передатчика 1 Вт. Подключал волновой канал, направлял на базовый блок и давал входящий звонок... выходит в передачу и тут же сбрасывается.
Там кое-какая экранировка имелась, в виде металлизации пластикового корпуса, однако.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 27.5.2010, 23:35
Сообщение #3


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Harbinger @ 27.5.2010, 23:26) *
Богатая тема... wink.gif
Когда-то научился ресетить очень дубовые в плане помехоустойчивости TMP87 с расстояния нескольких метров. Это был базовый блок радиотелефона, мощность передатчика 1 Вт. Подключал волновой канал, направлял на базовый блок и давал входящий звонок... выходит в передачу и тут же сбрасывается.
Там кое-какая экранировка имелась, в виде металлизации пластикового корпуса, однако.

Вот я и думаю, что спросил все же глупость...
В конце концов, есть некоторый опыт защищать даже AT89 или как их там, от всего что предусмотрено
сертификацией... Ну, разве что добавлять еще полное экранирование из соображений параноидальности...
И не забывать резисторы в затворах силовых ключей...Никогда и нигде smile.gif Бо помеха от забытия бывает
уж очень лезучая куда хошь...
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 28.5.2010, 20:43
Сообщение #4


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(orthodox @ 28.5.2010, 1:35) *
Вот я и думаю, что спросил все же глупость...

Отнюдь не глупость.
К примеру, я проверял свой крайний МК девайс, расположив его в середине работающего силового устройства.
В мире МК существует 2 направления защиты.
1. Схемотехнические методы. Про них Вы и так все знаете. Никаких отличий от силовой электроники нет. Есть микро-нюансы. Но они зависят от задачи.
2. Программные методы. Здесь есть поле для предметного разговора.
Для начала - надо сразу научиться создавать программы без ошибок.
Вот очень хорошая статья на эту тему.
Есть еще мысли на эту тему...
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 28.5.2010, 21:06
Сообщение #5


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 28.5.2010, 22:55) *
- Добрый день !
- Ассалам алейкум !
- До свидания !!!
(Это такой анекдот, кто не помнит, на вступительных экзаменах, например.)

Этот анекдот, ПМСМ, к делу отношения не имеет.
Уважаемый ortodox выступает в роли начинающего.
В его 19 лет (с которыми я его запоздало поздравляю) заниматься Ассемблером уже невозможно.
Начинать надо сразу с языка высокого уровня, например С.
А там уже давно существуют вполне определенные правила, которые изложены в статье.
И в догонку. Виктор Тимофеев - известный специалист по отладке чужого кода.
Для старта ortodox-у потребуется лишь компьютер с любой С или С++ системой и Керниган вместе с Ритчи.
Да и последующий вопрос с выбором камня решать будет легче.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 28.5.2010, 21:59
Сообщение #6


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 20016
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Цитата(Прохожий @ 28.5.2010, 22:06) *
В его 19 лет (с которыми я его запоздало поздравляю) заниматься Ассемблером уже невозможно.
Начинать надо сразу с языка высокого уровня, например С.


Да ну? Если оно будет в кайф, то очень даже возможно, вопрос только - а зачем? Я в 37 51-м асмом капитально был занялся, и за три месяца "вылизал" два подзаброшенных прожекта, исключительно во внеурочное время...


Если кроме шуток, то, собственно, именно C. Без плюсов и решёток. Для старта хватит вполне, а потом, если надо, недостающее приложится.

Касательно защиты от РЧ помех, честно, много чего могу подсказать. Но на первых порах заморачиваться этим наверняка не придётся. А может, и вообще не придётся, смотря какие задачи. Там порой даже некоторая доля шаманства. Вот сейчас без понятия, как поведёт себя американский девайс, собранный в Китае, когда в 20 см от него будет излучаться 0,5 Вт на 916 МГц. При 20 мВт ереси не наблюдалось.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 28.5.2010, 22:19
Сообщение #7


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Harbinger @ 28.5.2010, 23:59) *
Если кроме шуток, то, собственно, именно C. Без плюсов и решёток. Для старта хватит вполне, а потом, если надо, недостающее приложится.

Согласен. Просто С++ пакет можно эксплуатировать и в С режиме. Чисто в тренировочных целях.
И еще - АСМ портит начинающего программиста сразу.
Потом еще долго текст на С будет мало отличаться от текста на АСМ.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 28.5.2010, 22:26
Сообщение #8


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 20016
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Цитата(Прохожий @ 28.5.2010, 23:19) *
И еще - АСМ портит начинающего программиста сразу.
Потом еще долго текст на С будет мало отличаться от текста на АСМ.
Ага. Наступил. wink.gif

Есть некоторые исключения - диспетчер задач RTOS, в частности. Обычно такие штуки пишутся на асме, с учётом национальных особенностей компиляторов.


Ну и для задач, в которых важен каждый цент и каждый байт, ASM остаётся в силе. Но это уже что-то вроде народного искусства... wink.gif

Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 28.5.2010, 23:29
Сообщение #9


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 29.5.2010, 0:50) *
Еще как имеет. Не представляю себе человека программера, который бы сразу научился писать программы без ошибок. Более того, не представляю себе программ без ошибок. Другое дело, что цена ошибки должна быть минимизирована.
Асм знать обязательно, ибо это 1. не сложно, 2. позволяет понять архитектуру. Огромнейшее спасибо моему первому преподу по программированию, который (персонально) презентовал мне книжку по ассемблеру и архитектуре PDP11, иначе б так я и помер кодером неграмотным.

Про знание АСМ-а соглашусь. Но только изучать его надо после С. Или совместно.
А насчет несложно - рекомендую АСМ от i486. Тут Вам не здесь...
Это далеко не PDP11 с ее ортогональной и симметричной системой команд.
Нечто похожее имеем в настоящее время в MCP430 и PIC24/dsPIC.
А программировать без ошибок (алгоритмических) не только можно, но и нужно...
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 29.5.2010, 6:48
Сообщение #10


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Огурцов @ 28.5.2010, 23:50) *
Еще как имеет. Не представляю себе человека программера, который бы сразу научился писать программы без ошибок. Более того, не представляю себе программ без ошибок.

Да нормально это. Я почитал до половины примерно статью на которую указал Прохожий, это мне все близко - практически все из упомянутого до этого момента было причиной выбора Паскаля вместо Си в свое время smile.gif Не странно, что оно спустя 15 лет все еще актуально smile.gif (ну мы ж не будем подвергать сомнению, что Си- единственно возмложный выбор, я вовсе не хотел его как-то там того...)...
Свободу ограничивать, короче, нужно везде - и в схемах и в языках
(хотя несколько неочевидных глючков, требующих особого внимания, нашлось и в Паскале)

То есть, вполне можно и без ошибок, только поначалу медленно придется писать и тестировать каждый шаг, вот и все.
И не делать сложного, ни в начале ни потом. Хотя я бы предпочел больше ограничений в языке, ну да ладно - сам себя ограничу.

Цитата
Асм знать обязательно, ибо это 1. не сложно, 2. позволяет понять архитектуру.


Да. я уже изучаю. Для AVR. После прочитаю про PIC asm и который логичнее будет - те МК и выберу для работы.
Хотя кажется мне, что AVR популярнее, и это тоже, наверное, причина...Или не причина?

Цитата(Прохожий @ 28.5.2010, 23:19) *
Потом еще долго текст на С будет мало отличаться от текста на АСМ.

А, вот так еще можно? Это на заметку, это нужно будет.



PS Где в первой части примера пропущено ';' ? И что будет делать вставленный 'continue' во второй части примера ?
Вопрос идиотский, конечно, но я еще не зубрил Си, а без практики ранее зазубренное стерлось.
Цитата
Пустые операторы

Не следует в теле цикла while, а также в операторах if…else использовать пустой оператор:
while (!TRMT); // Ожидаем освобождение буфера
TXREG = Data;

Нечаянно пропущенная ‘;’ обернется неправильным поведением программы. Лучше вместо пустого оператора ставить continue либо {}:
while (!TRMT) continue; // Ожидаем освобождение буфера
TXREG = Data;
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 29.5.2010, 7:07
Сообщение #11


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 20016
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Имеется в виду while (!TRMT) вместо while (!TRMT); .

Хотя для зацикливания главных циклов smile.gif while(1) используется, пмсм, так же часто, как и for(;;).
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 29.5.2010, 7:36
Сообщение #12


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Harbinger @ 29.5.2010, 8:07) *
Имеется в виду while (!TRMT) вместо while (!TRMT); .

Щас надел очки - глянул , а там есть ';' ...

Или хотели сказать, что конструкция с 'continue' устойчива даже к синтаксическим ошибкам?
Ну, круто, блин...


Перейти в начало страницы
 
+Цитировать сообщение
stells
сообщение 29.5.2010, 7:53
Сообщение #13


внештатный сотрудник
***

Группа: Пользователи
Сообщений: 1568
Регистрация: 21.11.2009
Из: МО, Медвежьи озера
Пользователь №: 12



Цитата(Прохожий @ 29.5.2010, 1:29) *
Про знание АСМ-а соглашусь. Но только изучать его надо после С. Или совместно.

никак не могу себя заставить основательно заняться изучением С, несколько раз начинал и сразу забрасывал. какой-то уж больно синтаксис заумный, хотя я понимаю конечно, что для знающего человека он наверное кажется логичным, это всегда так. но тем не менее решаю пока все задачи на асме, даже вот для такой штуки, где казалось бы ввиду наличия пользовательского интерфейса нужен переход на язык высокого уровня, было написано 2,5кБайта честного ассемблерного кода (хотя на С может и не влез бы в мегу8 pardon.gif ):
http://electronix.ru/forum/index.php?showt...mp;#entry562585
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 29.5.2010, 10:00
Сообщение #14





Гости






Цитата(Прохожий @ 29.5.2010, 0:19) *
И еще - АСМ портит начинающего программиста сразу.
Потом еще долго текст на С будет мало отличаться от текста на АСМ.

Лучше он будет похож на асм, чем на бейсик wacko.gif
Вот уж действительно, чем можно испоганить неокрепший моск на долгие годы, так это бейсиком.
Васик-стайл в сишных программах сразу бросается в глаза.
Только недавно вот разгребал несколько проектов, доставшихся по наследству.
Да и свои первые тоже без мата править не могу...
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 29.5.2010, 12:34
Сообщение #15


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 29.5.2010, 11:00) *
Лучше он будет похож на асм, чем на бейсик wacko.gif

Это когда обьявления переменных и пр. по всему телу программы?

Цитата(Огурцов @ 29.5.2010, 9:50) *
Авр разработан позже, поэтому гораздо прямее, для него легко (а может быть даже легче, чем на си) пишется на асме. Для пиков писать на асме - лучше даже не пробовать не думать.


А Прохожий что на это скажет?
Пока вроде вычитал, что в Пиках порты можно выставлять напрямую, а в Авр-ах это усложнено немного...
Ну и еще
Прикрепленное изображение

Хотя в принципе о том же...
Не, понятно что все работает и разобраться можно...
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 29.5.2010, 15:48
Сообщение #16





Гости






Цитата(orthodox @ 29.5.2010, 14:34) *
Это когда обьявления переменных и пр. по всему телу программы?

Нет, это когда порграмма написана в одну линию, и временами посылает тебя: GOTO XXX, GOTO YYY...
И ты мечешься по тексту, и никак не поймёшь, что же имел в виду аффтор

Ассемблер полезно изучать, чтобы понять как работает процессор.
Писать на ассемблере не советую категорически.
Пример: недавно пришёл в гарантийный ремонт старый прибор (2008г.в.smile.gif
Старый - в том смысле, что на старой платформе - атмел 8253 (не AVR), программа на асме.
Мне проще и дешевле оказалось заменить всю плату (теперь на msp430) и немного адаптировать программу под старый протокол обмена, чем зарываться на месяц в асмовые исходники, к тому же ещё писаные другим человеком. Ну и другое: 3 года назад делали всё на атмеле, теперь на техасовских мсп430, я уже заглядываюсь на Cortex-M0 (LPC111x).
На асме придётся каждый раз переписывать всё практически заново, от первой до последней строчки.
На си - только физический уровень, типа макросов "поднять/опустить ногу" все платформо-независимые части (протоколы обмена, алгоритмы рассчётов, калибровок, общая логика работы) остаются без изменений.

Далее. По исходной теме.
У нас все приборы проходят сертификцию на безопасность и ещё что-то для внесения в Гос реестр средств измерений.
В том числе при испытаниях на ЭМС шарахают по всем выступающим металлическим частям наноимпульсами 4кВ. Вот это, по-моему, не выдерживает практически никто. (за исключением полностью металлического модуля, у которого ещё и корпус заземлён). То есть - шарах! - перезагрузка.
Но там и нет такого требования, чтобы выдерживал. Есть - чтобы возвращался в прежнее состояние, вплоть до соответствия показаний на экране.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 29.5.2010, 17:21
Сообщение #17


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 29.5.2010, 16:48) *
В том числе при испытаниях на ЭМС шарахают по всем выступающим металлическим частям наноимпульсами 4кВ. Вот это, по-моему, не выдерживает практически никто. (за исключением полностью металлического модуля, у которого ещё и корпус заземлён). То есть - шарах! - перезагрузка.
Но там и нет такого требования, чтобы выдерживал. Есть - чтобы возвращался в прежнее состояние, вплоть до соответствия показаний на экране.


Как раз с этим проблем нету - это я делал, еще на Атмеле серии классик, старичке с худшей чем у нынешних помехоустойчивостью...
Естественно, корпус выбрал металлический, хотя и с пластиком есть приличная концепция защиты... В принципе - это голая схемотехника, я все промоделировал в начале в микрокапе и все пошло сразу.

А интересовало действие ВЧ по воздуху, напрямую на проц , хотя и это наверное, зря...
Тоже лечится - почему нет?

PS По выступающим - это на искру, у нас было до 20 кв , больше тот пистолет не давал smile.gif Никаких сбоев, даже когда сеть в здании вышибло искрой напрочь - и то не сбивалось, на аккум перешло...
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 29.5.2010, 18:32
Сообщение #18


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 20016
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Цитата(MrYuran @ 29.5.2010, 16:48) *
Писать на ассемблере не советую категорически.
Пример: недавно пришёл в гарантийный ремонт старый прибор (2008г.в. smile.gif
Старый - в том смысле, что на старой платформе - атмел 8253 (не AVR), программа на асме.
Мне проще и дешевле оказалось заменить всю плату (теперь на msp430) и немного адаптировать программу под старый протокол обмена, чем зарываться на месяц в асмовые исходники, к тому же ещё писаные другим человеком.
 

Хех.


Цитата
dec SP
dec SP ;из подпрограммы вызвал подпрограмму
jmp Eror_Parit
А шоб я был здоров так писать. Таких приколов там было преизрядно, на разборки ушло 20 выходных дней! Но получилось же. wink.gif
В другом доставшемся по наследству исходнике, тоже на 51-м асме, в комментариях обнаружились пространные, представляющие художественный интерес, но к делу отношения не имеющие, рассуждения о половых сношениях модемов в процессе установки связи... и ничего сверх того!!!
П.С. 8253 фтопку. Дорогой и глюковатый, завести кварц на морозе не у всех получается... Megawin forever! smile.gif
(Мнение могу вскоре поменять, идут испытания... там ещё и 51 от NXP участвуют, тем веры больше, но цоколёвка подгуляла).
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 29.5.2010, 18:55
Сообщение #19


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 20016
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Цитата(Огурцов @ 29.5.2010, 19:39) *
настоящий программер никогда не исправляет чужие программы, а всегда пишет заново свою. )))

Оказывается, я был прав, когда не считал себя настоящим программером - т.к. "вылизывание" сделанного предшественниками есть основная служебная обязанность.

Так и железячник (блин, схемотехник) - тоже, оказывается, ненастоящий, и по той же причине. wink.gif 
Недавно пришлось впихивать в 2 кБ невпихуемое, на элхе вскользь обсуждалось. Там меня Methane пытался наставить на путь истинный, на предмет выбора контроллера с некоторой избыточностью по части объёма памяти. Рад бы был весьма. Но то ж решают не разработчики... в общем, приходилось занимать области памяти, обычно используемые для обработчиков прерываний, под нехарактерные задачи (несчастные десятки байт) и ещё всякие извраты применять... и таки 112 байт свободных осталось, но там я об этом ни гу-гу, мало ли что придётся ещё прикручивать... само собой, ASM.
Вопрос почти не в тему. Вот возился с программатором (ISP-ICP Bridge) под P89LPCxxx - в оригинале объём кода превышает 2 кБ, и поэтому там применили P89LPC921. Переписал то же самое на асме, и оно заработало - меньше 800 байт, умещается в P89LPC917, который на 4 ноги меньше и на 25 центов дешевле. Просмотрел, что и как - получается, что printf столько флеши жрёт??? Интерес, конечно, академический. wink.gif
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 29.5.2010, 21:04
Сообщение #20


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(orthodox @ 29.5.2010, 14:34) *
А Прохожий что на это скажет?
Пока вроде вычитал, что в Пиках порты можно выставлять напрямую, а в Авр-ах это усложнено немного...

Скажу следующее.
Система команд должна быть ортогональна (это когда имеется четко заданная структура команды) и симметрична (когда в команде приемник описывается точно так же, как и передатчик).
В этом случае можно программировать в чистых кодах. Даже без АСМ. Примером может служить архитектура PDP-11, во многом непревзойденная до сих пор.
Наиболее близко к этому делу находится нынче 16-разрядные "моторы" PIC24 и MCP430.
Что же касается ARM-ов, то ввиду того, что он делался в надежде переплюнуть INTEL, то изюма в нем нет.
Одно поле условного перехода в самой команде чего стоит!
Вот и весь выбор, собственно.
Сравнение же PIC24 и любого из 8-разрядных AVR будет не в пользу последнего.
В силу ряда причин. Если кто хочет подробностей - их есть у меня.
Если же говорить о MCP430, то он уступает PIC24 по производительности в виду многотактности большего числа команд.
Таким образом, получается, что начинающему эмбеддеру надо реально смотреть в сторону PIC24.
Ну и цена PIC24 стремительно приближается к 0.
Как-то так...
Перейти в начало страницы
 
+Цитировать сообщение

5 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.3.2024, 14:03