Практический курс STM32. Урок 1 - GPIO. Порты ввода-вывода

В предыдущем уроке мы поговорили о необходимой нам документации и установили IDE. Сейчас самое время познакомится с GPIO.

В этом уроке мы:
  • Узнаем о возможностях GPIO серии STM32F4
  • Пройдемся по Справочному руководству (Reference Manual, далее просто СР) попутно его комментируя
  • Освоим 80% его функционала, не вдаваясь в работу с альтернативными функциями(об этом ниже). Поверьте, этого будет вполне достаточно для начала. А поскольку альтернативные функции касаются отдельных блоков STM(USB, таймеры, USART), о них мы поговорим уже по ходу освоения конкретных блоки в следующих(надеюсь) уроках
  • К концу урока, как это положено по традиции, помигаем миру светодиодами наших F4-Discovery. Напишем код и подробно разберем каждую его строку(кроме одной, относящейся к следующему уроку).


Всех, кому интересно приглашаю под кат.

Собрал приёмничек

Общий вид приёмника

Как-то искал чем бы послушать самолётики и закономерно наткнулся на знаменитый проект P-45.


Читать дальше

Простой цифровой радиоприёмник. Часть 3.

Продолжаю развивать тему. Сегодня немного отвлечемся от внутренней структуры приемника и поговорим о околожелезячной тематике. А именно о главном элементе цифрового приемника, от которого зависит очень многое – АЦП. Ну и еще про кое-какие фишки. Постараюсь, как могу объяснить все наиболее просто.: о)

АЦП

Для наших целей применимы, пожалуй, только высокоскоростные конвейерные АЦП, поэтому речь пойдет о них.
На характеристиках по постоянному току и интерфейсах заострять внимание не буду, думаю с этим с легкостью разберется каждый сам.
Для начала определим основные характеристики АЦП по переменному току, которые очень важны как при расчетах, так и при выборе конкретной модели АЦП. Поехали…


Читать дальше

ОСРВ OSA первоначальное знакомство

Разведение ОС в домашних условиях


Во-первых по OSA есть хороший учебник на самом же сайте осы www.pic24.ru/doku.php/osa/ref/download/intro и отличный chm дается прямо с ней, во-вторых на сайте навалом хороших примеров. Приводимые простые примеры только дополняют примеры автора осы. Это чисто практический опыт первоначального знакомства, вообще же это дело серьезное и требует внимания и серьезного отношения. Пятьсот раз я был уверен что это глюк операционной системы и в конечном итоге оказывалось что я всегда ошибался.

Читать дальше

Простейший программируемый логический контроллер на базе микросхемы FT2232.

PLC
При знакомстве с функциональными возможностями чипа FT2232, в частности исследовался BitBang режим, была написана программка для связи компа с внешним миром. Потом возникла идея сделать программу, которая обрабатывала бы входную информацию и что-то передавала на выход (отродясь не писал таких заумных слов, надеюсь, получилось не очень страшно).
Работа, прежде всего, предназначена для моргания светодиодами, так же будет полезна подрастающему поколению, только вступившему на тернистый путь освоения электроники, ещё может использоваться при изучении работы не очень сложных микросхем, опять же, если срочно надо поменять микросхему, а под рукой ничего нет, можно эмулировать работу чипа, короче вещь в хозяйстве незаменимая)


Читать дальше

STM32 + uIP + enc28j60

Долго облизывался на подключение МК к Ethernet, ходил вокруг цикла статей Lifelover'a, и решил попробовать. Но как в том анекдоте «не в лото, а в покер, не Волгу, а сто рублей и не выиграл, а проиграл» отличия от проекта Lifelover'a будут следующие:

  • камень stm32f103v, флеша у которого аж 512к. Меньше 64к у STM32 — редкость, что не может не радовать
  • tcp стек решил взять готовый, в частности uIP. Пробовал стек от Lifelover'a, но там много AVR-овских особенностей — раздельная адресация как минимум. В итоге запустил, погонял, но решил все-таки перейти на стандартный стек.
  • ОС, естественно, FreeRTOS,
  • Ну а Ethernet-контроллер все тот же enc28j60, подключенный через SPI

В этой статье мы соберем минимальное приложение, которое висит на порту 1000 и что-то там пишет.



Читать дальше

Работа с группами линий ввода-вывода на Си (без плюсов)

В процессе написания статьи по препроцессору Си я понял многое о его механизме работы и возможностях. Мне стало интересно, возможно ли реализовать групповые операции с линиями ввода-вывода, как это сделано тут с помощью препроцессора на обычном Си.



Здесь начинается препроцессорная жесть

TestBench на Verilog для новичков

Данная статья освещает базовые вопросы написания TestBench на языке Verilog. Предполагается, что вы уже знакомы с синтаксисом языка Verilog и прочли пост про интеграцию Quartus и ModelSim.
Рекомендуется к изучения новичкам, всем интересующимся и незнающим как подступиться к написанию TestBench.

Данный пост является вольным переводом Art of Writing TestBenches by Deepak Kumar Tala.


Читать дальше
  • +2
  • 24 ноября 2011, 12:48
  • covsh

Quartus + ModelSim. Интеграция в картинках и создание TestBench

В жизни каждого начинающего разработчика настает момент, когда необходимо делать качественные скачки в процессе разработки. Для меня такая необходимость возникла при отладке Verilog проекта в Quartus. Моими основными инструментами на тот момент были: тупое долбление в код, SignalTap и In-System Source and Probe.
Времени на компиляцию тратилось все больше и больше, количество памяти в кристалле все меньше, а ясности не прибавлялось.
Тогда было принято решение перенести отладку в виртуальное пространство при помощи инструмента ModelSim.
Поразительно, но перерыв кучи документации я так и не нашел нигде единого руководства по интеграции Quartus и ModelSim.

Данная статья посвящена новичкам, освещает основные моменты интеграции программ Quartus и ModelSim.


Читать дальше
  • +2
  • 22 ноября 2011, 14:58
  • covsh

Модули для Pinboard 2 - макросы Sprint Layout

Ситуация такова: платы я развожу в Sprint Layout и пересаживаться на что-то другое не очень хочу. Поэтому, с выходом нового Pinboard, развел шаблоны для создания модулей расширения, процессорных модулей, и модулей для FT2232. Вот они:



Слева на право: Шаблон для модуля FT2232, шаблон для процессорного модуля, шаблон для модуля расширения (интерфейсный разъем).

Черной линией обозначены границы платы (для последнего варианта плата ограничена только с двух сторон). Обозначения выводов нанесены только для удобства разводки, но если нужно отметить их на модуле — можно просто перетащить надписи на плату.

Надо заметить, что у первых двух модулей отверстия должны быть разведены либо на верхней стороне (слой М1) либо выполнены с металлизацией.

Более подробно пока ничего описывать не буду: скоро появится официальная™ документация от Ди на все эти модули.