Вадим Дерябкин @Vadimatorikda
Инженер-программист
Information
- Rating
- Does not participate
- Location
- Красноярск, Красноярский край, Россия
- Date of birth
- Registered
- Activity
Specialization
Software Developer, Embedded Software Engineer
Lead
From 250,000 ₽
C++
STM32
Linux
Circuitry
Python
Assembler
Programming microcontrollers
Embedded system
Software development
Object-oriented design
Для меня порог 10 лет. После прохождения 10 лет я начинаю закладывать в устройства прошедшей порог фирмы микроконтроллеры. То, что она в Китае, не страшно. Опять же при условии, что есть надежные поставщики. То есть, тот же Элитан должен их поставлять.
Вы, неверное (могу ошибаться) не разрабатывали оборудование, которое требует сертификации или используется там, где может быть причинен вред здоровью или жизни человека. В таких проектах обязательным условием ставится наличие полного перечня документации на всю внутреннюю подноготную. В особо тяжелых случаях требуется даже проверять внутреннюю структуру чипов на соответствие заявленного. Именно тут появляется Миландр и остальные российские микроконтроллеры (которые обязуются гарантировать то, что продают и заявляют в документации).
Тут обычно решается вопрос через поставщика. Дается "приватные" контакты и через них уже идут все уточнения. Не только в российских компаниях.
Буду откровенен. Неприязнь есть. НО. Рациональность важнее. Если проект выглядит идеально с Arduino внутри, то я ее поставлю. Пример: есть мелкосерийная партия ДВС-ов для мелких аппаратов. Внутри контроллер ДВС на открытом Arduino проекте. Оно не плохо так продается. То есть процесс интеграции выглядил просто как разводка платы под нужные габариты, смена пара ножек в коде, а далее уже все ок. Хотя у Arduino есть весомый плюс над ESP32. Он на AVR. А на AVR чипы есть исчерпывающая документация. Так что даже если что-то в библиотеке или проекте бы пошло не так, то можно залезть и посмотреть, почему. А в случае с ESP, если есть ошибка в модуле, на который нет исходников (например, на дергается нужный бит. Или флаг прерывания не сбрасывается при каких-то условиях), то ты единственное что можешь сделать, так это написать разработчикам с просьбой разобраться в произошедшем.
Теперь про то, что вы реализовали функционал намного быстрее, чем программиста, который писался сам. Тут есть один нюанс. Тот программист, который писал все это сам, если написал все правильно, то оно будет надёжнее, и поддерживать это будет проще. Такой подход я одобряю. Да, он дольше по времени. Да, он выходит дороже. Однако. Такое устройство можно будет поддерживать, на протяжении всей жизни проекта. Или пока не закончится поддержка чипа, на который был построен проект.
Опять же, напомню. Что данный чип, который вы так любите, неплохой. У него просто своя область применения. Он прекрасно себя зарекомендовал как средство для прототипирования. Также, как Arduino. Он прекрасно подходит для того, чтобы собрать хоть какой-то более-менее работающий прототип в короткие сроки. С этой задачей он справляется прекрасно. Но использовать его вместе с его экосистемой в реальных устройствах нельзя.
Однако, если нужно выпустить устройство, поддержка которого ограничена выпуском начальной прошивки, а дальнейшая судьба проекта не важна, или поддержка будет производиться очень на коротком сроке, при этом устройство не представляет опасности для жизни человека, тогда применения данного чипа, будет весьма оправдано.
В своих проектах стараюсь пройти все круги ада. Потому что потом на работе мне становится намного легче работать.
Этот чип я выбрал просто для ознакомления. Цели просто решить задачи не было.
В свое свободное время я стараюсь изучать как можно больше разных мало кому известных архитектур и решений в целом. Вдруг среди них найдётся наиболее подходящее решение под проект, который мы будем делать в следующий раз.
А теперь про esp32. У нее закрытый ble и wifi стек. Не очень хорошая документация на периферию в уровне регистров и специфичные средства разработки. Использовать данный SoC в продакшен я не позволю. Почему? Часть причин описал выше. Но есть еще.
Сроки поставки и надежность производителя не ясны.
Нет возможности в случае ошибки в библиотеках оперативно починить.
Не определено время гарантированной поддержки.
Крупные разработчики обычно гарантируют 5/7/10/15 лет поддержки своих микроконтроллеров. Некоторые уже реально более 20 лет поддерживают. А этот чип пока что остается на «поиграться».
А вы выводы после инициализации модифицировали? Там в errata есть как раз проблема с 700 мс ping-ом. Решается доработкой инициализации выводов.
По комментарию выше уже нашел. Но пусть здесь будет для полноты картины.
Ну и в домашних проектах я люблю "лезть в бутылку". И заниматься "байто*бством". Мне просто нравится. На работе же делаю все ровно на том и так, как это требует ТЗ, в котором указана степень ответственности проекта, срок поддержки и прочие важные параметры.
Как я писал в статье, просто для расширения кругозора и строчки в перичене МК в резюме. Про ESP32. Очень не люблю, когда нет возможности все сделать на регистрах без закрытых библиотек. Это касается как домашних проектов, так и ответственных на работе. Если делать что-то, от чего не зависит жизнь-здоровье и поломка или перезагрузка чего не принесет большой проблемы, то почему бы и не использовать с закрытым кодом)
Компактно, на видел. Но я особо и не искал. Гуглил сразу со встроенным. Спасибо)
Там просто еще сверху свой протокол есть небольшой. Который тоже съедает немного. Ну и ограничение хоть и 80, но я выше 30 проверенных официально не использовал у W5500.
Да. Подделок PIC еще не видел. STM видел, ATMEGA видел. Про переписанный код. Как понимаю, все закрыто? Посмотреть можно только устроившись в компанию?)
А... Это в основном datasheet было... Я его мельком проглядел и далее только с reference manual работал. Буду внимательнее. Спасибо)
Честно признаться, W7500 мне на глаза попался случайно. Когда я в очередной раз полез за документацией на W5500 на сайт производителя спустя долгое время после последнего использования. Там наткнулся на него.
Даже не слышал о них. В основном только что "PIC уже мертв". Но, думаю, стоит и с ними поработать для расширения кругозора.
Как я и сказал в статье, если нет неприятных ощущений от использования в своем проекте неизвестного, небрежно выглядящего, кода, то можно поднять WEB сервер с HTTP достаточно просто.
Вообще, если бы я просто использовал готовую библиотеку и Keil, то всей этой статьи, по сути, и не появилось бы. Потому что используешь функции, в которых непонятно что творится и достаточно. Если бы применял на работе и были бы сильно сжатые сроки, то так бы и делал. А тут, когда есть возможность разобраться, не стал упускать возможности.
Тоже не слышал. Спасибо. Ознакомлюсь.
Вынужден согласиться. Я вижу тут дополнительный логгер в flash/eth и конвертер интерфейсов. Еще можно через PWM чем-то управлять.
Сложно будет... В отличии от Arduino (atmega, имею ввиду), тут очень так себе периферия. Но можно и ее хотя бы. Сейчас делать WEB на нем относительно легко с библиотеками. Я только глянул код готового проекта. Но оно... Скажем начистоту. Достаточно медленное. 48 МГц не могут покрыть канал в 100 мегабит. Да и внутри там очень много overhead-а. Копирование вот 1.5 кб части TCP запроса происходит процом, а не DMA. Хотя в это время можно было бы с другого сокета разобрать пакет пришедший. В общем оно требует доведения до ума. Или смириться со скоростью.
Я его и не защищаю. Я тут тоже пользователь. Можно использовать библиотеку и тогда все станет значительно легче. Она вроде на вид легче чем тот же HAL у ST. Кстати отмечу, что для работы WEB сервера с DHCP очень сильно используется куча. Имею ввиду используется библиотекой. Так что если вам нужно что-то надежное, то все равно придется переписывать...
А можно ссылку на документ?
О, спасибо. Не нашел сам. В документации на W7500P вообще сказано, что даже без этого бита идет на systic CPU_CLK/8. Что, как выяснилось, неправда.
В омщем-то концпция интересная. Но документации очень мало. Это отталкивает. То есть непонятно. Вот у меня есть железка. Я на нее хочу эту ОС. Что я получу? Аналог FreeRTOS где нет возможность (предположительно) отлаживать утилиту причем запускать можно только одину утилиту в единый момент врмени без демонов и autoexec файла, или полноценный аналог Linux уровня QNX +-.
Это, если что, не наезд и не обвинение. Просто информации мало и хотелось бы узнать, как обстоят дела. Про модульность и прочее я слышал. Кстати. вроде где-то писали, что для этой ОС можно запускать утилиты отдельно собранные с micro-sd например. Ну я слышал такое. Утверждать не могу. Вот интересно было бы развеять все мифы и в итоге получить какой-то FAQ.
Прост ооткрыл git, а там сплошные make-филе. Аж поплохело сначало) Но вот сейчас читаю что да как. Пока интересно.
А насчет в одном потоке. Мне посути и сопраграмм бы хватило для текущего проекта от FreeRTOS. Но они их забросили. Увы.