byte_shifter
80 subscribers
177 photos
20 videos
24 links
hardware developer notes by @kishovRasul
Download Telegram
Сегодня, например, наткнулся на интересное видео про стоимость разработки и производства смартфона.
Разбор от Nothing.
https://www.youtube.com/watch?v=bny2NJkJGXc
👍3
Пользуетесь ChatGPT?
У Atmel (ныне принадлежащей компании Microchip) есть линейка контроллеров, которые программируются с помощью интересного интерфейса UPDI (Unified Program and Debug Interface). Примечательно, что для программирования используется всего один провод, что очень удобно для контроллеров, у которых, например, всего 8 выводов.
Однако информации об этом интерфейсе и инструментов для работы с ним не так много.
Сегодня я работал с ним, всё работает. Но вот что забавно: настраивал Raspberry Pi для управления этим UPDI через Python, чтобы прошивать ATtiny1616 из системы автоматического тестирования, занимался трaблшутингом с помощью ChatGPT, и когда я попросил его сформировать команду для чтения fuse-байтов, он предложил следующую строку:
pymcuprog -d attiny1616 -t uart -u /dev/ttyUSB0 -b 19200 read --memory fuses

Здесь присутствует параметр -b, который в большинстве подобных библиотек задаёт baud rate (скорость обмена данными), но не в данном случае. В этой библиотеке -b означает количество байт, которые необходимо прочитать.
Так вот, мало того что он не справляется, так еще этот Advanced Reasoning o1, даже когда я ему прямо объясняю где и в чем ошибка, оказывается не способен ее пофиксить.
👍2
Забавно, только что мне оказался доступен o3-mini-high (так совпало) и вот он справился.
Потестим еще.
👍2
Channel name was changed to «byte_shifter»
Pogo пины для тестирующего стенда.
Надо же на чем-то закончить на сегодня и лечь спать не слишком поздно
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Отлаживаю софт.
ssh + vscode + raspberry pi очень удобная связка, оказывается
👍1
В общем, я завершил работу над двумя стендами для автоматического тестирования, хотя и столкнулся с некоторыми трудностями.

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

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

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

Подумываю в дальнейшем делать аналогичные отверстия и на своих платах.
❤2👍1
Создаю устройство, которое, помимо своей основной задачи, должно ещё и более-менее точно отслеживать состояние заряда собственного аккумулятора.

Обычно принято считать, что в такой задаче нет ничего сложного: просто измеряешь напряжение, и всё. Например, если есть 4,2 В — значит, заряд 100%, а если 3 В — то 0%.

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

Интересный пример — график справа. На нём наглядно показано, что одно и то же напряжение 3,85 В может соответствовать совершенно разным уровням заряда: 2%, 50% и 72%.

Конечно, такой подход не обеспечивает абсолютной точности, зато он очень прост и дешев в реализации. При этом точность всё равно оказывается намного выше, чем при банальной аппроксимации диапазона напряжений (от 3 до 4,2 В) в шкалу от 0 до 100%. В большинстве практических задач пользователь даже не заметит этой небольшой погрешности.
👍3👀1
А вот и рендеры девайса.
Уже жду их с Китая)
Эти контакты слева для маленького OLED дисплея
❤4🔥2👍1👀1
Еще одна плата - драйвер двигателей на MOSFET транзисторах.
2 Н моста по 4 транзистора, выход для лампы, 2 входа для управления и 2 потенциометра для настройки режима работы.

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

Уложился в 2 слоя, компоновка получилась красивая. Нижний полигон под землю. Верхний слой по краям сверху, снизу и слева под +24В для транзисторов, а обратные токи мостов по центру платы.

Теперь, пока все эти платы едут, время писать для них прошивки)
🔥4❤2👍1👀1