Приехал китайский RP2040
Ещё в начале апреля приехала ко мне китайская версия Raspberry Pi Pico:

Припаял не очень аккуратно :) всё-таки паяльник в руках держал ещё в школе и по роду деятельности, не приходилось с ним иметь дело.
На борту платки имеется 16Мб флеш-памяти и RGB светодиод на базе WS2812B.
Несмотря на то, что в Pico Rp2040 целых два ядра Cortex-M0+, удивило наличие 4-х спецпроцессоров (PIO) ввода-вывода которые подключены к 8-ми очередям FIFO, которые в свою очередь можно читать через DMA или напрямую. Для программирования PIO есть даже свой ассемблер в SDK!
Несмотря на наличие PIO, решил зажечь RGB-светодиод по классике: подергав ногой GPIO, благо в M0 есть счетчик циклов процессора и протокол управления WS2812 не сильно сложный:

Конечно, с наскоку сразу не получилось выдержать четкие тайминги, поскольку не известно точно сколько занимает циклов вычисление условий при сравнении значений счетчика циклов и его чтение. Поэтому пришлось расчехлить китайский аналог "Saleae logic analyzer" и увидеть там полный треш:

После подбора значений задержек светодиод завелся и порадовал:
Далее я перешел к китайскому экранчику который на али продается под названием Air101-LCD:

Что-то вразумительное нагуглить не удалось, кроме упоминания того что это какой-то там аналог экранчика на базе st7735s.
Собрал я это дело на макетке и путем компиляции разного рода примеров работы с st7735 включил его:

Далее выдал цветные квадраты и подобрал смещения строк и столбцов, дело в том что физический экран находится как бы по середине фреймбуфера и видимая часть изображения начинается не по координатам (0,0)

Потом, нашел какой-то простой шрифт 5х7:

Изменил порядок битов и получил желаемое :)

Теперь займусь подключением вот такого зверя:


Припаял не очень аккуратно :) всё-таки паяльник в руках держал ещё в школе и по роду деятельности, не приходилось с ним иметь дело.
На борту платки имеется 16Мб флеш-памяти и RGB светодиод на базе WS2812B.
Несмотря на то, что в Pico Rp2040 целых два ядра Cortex-M0+, удивило наличие 4-х спецпроцессоров (PIO) ввода-вывода которые подключены к 8-ми очередям FIFO, которые в свою очередь можно читать через DMA или напрямую. Для программирования PIO есть даже свой ассемблер в SDK!
Несмотря на наличие PIO, решил зажечь RGB-светодиод по классике: подергав ногой GPIO, благо в M0 есть счетчик циклов процессора и протокол управления WS2812 не сильно сложный:

Конечно, с наскоку сразу не получилось выдержать четкие тайминги, поскольку не известно точно сколько занимает циклов вычисление условий при сравнении значений счетчика циклов и его чтение. Поэтому пришлось расчехлить китайский аналог "Saleae logic analyzer" и увидеть там полный треш:

После подбора значений задержек светодиод завелся и порадовал:
Далее я перешел к китайскому экранчику который на али продается под названием Air101-LCD:

Что-то вразумительное нагуглить не удалось, кроме упоминания того что это какой-то там аналог экранчика на базе st7735s.
Собрал я это дело на макетке и путем компиляции разного рода примеров работы с st7735 включил его:

Далее выдал цветные квадраты и подобрал смещения строк и столбцов, дело в том что физический экран находится как бы по середине фреймбуфера и видимая часть изображения начинается не по координатам (0,0)

Потом, нашел какой-то простой шрифт 5х7:

Изменил порядок битов и получил желаемое :)

Теперь займусь подключением вот такого зверя:
