Полезная информация


avatar_UriBas

Продвинутое самодельное универсальное ЗУ на МК

Автор UriBas, 02 Апр. 2018 в 22:43

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Паяка

#324
Цитата: Alex_Soroka от 23 Июль 2018 в 12:39вы сами-то делали с нуля серьезные проекты? нет
Смотря что считать серьёзным. Надёжные, помехоустойчивые устройства с МК и развитой аналоговой частью, работающие без зависаний и сбоев 24/7/365, с учётом температуры, колебаний питания, помех, перенапряжений, переполюсовок входов, утечек и порогов в защитных стабилитронах и Шоттки, свойств каждого компонента, (не обобщённых, а конкретных), разводки земли и сигналов и т.д. - да.

Цитата: Alex_Soroka от 23 Июль 2018 в 12:32не писал развесистых быстрых протоколов обмена "точка-многоточка".
Таких спрутов - нет. Приходилось строить системы с шинной топологией и некритичной скоростью обмена по шине. А применять быстрый асинхронный обмен с и между встроенной периферией - да.

Цитата: Alex_Soroka от 23 Июль 2018 в 12:39для эмбедед программирования надо досконально знать МК и схему строить под задачу
Так и делаю. Беру действующий даташит, причём смотрю и прелиминари, и ерраты, работаю непосредственно с регистрами, либо на ассемблере, либо использую готовые макросы, если точно знаю, как они компилируются. Всегда вычитываю ассемблерный код, прежде чем испытывать прошивку. Но арифметические библиотеки от Microchip всё же хороши. Они же официальные от производителя МК, вылизаны сотнями тысяч применений. Ни разу не подводили, в отличие от библиотек работы с периферией от сторонних источников.

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

Лично я использую компилятор и среду разработки в качестве макроассемблера, чтобы голова не пухла от низкого уровня, а была занята собственно решением поставленной задачи. А чтобы не заморачиваться математикой, применяю либо встроенную арифметику, если точно знаю, как она скомпилируется, либо заменяю проверенной нормированной аппнотной, осознанно встраивая функцию с нужной разрядностью, знаковостью, и т.д. А что касается работы с периферией, всё беру непосредственно из даташита, просмотрев и ерраты. Т.е. из библиотек использую только определение устройства, в качестве сборника алиасов регистров и т.д. Что тоже не мешает перепроверить на соответствие ДШ. На этапе вычитки получившегося ассемблерного кода проверяю адресацию и переключение банков, оптимизирую вручную, контролирую время выполнения.

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

Спойлер
Думаю, эта беседа - не оффтопик, т.к. напрямую касается темы создания продвинутого ЗУ на МК.
GT TF1 60V 20Ah Chilwee DZF

SanSanich

Цитата: Паяка от 23 Июль 2018 в 13:10Думаю, эта беседа - не оффтопик, т.к. напрямую касается темы создания продвинутого ЗУ на МК.
Да всё верно Вы определили. Тут только один человек будет спорить, потому как считает прошивку своей поделки идеальной, а на все указания косяков и недоработок в ней морозится, потому как исправить не в состоянии. Железо можно подправить и самостоятельно или общими усилиями (что и было сделано), а вот ПО нужен либо исходник (там правки делов то на день), либо тупо переписать на своё. Ну и лучше на асме, потому как простенькая.
Цитата: Паяка от 23 Июль 2018 в 13:10Ничуть не спорю, что "подход ардуинщиков" имеет много подводных камней, и для достижения уровня промобразца нужно гораздо большее, чем шилды, макетка и библиотеки от энтузиастов, для которых использование ресурсов и совместимость с другим ПО и железом не регламентированы.
В пимпочку!
ЗУК "ЖУЖА" Самодельный измеритель Rвн https://electrotransport.ru/index.php?msg=1280851

Alex_Soroka

Цитата: SanSanich от 23 Июль 2018 в 20:55
Тут только один человек будет спорить, потому как считает прошивку своей поделки идеальной
у вас и таких поделок нет, одно радиолюбительство и воровство чужих идей.

Alex_N

#327
Интересно, а кто нибудь беспроводной обмен с ардуиной делал ? Есть такая задумка.
...

Паяка

[user]Alex_N[/user], в таком случае можно обойтись и без ардуины. Есть МК и ПЛК со встроенной беспроводной связью, в т.ч. недорогие. Onion Omega2, ESP32, ESP8266... Другой вопрос в пороге вхождения, удобстве программирования и оптимальности кода.
GT TF1 60V 20Ah Chilwee DZF

Alex_N

