Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помехо- и просто устойчивость МК
Шарага > Soft - НЕ железо > Программирование МК
Страницы: 1, 2
orthodox
Вот, решил что пора все же освоить эту тему, хоть светодиодами моргать научиться для начала...
Ну и возник вопрос - как все же у разных МК с помехоустойчивостью...
По питанию - как-то не очень тревожит, защитим если что.
По входам и прочее - тоже контролируемо.

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

Вот я и думаю, что спросил все же глупость...
В конце концов, есть некоторый опыт защищать даже AT89 или как их там, от всего что предусмотрено
сертификацией... Ну, разве что добавлять еще полное экранирование из соображений параноидальности...
И не забывать резисторы в затворах силовых ключей...Никогда и нигде smile.gif Бо помеха от забытия бывает
уж очень лезучая куда хошь...
Прохожий
Цитата(orthodox @ 28.5.2010, 1:35) *
Вот я и думаю, что спросил все же глупость...

Отнюдь не глупость.
К примеру, я проверял свой крайний МК девайс, расположив его в середине работающего силового устройства.
В мире МК существует 2 направления защиты.
1. Схемотехнические методы. Про них Вы и так все знаете. Никаких отличий от силовой электроники нет. Есть микро-нюансы. Но они зависят от задачи.
2. Программные методы. Здесь есть поле для предметного разговора.
Для начала - надо сразу научиться создавать программы без ошибок.
Вот очень хорошая статья на эту тему.
Есть еще мысли на эту тему...
Прохожий
Цитата(Огурцов @ 28.5.2010, 22:55) *
- Добрый день !
- Ассалам алейкум !
- До свидания !!!
(Это такой анекдот, кто не помнит, на вступительных экзаменах, например.)

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


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


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

Касательно защиты от РЧ помех, честно, много чего могу подсказать. Но на первых порах заморачиваться этим наверняка не придётся. А может, и вообще не придётся, смотря какие задачи. Там порой даже некоторая доля шаманства. Вот сейчас без понятия, как поведёт себя американский девайс, собранный в Китае, когда в 20 см от него будет излучаться 0,5 Вт на 916 МГц. При 20 мВт ереси не наблюдалось.
Прохожий
Цитата(Harbinger @ 28.5.2010, 23:59) *
Если кроме шуток, то, собственно, именно C. Без плюсов и решёток. Для старта хватит вполне, а потом, если надо, недостающее приложится.

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

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


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

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

Про знание АСМ-а соглашусь. Но только изучать его надо после С. Или совместно.
А насчет несложно - рекомендую АСМ от i486. Тут Вам не здесь...
Это далеко не PDP11 с ее ортогональной и симметричной системой команд.
Нечто похожее имеем в настоящее время в MCP430 и PIC24/dsPIC.
А программировать без ошибок (алгоритмических) не только можно, но и нужно...
orthodox
Цитата(Огурцов @ 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
Имеется в виду while (!TRMT) вместо while (!TRMT); .

Хотя для зацикливания главных циклов smile.gif while(1) используется, пмсм, так же часто, как и for(;;).
orthodox
Цитата(Harbinger @ 29.5.2010, 8:07) *
Имеется в виду while (!TRMT) вместо while (!TRMT); .

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

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


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

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

Лучше он будет похож на асм, чем на бейсик wacko.gif
Вот уж действительно, чем можно испоганить неокрепший моск на долгие годы, так это бейсиком.
Васик-стайл в сишных программах сразу бросается в глаза.
Только недавно вот разгребал несколько проектов, доставшихся по наследству.
Да и свои первые тоже без мата править не могу...
orthodox
Цитата(MrYuran @ 29.5.2010, 11:00) *
Лучше он будет похож на асм, чем на бейсик wacko.gif

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

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


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

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

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

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


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

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

PS По выступающим - это на искру, у нас было до 20 кв , больше тот пистолет не давал smile.gif Никаких сбоев, даже когда сеть в здании вышибло искрой напрочь - и то не сбивалось, на аккум перешло...
Harbinger
Цитата(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, 19:39) *
настоящий программер никогда не исправляет чужие программы, а всегда пишет заново свою. )))

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

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

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

