Перейти к содержанию
    

Устойчивый к ЭМ помехам МК

>> чем учить язык нового веяния с модным названием.

тем более что компиляторов и трансляторов для него нет и наверное не будет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

От лукавого этот Рефлекс.

 

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

 

Согласитесь, это не самое главное. Тем более, что есть английский вариант того же самого. Главное там в другом. Там есть понятия "процесс" и "состояние". Конечно, в предложенном варианте оно еще далеко от совершенства и для МК в чистом виде не подходит.

 

 

Для комфортного программирования систем промышленной автоматизации в языке предусмотрены операции с временными интервалами и средства описания связей с датчиками и управляющими органами.

 

 

В контексте контроллеров, неужели так сложно написать модуль который будет заниматься тем, что вызывать требуемые функции тогда когда надо? Это в буквальном смысле займет 2 (от силы 3) экрана текста на C. Зачем для этого язык изобретать-то? Про средства описания связей с датчиками, гм.. это уже уровень АРМов.. Тока всяко проще применить систему, GUI которой позволяет мышкой все связывать, чем учить язык нового веяния с модным названием.

 

Операции с временными интервалами мне тоже не нравятся. Тем более, что в контексте PLC их просто нет. Временные булевы переменные там организуются точно так же, как и все остальные.

Если говорить о МК, то описание его конфигурации на ЯВУ, на мой личный взгляд, не такая плохая вещь.

Насчет "связывать мышкой". Тот же Микрочип одно время включал в свой МПЛАБ визуальный конфигуратор с мышкой, картинками, выходным кодом и т. д. В последней версии МПЛАБА этого нет. Почему?

В AVRStudio, я этого вообще не видел. Правда, может быть плохо искал?

 

 

тем более что компиляторов и трансляторов для него нет и наверное не будет

 

Но помечтать-то можно? В принципе, я о том что нужен язык высокого уровня, основанный на автоматных методах программирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно узнать Ваше мнение про это Это. Если, конечно, Вы найдете время. На мой взгляд, вполне пристойная основа для языка автоматного программирования МК.

Мне самому было бы интересно :) Времени нет, а по поверхности не хочется плыть.

 

Одно важное обстоятельство. У меня заказчик импортный. Я отправляю ему исходники, утверждая, что все написано на обычном ЯВУ и любой студент, закончивший европейскую high-school, разберется и подправит в случае необходимости, если меня грохнут где-то в дороге. :ninja: Оба делаем вид, что верим, что в этом можно разобраться :biggrin: Учат ли ЭТО в университетах Германии, я не знаю, но догадываюсь ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>> В последней версии МПЛАБА этого нет.

не удержался - есть там все. VDI называется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>> В последней версии МПЛАБА этого нет.

не удержался - есть там все. VDI называется.

Виноват, недосмотрел. И как часто Вы его применяете? Я лично -практически никогда. Поэтому особо и не искал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а я ни практически, ни теоретически не применяю =) не нужен он мне

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>> Делал на IAR PIC

реальные пацаны используют для PIC16 HI-TECH. Компилятор у IAR чисто для галочки.

 

>> дополнительные сложности с проектированием для PIC

>> улучшением помехоустойчивости?

Я вот что-то никаких особых сложностей не замечаю. А про помехоустойчивость - тут же терли не однократно... Узнать бы еще, как измерить "помехоустойчивость" =)

 

>> "я не пытаюсь наезжать на микрочип и его продукцию"

дык и я не пытаюсь защищать микрочип и его продукцию =)

 

Из моего опыта - в Турции есть пару лабораторий, которые проводят тестирование аппаратуры на соответствие СЕ. Тестов около 10, в частности очень интересными для меня были тесты на устойчивость к помехам.

1 Импульсы 15мс по питанию (различные комбинации между корпусом, землей и питанием а также с разной полярностью ) напряжением 1кВ, 2 кВ, 4кВ (domestic, light industry, heavy industry).

2. Импульсы на все входные выходные линии 500В, 1кВ, 2кВ (но не напрямую, а на изоляцию проводов - выглядит как металлическая пластина 1м длинной к которой пристегиваються все кабеля и после этого на пластину подается напряжение)

3. Наводки в 2х поляризациях в диапазоне 80МГц..1ГГц 3 В/м

 

В общем первые 2 теста наиболее злые. Atmega128у рвали просто на части. Причем я старался сделать плату с учетом помехозащищенности. Сейчас с нефиговым входным фильтром плата держится на середине между light and heavy industry. На 3кВ плата перегружаеться раз из 4-5 тестов.

Также часто атмега теряла флеш во время, CRC оказывался битым. Бутлоадер жил, а образ основной проги терялся. Это самый большой вопрос с AVR!

 

Рекомендую ренесас. Железка с отсутствием намека на правильную разводку, без заземления, и с посредственным входным фильтром жила все время. Я не смог убить ее в лаборатории.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Из моего опыта - в Турции есть пару лабораторий, которые проводят тестирование аппаратуры на соответствие СЕ

Такие лаборатории и в России есть, в Москве в часности.

На 3кВ плата перегружаеться раз из 4-5 тестов.