Дело не в этом. У меня моргалка собрана на ардуине, но основная прога управления находится в ноуте. Вот и появилась мысля сделать управление беспроводным. Типа процесс идёт в другой комнате. Купил на али Wi-Fi приблуду https://ru.aliexpress.com/item/ESP8266-ESP-01-ESP01-Serial-Wireless-WIFI-Module-Transceiver-Receiver-Board-LWIP-AP-STA-for-arduino/2039621350.html?spm=a2g0s.9042311.0.0.1ec433edOGwgdC .
Любая критика Сороки вычищается модератором. Может он ответит почему ? Тем более, что критика по делу, и даже имеет форму совета.

Alex_Soroka

Цитата: Alex_N от 25 Июль 2018 в 08:08
Дело не в этом. У меня моргалка собрана на ардуине, но основная прога управления находится в ноуте. Вот и появилась мысля сделать управление беспроводным.
Ардуина управляет зарядом и одновременно вайфает?
да?
если "да" то забудьте про реалтайм.
или делайте двух-проц систему, одна часть чисто заряд, а вторая смотрит за первой и вайфает.
Иначе будут глюки 100%, особенно если учесть как вы проги под Ардуины пишете из скетчей  :facepalm:

ЦитироватьЛюбая критика Сороки вычищается модератором.
Не любая критика, а оскорбления меня вытираются.
И правильно делает Модератор! задолбали уже борцуны безграмотные...

Яков93

Цитата: Alex_N от 25 Июль 2018 в 08:08
Любая критика Сороки вычищается модератором. Может он ответит почему ? Тем более, что критика по делу, и даже имеет форму совета.
Разве тема про Сороку? Не надо критиковать и обсуждать каких-то отдельных пользователей, критикуйте и обсуждайте технические решения, а не личности тех кто их предлагает. Вот тогда все будет в порядке и по теме.
Для обсуждения кого-либо из пользователей (вежливого, без ругани) есть например "Гаражные войны".

Кass

Цитата: Alex_Soroka от 25 Июль 2018 в 09:38Ардуина управляет зарядом и одновременно вайфает?
да?
если "да" то забудьте про реалтайм.
или делайте двух-проц систему, одна часть чисто заряд, а вторая смотрит за первой и вайфает.


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



Обвел время, за которое выполняется заложенный в данный момент алгоритм. Значение 0 мс говорит о том, что выполняется он за время менее 1 мс. Ну слишком примитивна задача всех алгоритмов ЗУ для него. В более сложных задачах это время может быть 3-12 мс. Более 12 мс не встречал.

Чуть выше стоит время цикла, равное 0.05 сек, или 50 мс. Это говорит о том, что менее чем за 1 мс выполняется основной алгоритм, а далее он стоит на паузе. И вот во время этой паузы осуществляются другие функции, такие как передача по сети, работа ОС, в том числе и работа АЦП, опрос внутренней сети контроллеров и управление сетью (там правда в данном случает 1 контроллер из 1, ибо это примитивный стенд), и может делать что угодно. То есть все работает по циклам. В данном случае цикл выполнения алгоритма 50 мс. В начале цикла читаются значения всех входов, производятся вычисления в соответствии с алгоритмом, потом пауза до конца цикла и запись всех выходов. И новый цикл. При этом каждый цикл имеет свою временную метку, и временную метку имеют все значения, в том числе и передаваемые на сервера диспетчеризации, что очень важно. Ведь передаются значения то по асинхронным каналам, и пакеты переданные позже могут прийти раньше. Поэтому каждое значение по сути является двухмерным массивом вида (значение, время). Вот именно так устроен настоящий реалтайм. Если кто то его организует на Ардуино, и если у МК Ардуино хватит мощи, то проблем не будет.

То что называете реал таймом вы, таковым скорее всего не является. Назвать его можно только с большой натяжкой. :)
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

Гербалайф от всех болезней, Кашпировский лучший врач,  Орифлейм самая лучшая косметика, а МММ самый лучший способ вложения денег. Кто бы спорил. ;)

Паяка

Чтобы не ссориться, лучше вспомним, из чего состоит программа для МК.

Инициализация - подготовка переменных, (т.е. адресов памяти, регистров), периферии, проверка условий при запуске программы, проверка причин перезагрузки...
Основной цикл, Вечный цикл - отработка процедур, с проверками, ветвлениями, и так далее.

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

Обработчик(и) прерываний! - набор процедур, мгновенно (почти) выполняемых при поступлении сигнала с ПНЯ (периферии, независимой от ядра). Обработчики общаются как с ПНЯ, так и с прерываемым ими основным циклом посредством флагов - битов в регистрах и переменных.

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

Иногда главный цикл вообще пустой, всю работу делают обработчики прерываний. Про режимы сна и энергосбережения, то, как они снижают шумы, сторожевой таймер и прочие премудрости разговор отдельный.
GT TF1 60V 20Ah Chilwee DZF

Кass