Ну, даже процитировал полностью...Извиняйте за оверквотинг...
Значицца, такое будет решение. Если братья по разуму подскажут киты,
которые необходимо приобрести для начала экспериментов с лампочками, как обычно - буду параллельно осваивать и PIC24 и кого-то из Mega - вероятно, что-то 16 килобитное или 8 , едва ли надо больше... На Тиньки опуститься на простых задачах, как я понимаю, проще будет...
Кстати, Dragon для AVR поразил - кривость средства от разработчиков - пугает просто...

Ну, значит, накачаю еще и по Пикам литературы... По AVR нашел увлекательной Нажмите для просмотра прикрепленного файлапрям реально качается прямо в мозг со страниц, а если Пик настолько логичен - то писать о нем должны еще интереснее...

Такшта 7-й 7-летний переход сработал, кажется - инфа ложится на мозг, как в молодости...
Правда, пришлось тупо сканировать инет пару ночей чтобы зацепить образ ымбеддера и вжиться в него - но это нормально...

PS Разумеется, подробности желательны весьма.
orthodox
Цитата(Огурцов @ 30.5.2010, 2:36) *
Вот когда пытаются сравнивать AVR8 c PIC24, а то и с ARM32, то это меня жутко забавляет. И радует.

Ну, положим мне-то скоростя пока безразличны.
Аппаратные возможности пока устраивают тоже обычные (странно, кстати, что не любят прикручивать ЦАП - а только ШИМ)...
А волнует только стабильность, которой можно быстро научиться... То есть, где быстрее учатся - там и остановимся...

Кстати, в описании PIC24 впечатлили 24 страницы описания только прерываний и их регистров...
Сколько ж сотен прерываний у них? Используют ли когда их все? И не запутываются?
Слава Богу остальное вроде проще...

Ан нет... И им не чуждо в очень благих целях внести некоторые ...не знаю как назвать...
То есть круто, конечно.... Классно... Но наверное, чем просто не пользоваться таким - лучше, чтобы его и вовсе не было возможно...
Harbinger
Цитата(Прохожий @ 29.5.2010, 22:04) *
Сравнение же PIC24 и любого из 8-разрядных AVR будет не в пользу последнего. 

Смотря какие критерии. Вот понадобилось 3 UART в мелком корпусе (не крупнее QFP-44), так, кроме ATxmega**A4 (там UART 5 штук, ещё и ремапить можно), вообще ничего не нашлось. 
В другой задаче оптимумом оказался восьмиразрядник от Freescale, но выбрали не его, а NXP-шный 51 с целью ускорения работы. (Часть процесса "ускорения" описана несколькими постами выше. На освоение Code Warrior, небось, ушло бы куда меньше времени, и ограниченной бесплатной версии там тоже хватило бы за глаза). У фрискейловского 8 кБ флэши против 2 у NXP, а цена выше на 5 центов, что ли...
MrYuran
Цитата(orthodox @ 30.5.2010, 6:49) *
Ан нет... И им не чуждо в очень благих целях внести некоторые ...не знаю как назвать...

Ну так у силабсов то же самое есть.
Там вообще все выводы подключены через матрицу кросс-соединений.
Очень удобно иногда.
Например, у меня в одном приборе компаратор отлавливает переход напряжения через порог, а потом АЦП замеряет точное значение.
Приходится тащить связь и на компаратор, и на АЦП. Причём расположение соответствующих ног не всегда удобно.
Да и ног надо много. А если бы можно было перекидывать туда-сюда, было бы намного удобнее.
И разводка была бы красивая.
Harbinger
Цитата
Просмотрел, что и как - получается, что printf столько флеши жрёт???
Не поленился проверить - так и оказалось. Ни фига себе разница.
Оригинал:
Program Size: data=103.1 xdata=0 code=2336
После отключения stdio.h и замены printf на самопальный putchar (там выводится максимум 2 байта кряду, так что можно):
Program Size: data=82.0 xdata=0 code=1231 - и чудненько умещается в P89LPC917, с асмом возиться и не стоило!
MrYuran
Цитата(Harbinger @ 30.5.2010, 10:52) *
Не поленился проверить - так и оказалось. Ни фига себе разница.

