All streams
Search
Write a publication
Pull to refresh
89
0
Вадим Дерябкин @Vadimatorikda

Инженер-программист

Send message

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

Для меня порог 10 лет. После прохождения 10 лет я начинаю закладывать в устройства прошедшей порог фирмы микроконтроллеры. То, что она в Китае, не страшно. Опять же при условии, что есть надежные поставщики. То есть, тот же Элитан должен их поставлять.

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

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

Тут я точно сказать не могу, но можно связаться с представителями https://www.espressif.com/ и выяснить, как обстоит вопрос.

Тут обычно решается вопрос через поставщика. Дается "приватные" контакты и через них уже идут все уточнения. Не только в российских компаниях.

Мне кажется, "за вас" говорит обычная для профессиональных "микроконтроллерных" разработчиков неприязнь к "ардуинщикам" ;)

Буду откровенен. Неприязнь есть. НО. Рациональность важнее. Если проект выглядит идеально с Arduino внутри, то я ее поставлю. Пример: есть мелкосерийная партия ДВС-ов для мелких аппаратов. Внутри контроллер ДВС на открытом Arduino проекте. Оно не плохо так продается. То есть процесс интеграции выглядил просто как разводка платы под нужные габариты, смена пара ножек в коде, а далее уже все ок. Хотя у Arduino есть весомый плюс над ESP32. Он на AVR. А на AVR чипы есть исчерпывающая документация. Так что даже если что-то в библиотеке или проекте бы пошло не так, то можно залезть и посмотреть, почему. А в случае с ESP, если есть ошибка в модуле, на который нет исходников (например, на дергается нужный бит. Или флаг прерывания не сбрасывается при каких-то условиях), то ты единственное что можешь сделать, так это написать разработчикам с просьбой разобраться в произошедшем.

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

Опять же, напомню. Что данный чип, который вы так любите, неплохой. У него просто своя область применения. Он прекрасно себя зарекомендовал как средство для прототипирования. Также, как Arduino. Он прекрасно подходит для того, чтобы собрать хоть какой-то более-менее работающий прототип в короткие сроки. С этой задачей он справляется прекрасно. Но использовать его вместе с его экосистемой в реальных устройствах нельзя.

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

В своих проектах стараюсь пройти все круги ада. Потому что потом на работе мне становится намного легче работать.

Этот чип я выбрал просто для ознакомления. Цели просто решить задачи не было.

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

А теперь про esp32. У нее закрытый ble и wifi стек. Не очень хорошая документация на периферию в уровне регистров и специфичные средства разработки. Использовать данный SoC в продакшен я не позволю. Почему? Часть причин описал выше. Но есть еще.

  1. Сроки поставки и надежность производителя не ясны.

  2. Нет возможности в случае ошибки в библиотеках оперативно починить.

  3. Не определено время гарантированной поддержки.

Крупные разработчики обычно гарантируют 5/7/10/15 лет поддержки своих микроконтроллеров. Некоторые уже реально более 20 лет поддерживают. А этот чип пока что остается на «поиграться».

А вы выводы после инициализации модифицировали? Там в errata есть как раз проблема с 700 мс ping-ом. Решается доработкой инициализации выводов.

По комментарию выше уже нашел. Но пусть здесь будет для полноты картины.

Ну и в домашних проектах я люблю "лезть в бутылку". И заниматься "байто*бством". Мне просто нравится. На работе же делаю все ровно на том и так, как это требует ТЗ, в котором указана степень ответственности проекта, срок поддержки и прочие важные параметры.

Как я писал в статье, просто для расширения кругозора и строчки в перичене МК в резюме. Про ESP32. Очень не люблю, когда нет возможности все сделать на регистрах без закрытых библиотек.  Это касается как домашних проектов, так и ответственных на работе. Если делать что-то, от чего не зависит жизнь-здоровье и поломка или перезагрузка чего не принесет большой проблемы, то почему бы и не использовать с закрытым кодом)

Компактно, на видел. Но я особо и не искал. Гуглил сразу со встроенным. Спасибо)

Там просто еще сверху свой протокол есть небольшой. Который тоже съедает немного. Ну и ограничение хоть и 80, но я выше 30 проверенных официально не использовал у W5500.

Да. Подделок PIC еще не видел. STM видел, ATMEGA видел. Про переписанный код. Как понимаю, все закрыто? Посмотреть можно только устроившись в компанию?)

А... Это в основном datasheet было... Я его мельком проглядел и далее только с reference manual работал. Буду внимательнее. Спасибо)

Честно признаться, W7500 мне на глаза попался случайно. Когда я в очередной раз полез за документацией на W5500 на сайт производителя спустя долгое время после последнего использования. Там наткнулся на него.

Микроконтроллеры PIC18F67J60 и PIC18F97J60 со встроенным PHY появились давно.

PIC32MX795F512L и аналогичные из этой серии с МАС на борту так же появились давно.

Стек протоколов достаточно хорошо описан и документирован, были курсы по применению ТСР стека и данных микроконтроллеров. Информации очень много. Легко сделать веб интерфейс настроек своего устройства и организовать обмен с сервером.