#334
[user]Паяка[/user], в АСУ ТП практически не используются аппаратные прерывания, окромя таймера того самого аппаратного цикла. Самое важное, что бы чтение входов и запись выходов шло строго через определенное время. Все остальное вторично. В персональном компьютере не важно за какое время выполнится цикл программы. Чем быстрее, тем лучше. При этом каждый новый цикл может выполняться не за то время, за которое выполнялся предыдущий, и будет выполнен последующий. Ну не важно это совсем. А вот в АСУ это основа всего. Поэтому когда для МК пишет программу программист ПК, то там как правило от реалтайма нет ничего. А если пишет вообще любитель, то там может быть все что угодно. Поэтому есть отдельная профессия, программист именно АСУ ТП. Это в корне другое дело, там и мозги иначе настроены. :)

Поэтому если делать именно продвинутое ЗУ, то нужно учитывать особенности программирования именно АСУ ТП. Все таки заряд АКБ и его тренировка - это технологический процессы, и кто же их должен автоматизировать, как не АСУ ТП? ;)
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

Гербалайф от всех болезней, Кашпировский лучший врач,  Орифлейм самая лучшая косметика, а МММ самый лучший способ вложения денег. Кто бы спорил. ;)

Alex_Soroka

Цитата: Кass от 31 Июль 2018 в 17:13
когда для МК пишет программу программист ПК, то там как правило от реалтайма нет ничего.
ну да, Винда просто не дает никаких "прямых связей" с железом - только через свои "прослойки".
ЦитироватьПоэтому есть отдельная профессия, программист именно АСУ ТП. Это в корне другое дело, там и мозги иначе настроены. :)
:facepalm:
:facepalm:
:facepalm: ...ну да, этих "писателей АСУ ТП" на деревьях выращивают, отдельно от всех остальных программистов.
и из другого теста их производят  B-) ;-D

ЦитироватьПоэтому если делать именно продвинутое ЗУ, то нужно учитывать особенности программирования именно АСУ ТП.
:facepalm: какой бред снова...

"АСУ ТП" расшифровывается: Автоматизированная Система Управления Технологическим Процессом.
Где тут слово "реалтайм" записано ? Ась? Касс как всегда - рассуждает о том чего нет.
"управление техпроцессом" это даже обычная оптопара с токовым датчиком внутри обычного БлокаПитания (который в любом классическом ЗУ) . Причем это как раз "реалтайм", аналоговый и настоящий  :hello:
и че-то программистов не требующий...

Кass

#336
Цитата: Alex_Soroka от 02 Авг. 2018 в 14:26ну да, этих "писателей АСУ ТП" на деревьях выращивают, отдельно от всех остальных программистов.

Именно так. В моем ВУЗе это отдельный факультет был.

Цитата: Alex_Soroka от 02 Авг. 2018 в 14:26"АСУ ТП" расшифровывается: Автоматизированная Система Управления Технологическим Процессом.
Где тут слово "реалтайм" записано ? Ась? Касс как всегда - рассуждает о том чего нет.

:-D  Сорока, ну я же приводил цитаты из букваря. Ну неужели сложно осилить букварь?

"Применение систем реального времени[править | править код]
С развитием технологий системы реального времени нашли применения в самых различных областях. Особенно широко СРВ применяются в промышленности, включая системы управления технологическими процессами, системы промышленной автоматики, SCADA-системы..."

"Примеры систем, работающих в режиме реального времени:
АСУ ТП химического реактора;"

https://ru.wikipedia.org/wiki/Система_реального_времени

Попробуйте осилить текста чуть больше, чем расшифровка аббревиатуры АСУ ТП. Не стоит только по названию судить об огромной отрасли, которая для вас далека, а тем более спорить с людьми, которые в этой отрасли не один десяток лет. Практически любая АСУ ТП - это система реального времени. Там это основа всего. Я вот так вот сходу и не могу припомнить платформу, которая бы не была построена на системе реального времени. Ну только если Ардуино, но это конструктор для детей, для обучения, а не промышленная платформа. Все остальное реал тайм. :)

Цитата: Alex_Soroka от 02 Авг. 2018 в 14:26"управление техпроцессом" это даже обычная оптопара с токовым датчиком внутри обычного БлокаПитания (который в любом классическом ЗУ) . Причем это как раз "реалтайм", аналоговый и настоящий 
и че-то программистов не требующий...

Александр, не позорьтесь. Ну если не знаете что такое реалтайм, то лучше спросите. Вы вообще путаете аналоговую технику с системой реального времени. Ну прочтите вы букварь. Системы реального времени, это не аналог, и не то, что выполняет что то максимально быстро. Это система, которая выполняет вычисления строго за определенный интервал времени. Точное значение интервала роли вообще не играет. Хоть за милисукунду, хоть за секунду, хоть за час, но за постоянное время. В продвинутом ЗУ должен быть алгоритм, который выполняет контроллер. Так вот контроллер должен реализовывать систему реального времени, а не оптопара. Понимаете ли в чем дело, система реального времени - это целая система, а не что то столь примитивное, как вы себе это представляете. Поэтому в промышленных контроллерах есть операционная система, что для вас не так давно стало откровением, и вот эта самая ОС и реализует систему реального времени.
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