Это, наверно, без float-ов.
Насколько я помню, полная упаковка на msp430 жрёт около 4к флеши и не меньше кила памяти.
Я его тоже выкинул сразу, как только это заметил.
Harbinger
Цитата(MrYuran @ 30.5.2010, 13:10) *
Это, наверно, без float-ов.
Насколько я помню, полная упаковка на msp430 жрёт около 4к флеши и не меньше кила памяти.
Без них. 4 К на MSP - это в районе 2 К на 51 получается...

Цитата(Огурцов @ 30.5.2010, 10:30) *
Молодцы, я про такую хотелку для авр говорил очень давно.

В иксмегах есть, но очень частичная. В 51 мегавиновских тоже. Помимо прочего - затрудняет реверс схемы. smile.gif
orthodox
Цитата(Harbinger @ 30.5.2010, 13:16) *
Помимо прочего - затрудняет реверс схемы. smile.gif

Ну да, это я тоже заметил сразу.
Я ж так и говорил, что соблазнительно...
Ну ладно, если что - раз отладить - много раз работает...
И что там еще - при сбросе все расположение слетает, кажется? smile.gif
Это я к теме возвращаясь smile.gif
Harbinger
Цитата(orthodox @ 30.5.2010, 17:42) *
И что там еще - при сбросе все расположение слетает, кажется? smile.gif
Вроде да, но после сброса идут процедуры инициализации, которые вернут всё взад. Это уже на усмотрение программиста - некоторые МК позволяют определить причину сброса и в зависимости от неё можно выполнять различные дела.
Прохожий
Цитата(Огурцов @ 30.5.2010, 3:36) *
Вот когда пытаются сравнивать AVR8 c PIC24, а то и с ARM32, то это меня жутко забавляет. И радует.

Сравнение вполне себе ничего.
Ниша у PIC24 и AVR приблизительно одна и та же.
Поэтому и сравнение вполне уместно.
А 16-разрядная архитектура более надежна в плане сбора всяких-разных данных.
Да и вообще на 16 разрядах эмбеддить несколько проще.


Цитата(orthodox @ 30.5.2010, 18:42) *
И что там еще - при сбросе все расположение слетает, кажется? smile.gif

Ничего там не слетает.
Поскольку, доступ к регистрам конфигурации происходит через специальную блокирующую/деблокирующую последовательность действий.
А Вы для начала могли бы пожить и без переназначаемых выводов.
Вот Вам игрушка. Тоже из новых.
Цена 28 выводного варианта с 8 к флеши - 75 руб.

Цитата(orthodox @ 30.5.2010, 6:49) *
То есть, где быстрее учатся - там и остановимся...

Учатся приблизительно везде одинаково.
Просто у PIC24 этот процесс несколько проще ввиду особенностей архитектуры.
Кроме этого, не следует сбрасывать со счета наличие документации и бесплатного С-компилятора без ограничений.
Опять же отладочные средства стоят сущие копейки.
Harbinger
Цитата(Прохожий @ 30.5.2010, 22:42) *
Вот Вам игрушка. Тоже из новых.
Цена 28 выводного варианта с 8 к флеши - 75 руб.

В местных реалиях придётся умножить, навскидку, на 1,75...2,5, если в руб. считать. (Гамма, млин, прайсы засекретила! wink.gif )
orthodox
Цитата(Прохожий @ 30.5.2010, 22:42) *
Вот Вам игрушка. Тоже из новых.
Цена 28 выводного варианта с 8 к флеши - 75 руб.


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

