byte_shifter
80 subscribers
177 photos
20 videos
24 links
hardware developer notes by @kishovRasul
Download Telegram
Channel created
Channel name was changed to «Hardware developer notes»
Часто за собой замечаю, что год прошел как-то незаметно. Вроде делал какие-то интересные штуки, чему-то научился, нашел что-то прикольное. А вот попытаешься вспомнить что же именно и ничего в голову так сразу и не приходит. Время идет, воспоминания не всегда сохраняются.
Так что постараюсь сюда скидывать интересное, что зацепило, что сделал, что вдохновило. Сугубо профессиональные заметки, чтобы потом проще было вспомнить, а кому-то, может быть, будет интересно почитать.
👍2👏1
Сегодня, например, наткнулся на интересное видео про стоимость разработки и производства смартфона.
Разбор от 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