Да, тоже такое наблюдал.

Также часто атмега теряла флеш

А такой гадости не было ни разу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такие лаборатории и в России есть, в Москве в часности.

 

Да, тоже такое наблюдал.

 

А такой гадости не было ни разу.

По поводу потери флеш AVR. Я использую бутлоадер, и соответственно не закрываю Application секцию лок битами против инструкции SPM. Может дело в этом. Так как на моей памяти 5-6 раз CRC образа основной программы оказывалась другой (те битый образ). При тестах это было отчетливо видно, 10 раз перезагрузка и на 11 просто не стартует. Это при тестах. В жизни видел такое 2 раза. Продали железку - не работает через какое то время, проверяют - CRC error. Такое конечно не часто случаеться, но вот сейчас готовлю партию из 1000 железок, и честно - переживаю что через полгода штук 5 будет у меня на столе с подобной проблемой. Так что буду пересаживаться на ренесас во всех ответственных вещах. Я под глубоким впечатлением от его дубовости в отношении помех.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу потери флеш AVR. Я использую бутлоадер, и соответственно не закрываю Application секцию лок битами против инструкции SPM. Может дело в этом. Так как на моей памяти 5-6 раз CRC образа основной программы оказывалась другой (те битый образ). При тестах это было отчетливо видно, 10 раз перезагрузка и на 11 просто не стартует. Это при тестах. В жизни видел такое 2 раза.

Проблема бутлоадера. Недостаточная защита против случайного входа. Дело в том что при таких помехах не флеш срубает, а PC прыгает в произвольную область флеша особливо когда на плате есть внешний RAM и в нем храняться callback'и. Иногда при таком сбое PC попадает на функцию записи страницы флеш, и пишет "мусор" из RAM.

У меня были слеты флеш, до тех пор пока не внес проверку, подтверждующую достоверность записи, непосредственно перед стартом записи страницы.

 

Так что буду пересаживаться на ренесас во всех ответственных вещах.

если не пофиксить bootloader, то и на renesas'e будет слетать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто достаточно хорошо знаком не с одним-двумя типами МК, а с побольше. Может кто сможет рекомендовать контроллер, который стоит использовать в системах с жесткой ЭМ обстановкой? Может какие-нибудь военные или для космических разработок или еще что.

В ближайшем будущем проведу исследования (может уже существует???) всех наиболее распространненых марок контроллеров на их ЭМС.

Нехорошее у меня предчуствие, что малопотребляющие современные контроллеры (AVR MicroPower, MSP и др) намного менее устойчивы к ЭМ помехи чем старые, более токопотребляющие МК.

 

...если говорить только о контроллерах (без обвязки), то чем меньше степень интеграции на кристале тем МК более устойчив к электромагнитным излучениям, т.е. какой нибудь I8051 легче переживет то что не переживет at89s

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема бутлоадера. Недостаточная защита против случайного входа. Дело в том что при таких помехах не флеш срубает, а PC прыгает в произвольную область флеша особливо когда на плате есть внешний RAM и в нем храняться callback'и. Иногда при таком сбое PC попадает на функцию записи страницы флеш, и пишет "мусор" из RAM.

У меня были слеты флеш, до тех пор пока не внес проверку, подтверждующую достоверность записи, непосредственно перед стартом записи страницы.

если не пофиксить bootloader, то и на renesas'e будет слетать.

Renesas даже не перегружался, а тестировали на пределе своих возможностей. Девайс состоял из 2х плат - LCD_240x128_B_TMI_VZTSA и платы с ренесасом. Вис лсд, вис контроллер тачскрина, портилась память данных лсд, в общем все рушилось кроме ренесаса. Он не перегрузился ни разу и продолжал работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вис лсд, вис контроллер тачскрина, портилась память данных лсд, в общем все рушилось кроме ренесаса.

О чем и речь, навесите внешний RAM начнет и renesas сбоить.

 

А в отношении теста AVR - попробуте повторить тест удалив bootloader.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вот, для программирования задач управления на МК, по моему скромному мнению, нужен свой, в некотором смысле специализированный ЯВУ.

 

Вот несколько из них, позаимствованых из практики применения PLC:

- программный цикл один,

- ссылки назад недопустимы, т. е. программа может выполняться только в одном направлении в пределах цикла,

- как следствие, операторы цикла do{ }while( ); for( ; ; )( ); while( ){ } недопустимы.

Вообще то, это вопрос более серьезный и, чтобы полностью изложить сей подход надо бы собраться с мыслями...

Напоминает правила MISRA C. Все уже изложено до нас :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

M16C гораздо более развитое ядро чем AVR, тaм имеются прерывани на большинство событии связанные с зависанием процессора, например на остоновку кварца, неизестнои команды, выхода за пределы разрешаемои памяти и много подобного, т.е. программист имеет средства для исправления проблем. и технологическии M16C разработан именно для сложнои EMC oбстановки, например порты с уменшенным EMC и кристал с увеличеннои емкостю. все это и в буклетах описано. с негативнои стороны флеш ограниченными параметрами и цена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...