Кстати, если ассемблер осваивать - получится, что на популярные случаи придется
писать функции - процедуры (или собирать чьи-то, тестировать-разглядывать-править и складывать).
То есть, со временем у каждого ассемблер превращается, по сути, все равно в язык высокого уровня, строго говоря...

То есть если контролировать в том же СИ , какие библиотеки подключены, чтобы мусора не набирать -
то в принципе то же самое, так? AVR все эти Меги под IAR затачивались вроде.
Сколько это стоит и что для него нужно из отладочных плат и прочего?

И что нужно для 16 разрядных серий PIC-ов ? То есть, оптимальная среда проектирования, оптимальный компилятор
и оптимальная отладочная-тестовая плата...ну и программатор тоже...
Кстати, что про них почитать, кроме даташитов? Литературы не слишком много нашел пока что...Хотя кое-что есть...
Harbinger
Цитата(orthodox @ 31.5.2010, 4:58) *
Кстати, если ассемблер осваивать - получится, что на популярные случаи придется
писать функции - процедуры (или собирать чьи-то, тестировать-разглядывать-править и складывать).
То есть, со временем у каждого ассемблер превращается, по сути, все равно в язык высокого уровня, строго говоря...

Макроассемблер, типа так. Со временем у каждого накапливается какое-то кол-во процедурок, которые могут быть сложены в библиотеки, а могут и просто так валяться в разных местах... C - это следующая ступенька, в случае с МК сей язык служит чем-то вроде кроссплатформенного макроассемблера.
orthodox
Цитата(Harbinger @ 31.5.2010, 6:46) *
Макроассемблер, типа так. Со временем у каждого накапливается какое-то кол-во процедурок, которые могут быть сложены в библиотеки, а могут и просто так валяться в разных местах... C - это следующая ступенька, в случае с МК сей язык служит чем-то вроде кроссплатформенного макроассемблера.

Ну тогда я про ассемблер просто почитаю, потому что до реального кода будет далеко очень...
А начну на чем-то высокого уровня, по ходу осваиваясь с ассемблером, если понадобится...
Хотя нравится мне сама мова ассемблерная, такая она...вся из себя по-челябински, суровая и красивая...
MrYuran
Цитата(orthodox @ 31.5.2010, 5:58) *
Кстати, если ассемблер осваивать - ...

я бы в таком случае потратил время на освоение какой-нибудь Forth-системы.
Вообще, удивительно, что такой уникальный язык был вытеснен каким-то убожеством типа васика.
Это всё Гейц виноват!
Если использовать forth как макроассемблер, можно писать на асме так же красиво (а может, даже красивее), как и на си.
И при этом иметь полный контроль над системой.
Кстати говоря, я уже не первый год болею идеей встраивания forth-движка в рабочие прошивки.
Для начала - в качестве дебаггера-монитора, а потом, может, и в качестве ядра программы.
Если что-то получится, покажу.
Вот кое-что, для затравки.
Нажмите для просмотра прикрепленного файла
MrYuran
Цитата(Огурцов @ 31.5.2010, 10:04) *
Я тоже. Только предпочел бы шарп, если бы хоть что-то похоже было в исходниках.

Для PIC-ов есть некое подобие, я на элхе выкладывал
Harbinger
Цитата(orthodox @ 31.5.2010, 6:58) *
Хотя нравится мне сама мова ассемблерная, такая она...вся из себя по-челябински, суровая и красивая...

Именно по-челябински, кстати... wink.gif
orthodox
Цитата(MrYuran @ 31.5.2010, 7:22) *

В этом изложении- да. красиво звучит и выглядит.
Собственно, большей частью доработки касаются редактора,
получается можно создать простенький пре-компилятор (или транслятор?)-переводчик, короче...
для перевода в стандартный вид и последующей компиляции привычными средствами?