Даже не слышал о них. В основном только что "PIC уже мертв". Но, думаю, стоит и с ними поработать для расширения кругозора.

А легко ли сделать ВЕБ интерфейс на данном МК? ВЕБ с которого настраивают и управляют устройством?

Как я и сказал в статье, если нет неприятных ощущений от использования в своем проекте неизвестного, небрежно выглядящего, кода, то можно поднять WEB сервер с HTTP достаточно просто.

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

Уже было подобное , называется X-port , даже вмонтированное в разъем RJ45, но не взлетело.

Тоже не слышал. Спасибо. Ознакомлюсь.

Применение в качестве ETH <-> SPI/I2C/UART/PWM это совсем маленький круг задач.

Вынужден согласиться. Я вижу тут дополнительный логгер в flash/eth и конвертер интерфейсов. Еще можно через PWM чем-то управлять.

Если только интегрируют в экосистему Ардуино, может тогда что то получится. Но если будет сложно делать ВЕБ управления своим устройством - то точно никому не нужно.

Сложно будет... В отличии от Arduino (atmega, имею ввиду), тут очень так себе периферия. Но можно и ее хотя бы. Сейчас делать WEB на нем относительно легко с библиотеками. Я только глянул код готового проекта. Но оно... Скажем начистоту. Достаточно медленное. 48 МГц не могут покрыть канал в 100 мегабит. Да и внутри там очень много overhead-а. Копирование вот 1.5 кб части TCP запроса происходит процом, а не DMA. Хотя в это время можно было бы с другого сокета разобрать пакет пришедший. В общем оно требует доведения до ума. Или смириться со скоростью.

Признание этого факта , а также совмещение на кристале МК , которые сложно настраиваются, отталкивает от использования данного МК в своих проектах.

Я его и не защищаю. Я тут тоже пользователь. Можно использовать библиотеку и тогда все станет значительно легче. Она вроде на вид легче чем тот же HAL у ST. Кстати отмечу, что для работы WEB сервера с DHCP очень сильно используется куча. Имею ввиду используется библиотекой. Так что если вам нужно что-то надежное, то все равно придется переписывать...

О, спасибо. Не нашел сам. В документации на W7500P вообще сказано, что даже без этого бита идет на systic CPU_CLK/8. Что, как выяснилось, неправда.

Годно, спасибо. Начал использовать)
Прочитал документацию. Запустил в QEMU. Потыкал в загруз. Есть такой перечень вопросов. В документации как-то не увидел:
  1. Можно ли запускать несколько приложений разом? Как в этом случае идет распределение памяти?
  2. Если приложений запустить можно много, то через что они будут взаимодействовать между собой? Ресурс менеджер как в QNX каком-то или как?
  3. Как отлаживать конкретное приложение в составе образа этой системы? Возможно ли это вообще? Про отладку что-то как-то мало накопал. Не туда сомтрел может.
  4. Есть ли возможность отлаживать отдельное приложение через ETH/GDB удаленно в составе работающей системы?
  5. Использует ли ОС runtime библиотеку? Типа newlib. Очень хотелось бы, чтобы такого не было.
  6. Есть ли какая-то интерграция с cmake? Вот FreeRTOS можно собирать как часть проекта и отлаживать отдельно потоки. А тут как с этим?

В омщем-то концпция интересная. Но документации очень мало. Это отталкивает. То есть непонятно. Вот у меня есть железка. Я на нее хочу эту ОС. Что я получу? Аналог FreeRTOS где нет возможность (предположительно) отлаживать утилиту причем запускать можно только одину утилиту в единый момент врмени без демонов и autoexec файла, или полноценный аналог Linux уровня QNX +-.
Это, если что, не наезд и не обвинение. Просто информации мало и хотелось бы узнать, как обстоят дела. Про модульность и прочее я слышал. Кстати. вроде где-то писали, что для этой ОС можно запускать утилиты отдельно собранные с micro-sd например. Ну я слышал такое. Утверждать не могу. Вот интересно было бы развеять все мифы и в итоге получить какой-то FAQ.
Сейчас читаю описание на вики. Как вообще начать. Просто статьи уровня «А сейчас мы поднимим embox на блюпилке с нуля» я не увидел. Буду по статьям и вики собирать по крупицам. Или есть другой путь и я чего-то не увидел?
Прост ооткрыл git, а там сплошные make-филе. Аж поплохело сначало) Но вот сейчас читаю что да как. Пока интересно.

А насчет в одном потоке. Мне посути и сопраграмм бы хватило для текущего проекта от FreeRTOS. Но они их забросили. Увы.
Забавно и интересно. Давно присматривался к Вашеу ОС. Думаю попробовать на stm32l010 в домашнем проекте. Как раз BSP написал для периферии. Думал снова FreeRTOS, а для потоков сильно жирно. Все же у меня 8 кб RAM на все.
Ну я не видел. У меня дом-работа) Иногда проезжаю мимо илитных районов. Там красиво, да. Но чаще поднимаюсь и вижу ТЭЦ и собак по дороге на работу) Так что нет… Ясное дело, что есть в России хорошие и красивые места. Не спорю. Но видет ли их большинство?)
А если выйти за пределы сталиц и нескольких достопримечательностей и операться на большинство?)

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