Si5351 — это управляемый по I2C генератор частот от 8 кГц до 160 МГц. Чип имеет три канала с выходным импедансом 50 Ом. Уровень сигнала может регулироваться примерно от 2 до 11 dBm. За счет сочетания цены и качества Si5351 очень популярен среди радиолюбителей. В частности, он используется в КВ-трансиверах uBITX и QCX, антенных анализаторах EU1KY и NanoVNA. Сегодня мы познакомимся с данным генератором поближе, а также поймем, как он может быть использован с микроконтроллерами STM32.

В очередном проекте было решено использовать STM32F103 (плату Blue Pill) и роторный энкодер в качестве одного из элементов управления. Благодаря заметке Микроконтроллеры STM32: основы использования таймеров, прерываний и ШИМ нам известно, что в мире STM32 эта задача решается при помощи таймеров. Однако само решение продемонстрировано не было. Давайте заполним этот пробел.

Помимо обычного режима, отображающего зависимость напряжения от времени, многие осциллографы имеют режим X-Y. В этом режиме рисуется кривая на плоскости. Координаты X и Y точек, принадлежащих кривой, определяются входом с двух каналов осциллографа. Режим X-Y многим знаком по фигурам Лиссажу. Но при желании можно нарисовать и что-то поинтересней. Этим мы сегодня и займемся.

Wiznet W5500 — это Ethernet-контроллер с интерфейсом SPI. Чип поддерживает стандарты 10baseT и 100baseT. Характерной особенностью контроллера является то, что он имеет аппаратную реализацию TCP/IPv4. Это позволяет существенно разгрузить работающий с ним микроконтроллер. Wiznet W5500 поддерживает до 8 сокетов и имеет суммарно 16 Кб памяти на прием и еще 16 Кб на передачу. Эта память может быть распределена между сокетами произвольным образом. Давайте же разберемся, как работать с этим чипом на примере МК STM32.

OpenOCD (Open On-Chip Debugger) — это открытое ПО для программирования и отладки различного железа. Допустим, к вашему компьютеру подключен один из программаторов, поддерживаемых проектом. OpenOCD позволяет сходить через программатор в некий микроконтроллер или FPGA, используя такой протокол, как JTAG или SWD. В качестве более конкретного примера, рассмотрим, как OpenOCD может быть использован для прошивки и отладки микроконтроллеров STM32.

После знакомства с клавиатурой от смартфона BlackBerry Q10 мне захотелось кое-что выяснить. Что будет, если взять от этой клавиатуры только пластиковые клавиши, а саму плату с кнопками развести самостоятельно? В этом случае не пришлось бы возиться с крохотными коннекторами, через которые подключается оригинальная клавиатура. Также мы были бы уверены в качестве модуля. А то эти клавиатуры выдирают из старых телефонов, и кто знает, в каком они там состоянии (залипающие кнопки и т.п.).

Как-то раз я прочитал на hackaday.com небольшую заметку об IceRadio. Это проект господина Eric Brombaugh, представляющий собой SDR на базе микроконтроллера STM32, FPGA производства Lattice серии Ultra или Ultra Plus, АЦП AD9203 или более дорогого ADC14C105, ЦАП CS4344 с интерфейсом I2S, а также тюнера R820T2, используемого в донглах RTL-SDR. Помимо прочего, проект интересен своей модульностью. Он состоит из четырех независимых плат, каждую из которых можно использовать повторно в других проектах. Особенно меня заинтересовал модуль на базе тюнера R820T2, о котором и пойдет речь в этом посте.

Однажды, во время утреннего полистывания Twitter, мое внимание привлек проект господина @arturo182 (a.k.a Artur Pacholec). Проект представляет собой DIY смартфон на базе экранчика ILI9341 и qwerty-клавиатуры с подсветкой от BlackBerry Q10. Особенно меня впечатлила идея использования клавиатуры от смартфона. Было решено незамедлительно обзавестись такой клавиатурой и научиться с ней работать.

АЦП и ЦАП могут быть полезны в ряде задач, например, если нужно считывать данные с аналоговых датчиков, или при работе со звуком. Многие МК семейства STM32 имеют встроенный АЦП (даже несколько), а некоторые МК также имеют и встроенный ЦАП. В этой заметке мы рассмотрим простой пример использования обоих устройств. Для экспериментов я использовал плату LimeSTM32 на базе STM32F405, имеющего как АЦП, так и ЦАП.

Большое преимущество программатора ST-Link/v2-1 перед ST-Link/v2 заключается в том, что помимо самого программатора в v2-1 также есть встроенный USB-UART. На практике это очень удобно — меньше проводов, меньше занятых USB-портов. Как заливка прошивки, так и передача отладочного вывода происходят через одно устройство вместо двух. Есть только одна маленькая проблема. Если ST-Link/v2 можно без проблем купить на eBay, то ST-Link/v2-1 бывает только встроенным в отладочные платы семейств Discovery и Nucleo. Однако, как выяснилось, плату Nucleo довольно легко разделить на два отдельных устройства — программатор ST-Link/v2-1 и отладочную плату.