А вообще - любой привычный язык высокого уровня мог бы быть использован,
если бы не компилировал любую присоединенную библиотеку в проект, а только те
функции, что вызываются в проекте... Ну и еще нужно по нескольку опций на каждую функцию, наверное -
типа контроль отключать по необходимости, для компактности кода...
Или оно так и делается. а я чего-то напутал?
Прохожий
Цитата(orthodox @ 31.5.2010, 5:58) *
Ну да...У нас пока не нашел, под ногами не валяется...
Вообще сильно свежих побаиваюсь, наверное там тоже потом ревизии разные происходят?
Логично было бы выбирать из устоявшихся, обкатанных...
Хотя на данном этапе в общем-то все равно почти...

У Microchip-а здесь ситуация несколько иная. Новые МК уже лишены недостатков старых.
Если сравнивать ерраты от старых МК с относительно новыми, то разница очевидна.
Гаммовские цены смотрим здесь.
Далее вводим коэффициент местности и все.
Обратите внимание на последнюю строку в ссылке.
Там цена на игрушку.
Цитата(orthodox @ 31.5.2010, 5:58) *
Кстати, если ассемблер осваивать - получится, что на популярные случаи придется
писать функции - процедуры (или собирать чьи-то, тестировать-разглядывать-править и складывать).
То есть, со временем у каждого ассемблер превращается, по сути, все равно в язык высокого уровня, строго говоря...

Ассемблер осваивать не надо. Сразу пишем на С.
Для этого:
1. Покупаем книгу.
2. Скачиваем IDE MPLAB.
3. Проходим несложную регистрацию и скачиваем С компилятор.
4. Покупаем дебуггер здесь.
Если не хотите тратить много денег, то можно купить и такой дебуггер.
Его цена пониже.
Цитата(orthodox @ 31.5.2010, 5:58) *
То есть если контролировать в том же СИ , какие библиотеки подключены, чтобы мусора не набирать -
то в принципе то же самое, так?

У Вас устаревшие сведения. Подключается только то, что Вам нужно. В большинстве случаев автоматически.
К примеру, вы работаете с плавающими числами. Так вот, из мат библиотеки подключается только то, что Вы использовали.
Если Вы не применяли деления, то и функция деления подключена не будет.
Цитата(orthodox @ 31.5.2010, 5:58) *
AVR все эти Меги под IAR затачивались вроде.
Сколько это стоит и что для него нужно из отладочных плат и прочего?

Про IAR не совсем все так. Для AVR существуют вполне пристойные бесплатные инструменты, включая GNUС.
А удовольствие "полетать" на PIC24 Вам обойдется в 10 000 руб. В максимуме.
Если ориентироваться на PicKit 3, то в 5 000 руб.
Никаких особых отладочных плат не надо.
Я делал следующим образом.
1. Брал соответствующую задачу.
2. Выбирал под нее нужный PIC24 или dsPIC33.
3. Скачивал требуемый DS на выбранный МК.
4. При этом надо иметь на руках это.
5. Делал плату.
6. Отлаживал плату и писал программу.
Как то так...
orthodox
Книгу скачал на английском и первые главы перевода только нашел, альтернативного варианта...
Поищу купить в магазине, через инет, наверное сложно будет... И смысла нету.
Прохожий
Цитата(orthodox @ 31.5.2010, 22:15) *
Книгу скачал на английском и первые главы перевода только нашел, альтернативного варианта...
Поищу купить в магазине, через инет, наверное сложно будет... И смысла нету.

Еще Кернигана и Ритчи надо.
А чем тот же "О3" не устраивает?
В принципе, должен иметь место подобный укровариант...
orthodox
Цитата(Прохожий @ 31.5.2010, 21:42) *
это-то с детства у мну есть...
Прохожий
Цитата(orthodox @ 31.5.2010, 23:48) *
это-то с детства у мну есть...

С детства низзя.
Надо Second Edition. А это 1988 год.
orthodox
Цитата(Прохожий @ 31.5.2010, 22:58) *
С детства низзя.
Надо Second Edition. А это 1988 год.