Гербалайф от всех болезней, Кашпировский лучший врач,  Орифлейм самая лучшая косметика, а МММ самый лучший способ вложения денег. Кто бы спорил. ;)

Vova_n

Сдаётся очередной спор под названием "каждый о своём"  B-) зашедший в тупик.

Кass

[user]Vova_n[/user], да нет никакого спора об АСУ ТП среди инженеров АСУ ТП, то есть среди тех, кто в теме. Абсолютно. Ибо все прекрасно знают требования к подобным системам, знают как это работает, как сертифицируется и сдается. :)  На сколько требуется система реального времени в ЗУ, каждый разработчик решает сам. ИМХО для продвинутого ЗУ она обязательна, причем в общепринятом смысле, а не в том, как понимает это Сорока. В простейших ЗУ ИМХО это не обязательно. Не думаю, что в простейших ЗУ будут реализованы серьезные регуляторы и встречаться функции интегрирования и дифференцирования. Тем более не думаю, что в них будут встречаться SCADA системы и вообще какие то серверы. Да собственно и в продвинутом ЗУ наверное можно обойтись без системы реального времени. На меня можно не равняться. Это у меня валяется множество различных ПЛК, и написать для них прошивку мне не сложнее чем любому написать тут пост на форуме. Поэтому я и использовал такое решение. А так конечно, можно взять какой нибудь продвинутый Ардуино на АРМ МК и делать что то продвинутое. Но о времени цикла лучше помнить. ;)
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

Гербалайф от всех болезней, Кашпировский лучший врач,  Орифлейм самая лучшая косметика, а МММ самый лучший способ вложения денег. Кто бы спорил. ;)

Alex_N

Цитата: Alex_Soroka от 02 Авг. 2018 в 14:26Винда просто не дает никаких "прямых связей" с железом - только через свои "прослойки".
Очередные глупости. Если у Вас не получается, не говорите за всех. Есть такая штука - драйвер называется. Почитайте, может поймёте как ей пользоваться. Ну да вплоть до W ME можно было напрямую работать с портами. Начиная с W NT, только через драйвер. Но и винда не рушится при каждом чихе.

Кass

[user]Alex_N[/user], в принципе нет никаких проблем написать драйвер, который будет обращаться напрямую к железу. Я когда то занимался такой ерундой. Но все равно Винду не заставить работать в реальном времени в общепринятом времени, а не в том, как это понимает Сорока. И проблема не столько в Винде, сколько в самой платформе IBM PC с ее виртуальное адресацией, очередью, прерываниями IRQ и DMA. Все это делает время выполнения вычислений непредсказуемым. У интела же есть процессор для реального времени. Тот же 80186. Но в АСУ практически не использовался. Только в SCSI RAID контроллерах их встречал. Под реал тайм создается изначально иная платформа.
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

Гербалайф от всех болезней, Кашпировский лучший врач,  Орифлейм самая лучшая косметика, а МММ самый лучший способ вложения денег. Кто бы спорил. ;)

Alex_Soroka

Цитата: Alex_N от 06 Авг. 2018 в 18:53
Очередные глупости. Если у Вас не получается, не говорите за всех.
вот вы и не говорите глупости, и перестаньте за других отвечать.
Особенно когда сами не разбираетесь.

ЦитироватьЕсть такая штука - драйвер называется.
И что?
Это не "прослойка"? нет ?
не прослойка между железом и "операционной системой" ? нет ?
...тогда это вы вообще не разбираетесь но лезете что-то тут писать  :ireful:

ЦитироватьНачиная с W NT, только через драйвер.
ну да, про это я и пишу.
Причем нет даже возможности напрямую с таймером системным работать, т.е. автоматически вы всегда "в плавающей лодке" с непонятным лагом.
И драйверы тут не помогут  :hello:

ЦитироватьНо и винда не рушится при каждом чихе.
А не надо рушиться.
Она просто тормозит и лагает, причем лаг "изнутри"(прога внутри Винды) не так просто обнаружить.

Продолжайте верить в "операционки реального времени"  :hello: B-) ;-D
...когда-нибудь, вы очень об этом пожалеете...

Добавлено 08 Авг. 2018 в 12:52

Цитата: Кass от 07 Авг. 2018 в 14:04
У интела же есть процессор для реального времени. Тот же 80186.
СЕРЬЕЗНО ???  B-)
вы это серьезно написали ?  O_O    :facepalm:  :-D ;-D

ЦитироватьНо в АСУ практически не использовался.
Ага  B-) потому что видимо не читали Касса, который собрался на 80186 делать реалтайм и "не знал"...