Мы читаем наверное разную классику просто!
SWO в своё время оказалось единственным средством отладки стека TCP/IP в режиме исполнения — это о чём-то говорит.
Тут промышленное программное обеспечение, которое взаимодействует с платой. А то, что оно без рюшечек — уж извините, вам шашечки или ехать всё таки.
А вот насчёт картинок — да, надо исправить, чтобы было видно полностью. Если уж очень горит — то ПКМ-Открыть в новом окне. И будет вам счастье полноценного просмотра. Но статью буду переделывать…
Меня совсем не дядя Петя зовут — не надо тут хамить. Отладку перепробовал на STM32 почти всю — так что не надо мне писать, что делать. Я рассказываю про то, что такое промышленная система и как она работает -и даю вам возможность её опробовать. Не интересно — не читайте, я ведь никого не заставляю. Совсем никого. А минусанул за то, что надо читать то, о чём пишут.
А если серьёзно — лифты до сих пор клепают на КР1816ВЕ35 или КР1816ВЕ39. Так что не удивляйтесь, что работает немного не так, как бы хотелось. Завод изготовитель называть не буду из этических соображений.
Я тоже отношусь к ардуино не просто с предубеждением — имею опыт демонтажа поделок на оных платках. И люди реально имели проблемы из-за таких автоматизаторов. А менял на контроллеры, которые делает контора — и весьма успешно, ни одного отказа за больше чем 2 года. Дело в том, что этот бинарник — это отладочная версия, на ней откатываем функции на старом железе. Но рабочее железо уже давно другое -для малых версий STM32F3, серии постарше уже F4 или H7 с поддержкой Ethernet и прочими плюшками. Всякую рассыпуху датчиковую — на STM32F0. Непонятна реакция только ваша — вроде я ничего не продаю, просто даю возможность попробовать интересное решение. Что не так?
Вы перед тем, как употреблять слово «глупость» подумайте. Если вы читали статью, то там описано — я прямо в среде программирования написал нужную мне логику, скомпилировал, загрузил либо частично, либо полностью, и тут же смотрю работу программы и значения переменных. И мне для этого не надо вообще ничего делать — никаких лишних телодвижений!
А вот что надо в вашем случае, чтобы точно также посмотреть онлайн программу через SWO? Это вообще не одно и то же, вообще!!!
А про привязку к программатору я и не писал — это вы выдумали вообще. А printf в наши дни — это откровенная ардуинщина и костыли.
Beremiz неплох, когда речь идёт о получении грантов) А вот хотя бы один реально работающий проект с онлайн отладкой, загрузкой и выгрузкой мне что-то не попадался, который работает хотя бы 10 минут без отваливаний. Если у вас есть ссылка — поделитесь, посмотреть будет интересно. Или я напишу под него интерпретатор даже, если проект будет стоящий.
Кстати вот по вашей ссылке цитата-«Таким образом Beremiz преобразует LD, FBD, SFC или IL в код на ST, а MatIEC конвертирует ST в C. Код С компилируется на конечную платформу.» То есть выгрузить программу из контроллера без вариантов. Грустно это…
Я ведь только предлагаю готовую прошивку — у вас есть свобода выбора, всегда можете выбрать любой другой вариант. Мне кажется, что важно, чтобы были хотя бы какие-то варианты — хотя бы такие. А так конечно — для серьёзной системы вообще хорошим тоном будет все своё иметь, и операционку тоже.
И именно поэтому я и пишу — это всё для ленивых, кто готов применять готовое. Тем более что на самом деле — 5 минут и готово.
А кстати, где-то на гитхабе мне попадались исходники ПЛК — если найду ссылку, кину.
Только знаете, хотелось бы добавить вот что — если вы напишете программу на С, то у вас отладка такой программы будет возможна только через отладчик типа STLink или JLink, и вам придётся перезапускать процессор для подключения. Тут же онлайн — отладка как раз и рассчитана на то, чтобы не прерывая процесса управления, можно было и смотреть, что происходит, и изменять значения онлайн. При этом время цикла управления практически не изменяется. Это один из очень больших плюсов программируемых логических контроллеров.
Совершенно верно! Именно поэтому я и показал плату, которую использую в качестве отладочной. На самом деле этот пост для тех, кому лень или нет желания писать такую реализацию на С — берёшь готовое и вуаля.
Коллега, по вашей плате у меня есть вопрос — есть ли на другой стороне платы паттерн «сборки» защиты от статики по линиям USB? Если нет — то не мешает поставить, сэкономит кучу нервов в будущем.
А вот что касается не работающего USB — вот в этом месте поподробнее расскажите, что и как у вас получилось. Вопрос для меня очень интересный.
>Кстати, открою еще один секрет: в C8T6 на самом деле 128 кБ ПЗУ.
Это не секрет совершенно. Как и разгон умножителями ядра. Но опять же повторюсь — я не собираюсь применять решений, которые являются отхождением от технической документации производителя. И никому не рекомендую — потому что катастрофические отказы проявляются в самый неподходящий момент. Репутация качественного производителя зарабатывается годами, а вот потерять очень легко.
А что касается китайцев — то у них процветает перемаркировка чипов, сам несколько раз с этим сталкивался. Поэтому советую всем, кто берёт у них, всегда тщательно проверять, что они купили.
Спасибо за комментарий, коллега. Но опять же, тут вопрос был про шасси контроллера — а не про схему «синей» платки. Схема, которую вы опубликовали, давно гуляет по инету. Вот в pdf формате.
>Вообще не понимаю, зачем было изобретать велосипед если заменой пары конденсаторов(и возможно кварца) можно было решить проблему.
Опять же, я использую сейчас STM32F103CBT6, которая не устанавливается на китайцах. «Сдувать» старый чип и ставить новый — увольте, не мой метод. Поэтому свой дизайн, своя плата. Гарантия того, что всё будет так работать, как я хочу на тех компонентах, которые я хочу, а не которые поставил мне дядюшка Ляо в подвале. И заводская сборка. Ценник конечно получается выше — но это расплата за то, что я и мои коллеги будут спокойно спать по ночам. И клиенты будут уверены и довольны, что купили у нас, а не у других.
День добрый. Мы пока ещё не решили, будет или нет в открытом доступе схема. Вроде и секрета нет — посмотрите, плата «колхозная», всё просто.Давайте так -если решим, что будет в свободном доступе, то вам обязательно напишу.
>Именно так реализовал загрузчик на TI TMS320, только чуть проще: начало пакета и конец всегда заранее известны по framing bytes, поэтому таймер и прерывание лишнее.
Я вообще-то описал протокол, для которого применяется такой подход.А вы мне за уши притянули загрузчик, который не обсуждается тут вообще.
>Провели тестирование модулей конкурентов написанных неизвестно где и не известно как?
Я вообще-то так тестирую свои разработки. И всем советую — чем больше тестов проведёте, тем меньше будет проблем. Чужие мне тестировать и не надо. Я же не занимаюсь сертификацией)))
>Я смотрю вы загадки любите. Вот вам одна:
Ваши загадки мне просто не интересны. Без обид — не хочу своё время тратить впустую на Марио.
Вот ссылка — там и почитайте https://geektimes.ru/post/285570/
А когда мне потребовалась доп. память для STM32, я просто на SPI2 прикрутил микруху 23K256 — и всё. Летает как самолёт.
У меня, как у «программиста», возник вопрос — то есть вы только что предложили каждый раз по прилёту символа дёргать стек протокола в прерывании с высоким приоритетом?
Правильно будет проверить буфер на переполнение, потом в него запихать принятый символ, перезапустить аппаратный или виртуальный таймер тайм — аута, очистить флаги и быстренько свалить. А стек звать по тайм- ауту. Мы говорим кстати о modbus RTU, и если будете писать его реализацию в будущем — вспомните строки выше.
А если серьёзно — ОСРВ была выбрана не просто так. Провели тестирование — взяли 4 модуля, вместо датчиков подсунули константы, и запустили тест опроса мастером с примерно 500 000 транзакций. Мастер работал с минимальными тайм-аутами.
А теперь вопрос к Вам, как к знатоку того, что делается внутри — какие величины ошибок в показаниях интеграторов были получены? И как это можно объяснить?
Правильный ответ тут
Для варианта с ОСРВ отклонения были менее 0.5%, а для варианта без — более 10%. Причём тест повторяли более 20 раз — и если для ОСРВ характер ошибок повторялся, то для варианта без — они были хаотичны. Надеюсь, причина выбора теперь стала понятной.
Прошивка без ОСРВ применена в батарейном таймере полива — там операционка точно будет лишней.
Да — использовал Atmel Studio 6.2. Для прошивки — avrdude. Даже операционку под nano портировал. Потом разжился уже Atmel ICE — но стало понятно, что платформу пора менять. И мой коллега дал на пару дней платку с stm32 и ST-Link. С тех пор и подсел(
Спасибо за предложение, но лично я воздержусь от mbed)) Потому как я пишу чисто и красиво на С)))И периферию предпочитаю ручками настраивать. Конечно, по времени это достаточно долго, требует вдумчивого чтения документации — зато есть уверенность, что всё работает так, как я хочу. Благо доков и аппнотов достаточно)
И началась древняя как мир война сторонников и противников ОСРВ для встраиваемых систем)))
Вы слово в слово( кроме «датчика») повторили ответ службы технической поддержки одной российской именитой компании, когда я им сообщил, что их модуль ввода — вывода в режиме modbus RTU требует тайм — аут между запросами аж в 500 мсек! Вот в этом случае воробей оказался Годзиллой)
А датчик — то не простой на самом деле. Он не просто производит преобразование физических величин, а ещё и производит их первичную обработку, причём довольно сложную. И при этом отвечает на запросы по шине в чётком соответствии со стандартом modbus RTU.
Конечно, на самом деле вопрос избыточно или нет применять ОСРВ для вроде бы простых применений будет стоять всегда. Для себя, как для разработчика, я сделал выбор.
SWO в своё время оказалось единственным средством отладки стека TCP/IP в режиме исполнения — это о чём-то говорит.
Тут промышленное программное обеспечение, которое взаимодействует с платой. А то, что оно без рюшечек — уж извините, вам шашечки или ехать всё таки.
А вот насчёт картинок — да, надо исправить, чтобы было видно полностью. Если уж очень горит — то ПКМ-Открыть в новом окне. И будет вам счастье полноценного просмотра. Но статью буду переделывать…
А вот что надо в вашем случае, чтобы точно также посмотреть онлайн программу через SWO? Это вообще не одно и то же, вообще!!!
А про привязку к программатору я и не писал — это вы выдумали вообще. А printf в наши дни — это откровенная ардуинщина и костыли.
Кстати вот по вашей ссылке цитата-«Таким образом Beremiz преобразует LD, FBD, SFC или IL в код на ST, а MatIEC конвертирует ST в C. Код С компилируется на конечную платформу.» То есть выгрузить программу из контроллера без вариантов. Грустно это…
И именно поэтому я и пишу — это всё для ленивых, кто готов применять готовое. Тем более что на самом деле — 5 минут и готово.
А кстати, где-то на гитхабе мне попадались исходники ПЛК — если найду ссылку, кину.
А вот что касается не работающего USB — вот в этом месте поподробнее расскажите, что и как у вас получилось. Вопрос для меня очень интересный.
Это не секрет совершенно. Как и разгон умножителями ядра. Но опять же повторюсь — я не собираюсь применять решений, которые являются отхождением от технической документации производителя. И никому не рекомендую — потому что катастрофические отказы проявляются в самый неподходящий момент. Репутация качественного производителя зарабатывается годами, а вот потерять очень легко.
А что касается китайцев — то у них процветает перемаркировка чипов, сам несколько раз с этим сталкивался. Поэтому советую всем, кто берёт у них, всегда тщательно проверять, что они купили.
>Вообще не понимаю, зачем было изобретать велосипед если заменой пары конденсаторов(и возможно кварца) можно было решить проблему.
Опять же, я использую сейчас STM32F103CBT6, которая не устанавливается на китайцах. «Сдувать» старый чип и ставить новый — увольте, не мой метод. Поэтому свой дизайн, своя плата. Гарантия того, что всё будет так работать, как я хочу на тех компонентах, которые я хочу, а не которые поставил мне дядюшка Ляо в подвале. И заводская сборка. Ценник конечно получается выше — но это расплата за то, что я и мои коллеги будут спокойно спать по ночам. И клиенты будут уверены и довольны, что купили у нас, а не у других.
Вы просто не читаете, что вам пишут. Считаю, что смысловая нагрузка диалога потеряна.
>Перед загрузчиком был вопрос. Где ответ???
Это не поле чудес.Научитесь понимать, что вам пишут. А не искать выгодный себе смысл.
Удачи, коллега.
Я вообще-то описал протокол, для которого применяется такой подход.А вы мне за уши притянули загрузчик, который не обсуждается тут вообще.
>Провели тестирование модулей конкурентов написанных неизвестно где и не известно как?
Я вообще-то так тестирую свои разработки. И всем советую — чем больше тестов проведёте, тем меньше будет проблем. Чужие мне тестировать и не надо. Я же не занимаюсь сертификацией)))
>Я смотрю вы загадки любите. Вот вам одна:
Ваши загадки мне просто не интересны. Без обид — не хочу своё время тратить впустую на Марио.
Вот ссылка — там и почитайте https://geektimes.ru/post/285570/
А когда мне потребовалась доп. память для STM32, я просто на SPI2 прикрутил микруху 23K256 — и всё. Летает как самолёт.
Правильно будет проверить буфер на переполнение, потом в него запихать принятый символ, перезапустить аппаратный или виртуальный таймер тайм — аута, очистить флаги и быстренько свалить. А стек звать по тайм- ауту. Мы говорим кстати о modbus RTU, и если будете писать его реализацию в будущем — вспомните строки выше.
А если серьёзно — ОСРВ была выбрана не просто так. Провели тестирование — взяли 4 модуля, вместо датчиков подсунули константы, и запустили тест опроса мастером с примерно 500 000 транзакций. Мастер работал с минимальными тайм-аутами.
А теперь вопрос к Вам, как к знатоку того, что делается внутри — какие величины ошибок в показаниях интеграторов были получены? И как это можно объяснить?
Прошивка без ОСРВ применена в батарейном таймере полива — там операционка точно будет лишней.
Вы слово в слово( кроме «датчика») повторили ответ службы технической поддержки одной российской именитой компании, когда я им сообщил, что их модуль ввода — вывода в режиме modbus RTU требует тайм — аут между запросами аж в 500 мсек! Вот в этом случае воробей оказался Годзиллой)
А датчик — то не простой на самом деле. Он не просто производит преобразование физических величин, а ещё и производит их первичную обработку, причём довольно сложную. И при этом отвечает на запросы по шине в чётком соответствии со стандартом modbus RTU.
Конечно, на самом деле вопрос избыточно или нет применять ОСРВ для вроде бы простых применений будет стоять всегда. Для себя, как для разработчика, я сделал выбор.