
Комментарии 6
Claude ничего этого про меня не знал и практически сразу вывел на Artery AT32F435. Чип содержит Cortex-M4F на 288 МГц, имеет 1 МБ флеша, 384 КБ ОЗУ и корпус LQFP64. Совершенно непонятное для меня семейство, как будто клон STM32, но непонятно, насколько полный клон. Сам бы такое не выбрал
А вот интересно, не в Вашем теперешнем случае, а в принципе - можно ли "подмазать" эту Claudю для роста продаж?)))
Очень Интересный опыт!
Недавно пытался при помощи LLM спроектировать аналоговый ЛБП с претензией на прецезионность. Использовал ChatGPT.
Ну не очень как. Он прямо сам признавал. По каким-то узлам на вопросы давал толковые советы. Но вот целиком сделать схему не смог.
Модет аналог просто сложнее?
Нет, просто LLM работает не так, как вы от неё хотите. Алгоритм Трансформера не способен думать и размышлять. Он способен только сопоставить семантику вашего запроса со своими обученными весами и подобрать наиболее вероятное ассоциативное продолжение для этого запроса. Если обучить модель на том, что миром правят рептилоиды, то она и будет подбирать ассоциацию "кто миром правит? рептилоиды".
В качестве исходных данных для обучения в модель могли засунуть учебники, научные статьи, ветки форумов. Собственно при запросе в качестве ответа модель и выдаёт средневзвешенное наиболее вероятное "best practice" решение на основе наиболее встречающихся вхождений. Скорее всего в исходных данных много информации о том, как например устроены цепочки обратной связи, какие ОУ туда лучше подобрать, какое питание соорудить, или о том, как устроены цепи самого силового преобразователя, какие компоненты туда подобрать.
Но как только задаётся какая-то более комплексная задача, скорее всего кончается контекстное окно. Потому что слишком много всего нужно сопоставить, слишком глубоко залезть в различные решения.
Поэтому самым эффективным, в данном случае, будет в одном чате спросить про общую топологию, попросить декомпозировать, в других отдельных чатах подробно проработать каждый узел (при этом разобраться самому! и при этом прикинуться самым глупым и выступать самым строгим критиком) и в третьих отдельных чатах уточнить, как один узел срастить с другим. Только так ИИ становится помощником, а не вредителем, разлагающим мышление и приводящим к ошибкам.
То, что ИИ заменил кодеров, уже ясно.
Пока не заменил даже кодеров, не говоря уже о программистах.
Блин, я думал будет хоть какая-то аналитика, комментарии по типу "вот тут ИИ сделал правильно, а тут - неправильно", выводы. А это просто статья с описанием шагов и действий, ценность сомнительная.
Плюс ко всему, в статье категорически не хватает описательной части самого проекта. Не очень понятно, что это такое. Это девборда для радара? Зачем тогда доп. компоненты и мощный МК, если всё равно всё взаимодействие и обработка происходят через USB. Это девборда для СКУД? Тогда требования по безопасности там несколько другие. Или это всё-таки сенсор присутствия? Зачем тогда 1-wire и остальное, если подобные сенсоры, как правило, устанавливаются незаметно. Непонятно, зачем CAN, к какому оборудованию он будет подключаться. CAN это вообще отдельная область, где надо правильно согласовывать земли, а где-то вообще их гальванически развязывать.
Короче, непонятна мотивация проекта. Какую проблему он решает, какая цель его создания, какие задачи мы ставим перед проектом. Ещё перед тем, как открыть ECAD и IDE, всегда должна быть проработана методология. Если это чисто взять типовую периферию и посмотреть, как с ней справится ИИ, то это одно. Но ведь и этого не заявлено! А другое - это если эта периферия и остальная топология проекта навязана ИИ, вот тут вообще вопросики возникают к прокладке между клавиатурой и монитором.
Начать можно с того, что выбор конкретно этого чипа - это из пушки по воробьям. Если цель это получение дискретных данных о присутствии, то есть куча готовых mmWave радарных модулей, начиная с примитивных RCWL-0516, HB100, заканчивая как более продвинутыми модулями от Waveshare (копеечными), так и более дорогими, но в то же время более функциональными модулями от Seeed Studio. Они все выдают либо дискретные сигналы, либо какие-то данные по UART. Для их обработки хватает либо Cortex-M0+, либо, если нужна доп. периферия типа CAN/USB - Cortex-M3. Выбранный чип же, скорее подходит под какие-то сверхуниверсальные задачи, где вот прям сырые данные нужны, по типу обработки жестов, как например в Pixel 4.
Вряд ли устройство сегодня занято обычным presence check, завтра перенесено в палату и программно переключено в измерение пульса и дыхания, а послезавтра переключено в считывание жестов. Если это приложение однозадачное, если установка стационарная, то использование чего-либо выше, чем готовые модули, это реально экономически нецелесообразно.
Ну окей, выбрано такое железо. В статье не сказано о том, как подавались промпты, в виде комплексной задачи, либо же с разбиением на подзадачи. Проблема электронного болвана в том, что его контекстное окно видит ситуацию "сверху", и не позволяет без дополнительных запросов докопаться до мышей и выяснить целесообразность и корректность того или иного решения. Выбор датчика тому пример.
В частности, стоит взять этот чип и заглянуть в PCB Layout Guidelines, это вообще база для любой разработки, чего ИИ сделать не в состоянии. 4-слойка, полигоны земли, 0402 - это всё отлично. Но насчёт трассировки дорожек ничего сказать не могу, так как делать это было лень, однако есть важный утерянный момент.
Помнится, одним из первых моих коммерческих проектов было создание трекера движений человека на базе IMU. И тогда ничего не понимающий я первокур зафигачил все IMU на длиннющие провода. По итогу эти провода ловили всё, что попало, встроенный ADC в IMU выдавал какой угодно бред с дичайшим шумом, а не данные. Ну, магистранты на этом всём по итогу модель обучили, какую-то даже минимальную точность оно выдавало, проект с натягом завершили, деньги получили, забыли. Спустя несколько лет я снова столкнулся с IMU, на этот раз в разрезе dead reckoning, и тут очень сильно заморочился на тему качества исходных данных. Потому что они блин очень важны! Ты, в конце концов, не будешь понимать, дело в кривых алгоритмах, в фильтрах, или банально в том, что полезных без шума данных всего 4-5 бит.
Так вот, смею предположить, исходя из того, что не знаю предназначение проекта, что это всё затеяно скорее ради поиграться с радаром. На этот случай в layout guidline крайне рекомендуется положить на плату "electromagnetic bandgap (EBG)" - специальную сеточку из заземлённых падов и via, чтобы заэкранировать радар от шумов платы. Избавляться от сеточки, при этом - компромисс либо в размерах платы, либо в потере чувствительности там, где она и не нужна (например при грубой классификации при подвесе не потолке). Как я понимаю, лимитов по размеру платы особо не было, структуры не были посчитаны и не были размещены, а это тот самый халявный импрувмент, без которого может значительно пострадать программная часть.
Не могу сказать, 8 дней на плату это много или мало, но есть ощущение, что с набранным ритмом и набитой рукой подобный проект за несколько вечеров раскидать можно. Но тут у каждый работает по-своему, для кого-то это ускорит процесс, а кому-то сильно затормозит.
Однако не стоит отрицать того, что с прошивкой оно достаточно быстро разобралось, не имея собственных бойлерплейтов можно быстро собрать прототип, но на продакшн это ни в коем случае тянуть не может.
Что касается применения МК - Artery это широко известная в узких кругах фирма, они стоят копьё, вроде бы даже в РФ официально возятся (но по поставкам сейчас сложно сказать, ибо у Компэла и STM32 появились в оптовых объёмах по приемлемым ценам). Но честно говоря работа с непривычным семейством всегда выливается в сложность адаптации и дальнейшей поддержки, потому что с ростом проекта кончается контекстное окно и в код льётся кучу повторений и артефактов. ИИ это обычно весьма податливое существо и надо было заставить обосновать выбор МК и продавить привычное.
А ещё касаемо SPI, который не завёлся, я на 100% уверен, что дело в соплях, а не задержках. 74AVC по спекам спокойно жмут до 500 МГц. Потыкайте осциллографом на той частоте, на которой не работает, и увидьте потерю формы сигнала.
Выбор питания тоже весьма странный. LDO следует применять с умом, а в каскадах вообще не стоит применять. Как минимум, в каскаде квадратично складывается собственный тепловой шум, что ухудшает шумовые характеристики. Задача LDO же наоборот, задавить ВЧ-помехи. Как максимум, самый первый LDO в цепочке получает кааапец какую тепловую нагрузку, потому что проходные токи складываются. Дело в том, что у LDO ток входа равен току потребления на выходе, а разница напряжений уходит в тепловое рассеивание, на то это и линейник. У радара максимальное потребление заявлено в 200 мА, которые переходят на 3-вольтовый LDO. МК тоже под 200 мА может кушать. А ещё на 3.3 висит дисплей, который под 100 мА может кушать. Итого 0,5А на ровном месте, которые на 3-вольтовом LDO превращаются в (5,0-3,3)*0,5 = 0,85 Ватт тепла, что превышает штатные 0,8 Вт для AMS1117, температура кристалла, при этом, будет минимум 50 градусов, что достаточно много для одного МК, экранчика и датчика. Флешку и остальную ерунду не учитываем, они мизер кушают.
Плюс мы работой грузим регуль 24->5, который вынужден эти 0,5А преобразовывать на сжигание в тепло. А сам регуль XL1509E супер древний, огромный, с низкой рабочей частотой (намоточные изделия крупнее). Это решение не эффективно в 2к26 году.
Я попытался уложиться в 0.5 бакса (XL1509E+AMS1117 на LCSC). В идеале питание должно быть следующим:
1. 24->5, это у нас CAN и 1-wire. CAN будет кушать до 50-100 мА (с запасом), 1-wire не кушает ничего.
(под 1-wire, кстати, можно было не изобретать велосипед, а взять готовый драйвер)
2. 24->3.3, это будет отдельная цепочка, потому что а почему нет. Токи там, как мы знаем, до 0,5А.
3. 3.3-1.8, в идеале, конечно, для лучшего PSSR и снижения теплорассеивания подбирать входное у LDO максимально близко к его dropout, типа 2.5 вольта, но нам оно тут на плате и не требуется.
Итого на 24->5 и на 24->3.3 можно повесить, например пару RY8401 (C2912960), это синхронный бак на 800 кГц, 42В предельно по входу, 600 мА выходного тока. Корпус мизерный, SOT-23-6. Стоят по $0.1, плюс к ним пару индукторов на 4.7 мкГн (ещё по $0.05), в обвязку пару резиков и 3 кондёра.
Можно помощнее - HM8342T (C48982461), 1.7А, но 500 кГц.
На 3.3-1.8 LDO можно оставить как есть, хоть RT9013 и EOL, подобрать что-то другое не проблема.
Из статьи лично я могу составить вывод, что экспириенс получился хоть и интересный, но электронщиков ещё не скоро заменят, а опыт и умение думать своей головой продолжат цениться больше всего. ИИ всё ещё остаётся помощником, за которым нужно очень и очень много следить.
Скоростная разработка электроники