У меня было позднее детство...
первую программку написал лет в 30 примерно...

Но для уверенности скачал Second Edition...переводик так себе, с опечатками - но ничего, все понятно...
Да и с детства кое-чего помню, когда-то зубрить пытался, плохо что без практики...


Тяжелое детство, восьмибитные игрушки...
Прохожий
Цитата(orthodox @ 1.6.2010, 0:17) *
Тяжелое детство, восьмибитные игрушки...

Переходите к 16-битным.
Сразу станет легче.
Рекомендую так же посмотреть на событийное программирование и конечные автоматы.
А так же вникнуть в работу по прерываниям.
Получается надежно и верифицируемо.
orthodox
Цитата(Прохожий @ 31.5.2010, 23:24) *
Переходите к 16-битным.
Сразу станет легче.
Рекомендую так же посмотреть на событийное программирование и конечные автоматы.
А так же вникнуть в работу по прерываниям.
Получается надежно и верифицируемо.


Прерывания - не сильно любимая вещь, помнится, когда пытались хоть какое-то подобие реал тайма выжать их РС-шки , все время их запрещали...А они, сцуко, все лезут и лезут...

Вот почитал первую же главу - и огорчился - питание-то трехвольтовое...
Блииин... мечталось 5V, с хорошим переключением рэйл ту рэйл с токами хотя бы миллиампер по 10-20 ...
А так...О переходах в схему теперь заботиться...Указанные методы с подтяжкой... в общем, меня от них еще после
LM211 тошнить не перестало...
Ну у мну ж не батарейное питание, блин...
То есть батарейное, но не до такой же степени...Там грузовик тех батареек...
Там, куда я все делаю - ток холостого ходя 100 мА считается незаметным вообще...
Ну и получить 5 или хоть 10 в - ну никаких проблем... Тем боле, для затворов все равно нужно 15 , так или иначе...
Но это , кажется, холиварная тема - , религиозная? В смысле 3 или 5?

Книга, кстати. хорошая...
Не знаю. насколько полная - поеду на книжный рынок на Петровку, должна быть по 80 грн.
Но первые главы , кто еще не читал вообще - тут: http://piclist.ru/pic24.html ...
Думаю, скоро кто-то выложит и скан с изданной, указанный перевод изменен в сторону строгости изложения.

PS http://piclist.ru/ER-MC-PIC24H-ERRATA_Rev_...ATA_Rev_A2.html - вот это уже устарело или нет? Где брать состояние на момент выпуска конкретного купленного экземпляра чипа? Хотя о чем это я...на сайте производителя, естественно...
MrYuran
Цитата(orthodox @ 31.5.2010, 18:52) *
В этом изложении- да. красиво звучит и выглядит.
Собственно, большей частью доработки касаются редактора,
получается можно создать простенький пре-компилятор (или транслятор?)-переводчик, короче...
для перевода в стандартный вид и последующей компиляции привычными средствами?

Это не редактор, это интерактивная система, зашитая непосредственно в кристалл. То есть, не написав ни строчки своего кода, можно подцепить свою плату к СОМ-порту и иметь доступ во все закоулки контроллера через обычный терминал.
То есть прямо противоположное традиционному направление программирования.
Не сверху вниз, когда для того, чтобы проверить небольшой кусочек, надо иметь более-менее работающую основную программу, а снизу вверх. То есть, написав небольшую процедурку, например, для мигания светодиодом, можно её тут же запустить и увидеть результат.
Причём, компиляция осуществляется "на лету" самой системой, которая внутри контроллера.

Цитата(Прохожий @ 1.6.2010, 0:24) *
Переходите к 16-битным.
Сразу станет легче.

Поздно.
С 8 бит нужно как минимум на кортекс-М0.
По цене - практически никакой разницы.
16р - как-то быстро "отцвели"...
orthodox
Цитата(MrYuran @ 1.6.2010, 7:49) *
Поздно.
С 8 бит нужно как минимум на кортекс-М0.
По цене - практически никакой разницы.
16р - как-то быстро "отцвели"...

