Обновил комп, радуюсь теперь 10 поколению intelCore и монику с диагональю 28" (3840х2160), 32Гб оперативки и очень-очень быстрому nvme-ssd на 500гб =)
Под это дело пришлось переустановить систему, и важно запомнить несколько моментов, потому что на восстановление работы с девайсами ушло 2 вечера:
1) esp32 норм всё, ставим приложение https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension и оно само всё за тебя делает.
2) а вот с stm32 прям печаль. Перебрал все мануалы в интернетах и кучу плагинов для vscode и уже опечалился, но никак не мог скомпилить проект.
А проблема с stm32 в какой-то несовместимости последних версий arm-gcc и build-tools. В итоге решил это таки образом:
- Установил STM32CubeIDE
- Посмотрел как она компилирует
- Нашёл внутри папочки с тулзами, положил их отдельно по красивому пути
- Прописал пути в PATH
STM32CubeIDE - прям колхозный комбаин после которого хочется помыть руки, но там есть прикольные штуки которые можно будет позже посомтреть
Под это дело пришлось переустановить систему, и важно запомнить несколько моментов, потому что на восстановление работы с девайсами ушло 2 вечера:
1) esp32 норм всё, ставим приложение https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension и оно само всё за тебя делает.
2) а вот с stm32 прям печаль. Перебрал все мануалы в интернетах и кучу плагинов для vscode и уже опечалился, но никак не мог скомпилить проект.
А проблема с stm32 в какой-то несовместимости последних версий arm-gcc и build-tools. В итоге решил это таки образом:
- Установил STM32CubeIDE
- Посмотрел как она компилирует
- Нашёл внутри папочки с тулзами, положил их отдельно по красивому пути
- Прописал пути в PATH
STM32CubeIDE - прям колхозный комбаин после которого хочется помыть руки, но там есть прикольные штуки которые можно будет позже посомтреть
Развёл плату с камушком Stm32G031K8T6.
Главная задача разведения - понять можно ли это сделать на 2х слоях, и на какие ноги для этого придётся посадить функционал.
Спортивный интерес - уложить это в минимальные размеры. Зачем на плате енкодер я хз на самом деле, при заказе не буду заказывать его распайку. вместо енкодера всегда можно сделать просто 3 кнопочки.
Увлекает этот процесс, как будто сидишь и решаешь ребус.
После того как плата разведена - можно тестировать функционал камня на отладке nucleo уже сразу используя правильные ноги. Это следующий шаг моего пути.
Главная задача разведения - понять можно ли это сделать на 2х слоях, и на какие ноги для этого придётся посадить функционал.
Спортивный интерес - уложить это в минимальные размеры. Зачем на плате енкодер я хз на самом деле, при заказе не буду заказывать его распайку. вместо енкодера всегда можно сделать просто 3 кнопочки.
Увлекает этот процесс, как будто сидишь и решаешь ребус.
После того как плата разведена - можно тестировать функционал камня на отладке nucleo уже сразу используя правильные ноги. Это следующий шаг моего пути.
3D-шка без дисплея.
Тут правда дырочек под модуль не хватает, они отъехали вбок вместе с дисплеем.
Очень хочется взять и заказать плату, чтобы она побыстрее приехала, чтобы потыкать различные моменты и поправить косяки которые наверняка есть в разводке. И чтобы следующую плату уже заказать как предсерийный образец =)
Но тут как всегда есть одно НО =)
Микроконтроллеры на lcsc кончились 😭😭😭😭
Ну чтож, будем следить за их наличием по ссылке
https://lcsc.com/product-detail/ST-Microelectronics_STMicroelectronics-STM32G031K8T6_C432203.html
Тут правда дырочек под модуль не хватает, они отъехали вбок вместе с дисплеем.
Очень хочется взять и заказать плату, чтобы она побыстрее приехала, чтобы потыкать различные моменты и поправить косяки которые наверняка есть в разводке. И чтобы следующую плату уже заказать как предсерийный образец =)
Но тут как всегда есть одно НО =)
Микроконтроллеры на lcsc кончились 😭😭😭😭
Ну чтож, будем следить за их наличием по ссылке
https://lcsc.com/product-detail/ST-Microelectronics_STMicroelectronics-STM32G031K8T6_C432203.html
Опишу процесс заказа на JLC-PCB, но заказывать не будут, т.к. и процессоров нет, и драйверы нужные закончились. Сначала всё очень просто: Качаем BOM И PickAndPlace файлы с тем что он предлагает по умолчанию.
При нажатии на
Вобщем всё примерно как в установке софта =) далее-далее-согласен-далее
При нажатии на
[G]
гербер он предлагает не качать, а сразу пойти на jlc-pcb и заказать там.Вобщем всё примерно как в установке софта =) далее-далее-согласен-далее
Люблю чёрный цвет =)
На одном из шагов прикрепляем скаченные файлы.
На одном из шагов прикрепляем скаченные файлы.
А вот и сами файлы BOM и PickAndPlace, если кому-то интересно на них посмотреть. Обычные CSVшки которые можно открыть блокнотом или екселем.
На следующем шаге проходимся по всем компонентам, и выбираем нужную деталь. На скрине ошибка - там есть нужный резистор, но я его не заметил. А вот при поиске конденсаторов нужно быть внимательным.
В первую очередь ищем среди basic-parts. В таком случае китайцам не нужно будет перетыкать туда-сюда катушки с компонентами и цена будет значительно ниже на малых партиях. Кроме рассыпухи в basic вполне находятся транзисторы, кренки, микросхемы заряда лития, и наверно ещё много что.
Но к сожалению в базовых частях не находятся цветные диоды размером 0402 =)
Если не можете найти в этом уродском поиске - можно поисать на lcsc и в строку поиска уже вбивать Mfr. Part No или LCSC Part No.
Для поиска резисторов удобно под ругой держать знак Ω.
В первую очередь ищем среди basic-parts. В таком случае китайцам не нужно будет перетыкать туда-сюда катушки с компонентами и цена будет значительно ниже на малых партиях. Кроме рассыпухи в basic вполне находятся транзисторы, кренки, микросхемы заряда лития, и наверно ещё много что.
Но к сожалению в базовых частях не находятся цветные диоды размером 0402 =)
Если не можете найти в этом уродском поиске - можно поисать на lcsc и в строку поиска уже вбивать Mfr. Part No или LCSC Part No.
Для поиска резисторов удобно под ругой держать знак Ω.
2021-11-27_01-26-19.png
438.9 KB
С платы убраны "дорогие" детали:
- микроконтроллер (нет в наличии)
- драйвер (нет в наличии)
- ds18b20 он и не нужен, сделан для упрощения написания ПО
- енкодер
Итого цена $90 или по $9 на плату.
Ну халява же за такую работу.
Ещё будте $20+ за доставку, что тоже не критично.
Заказывать пока не буду, подожду пока появятся драйвер и микроконтроллер.
- микроконтроллер (нет в наличии)
- драйвер (нет в наличии)
- ds18b20 он и не нужен, сделан для упрощения написания ПО
- енкодер
Итого цена $90 или по $9 на плату.
Ну халява же за такую работу.
Ещё будте $20+ за доставку, что тоже не критично.
Заказывать пока не буду, подожду пока появятся драйвер и микроконтроллер.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#жизнь без фритоса.
Для переезда на новый процессор (который когда-нибудь появится в наличии) составил план тестирования функционала.
И первая задача традиционно - моргание лампочкой.
Вместе с простой задачей пришли непривычные для меня сложности:
в процессоре всего
Зато тут аж 6 таймеров, и вроде как задачи можно распределить между ними.
Традиционное HAL_GPIO_TogglePin со "скважностью 50%" выглядит мерзко, и никуда не годится.
Для глаза гораздо приятнее другой тип взмаргивания, который описывается примеро так:
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
osDelay(50);
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
osDelay(200);
Для этого таймер нужно останавливать, менять ему период счёта и начинать заново.
Вроде просто, но когда пытаешься делать это в первый раз - занимает время.
Для переезда на новый процессор (который когда-нибудь появится в наличии) составил план тестирования функционала.
И первая задача традиционно - моргание лампочкой.
Вместе с простой задачей пришли непривычные для меня сложности:
в процессоре всего
8kBytes of SRAM
и этого хватит только 2 две задачи во фриртосе =).Зато тут аж 6 таймеров, и вроде как задачи можно распределить между ними.
Традиционное HAL_GPIO_TogglePin со "скважностью 50%" выглядит мерзко, и никуда не годится.
Для глаза гораздо приятнее другой тип взмаргивания, который описывается примеро так:
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
osDelay(50);
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
osDelay(200);
Для этого таймер нужно останавливать, менять ему период счёта и начинать заново.
Вроде просто, но когда пытаешься делать это в первый раз - занимает время.