Да учитывая, что в больших системах и место есть, и энергии полно - можно Atom туда...
А на самом деле так оно и сделано, просто он обслуживает всю систему, а я для отдельных блоков
подбираю камень - собрать и выдать информацию, возможно - включить-отключить...

При таком списке ошибок, как у PIC-ов , я едва ли поручу ему в работу прибора вмешиваться...
Да и спецы не рекомендуют тоже, с кем поговорил от заказчика...smile.gif
Хотя можно было сэкономить пару микросхем, хоть синус сгенерить ну и по мелочи там...
Кое-что просится, конечно.

Хотя могу и на развесе полностью делать..ретро, панимашь...
Я ж даже драйверов не применяю пока что фирменных...все сам...
Че-то как-то не подходит... Или искать не умею smile.gif

Цитата(MrYuran @ 1.6.2010, 7:49) *
Это не редактор, это интерактивная система, зашитая непосредственно в кристалл. То есть, не написав ни строчки своего кода, можно подцепить свою плату к СОМ-порту и иметь доступ во все закоулки контроллера через обычный терминал.
То есть прямо противоположное традиционному направление программирования.
Не сверху вниз, когда для того, чтобы проверить небольшой кусочек, надо иметь более-менее работающую основную программу, а снизу вверх. То есть, написав небольшую процедурку, например, для мигания светодиодом, можно её тут же запустить и увидеть результат.
Причём, компиляция осуществляется "на лету" самой системой, которая внутри контроллера.


Занятно, я вчера читал про RTOS ы для МК , но это для сложного чего, многозадачность там всякая еще...
У мну задачи попроще...
Да я бы и не связался сразу с этим всем... Надежность надо и предсказуемость,
так что мне не светит сложности делать с первого пинка...
Поstepенно буду наращивать, то есть step by step
Прохожий
Цитата(Огурцов @ 1.6.2010, 5:54) *
А какие преимущества у них перед 32-битниками ?

Преимущества очевидны - емкость кода.
Все константы 16 битные.
В подавляющем большинстве случаев все внешние переменные, с которыми доводилось работать именно такие.
Например, последовательный АЦП - 10 бит. Слово в интерфейсе MODBUS/RTU - 16 бит.
Увеличенная разрядность нужна для реал-тайм расчетов.
Но в этом случае я выберу dsPIC с той же системой команд, но с dsp ядром.
А там уже все 40 битное с распознаванием насыщения и конвейерной обработкой.
А если учесть, что подавляющее большинство команд в PIC24 выполняется за два колебания кварца, то на
целочисленной арифметике PIC24F спокойно "порвет" любой ARM с частотой до 50 Мгц.
Я уже не говорю про PIC24H. Или dsPIC33. ARM с подобными возможностями за эти деньги Вы вряд ли найдете.

Цитата(MrYuran @ 1.6.2010, 8:49) *
Поздно.
С 8 бит нужно как минимум на кортекс-М0.
По цене - практически никакой разницы.
16р - как-то быстро "отцвели"...

Что-то я не нашел приличного Corteх М0 за реальные деньги.
Да и медленные они... А 32 бита далеко не всегда счастье.
Кроме Microchip-а 16 битными процессорами занимается и Maxim-Dallas.
Тот же SGS-Thompson опять же. Да и MCP430 от TI пока еще никто не отменял.
_pasha
некрочиповский Си на пиках
(С18) далеко ушел от стандарта (С99). Использовать мона скрипя зубами. Static в параметрах функции - это ваще ппц smile.gif, но без него страшно жыыыть.
Кортексы будуть М3 лучше. Чтоб не класть свои яйца в чужую корзину. А то атымель или некрочип чихнули - и писец всему бусинес- плану. Как все знают, атымель уже чихнули-с.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.