Архив рубрики «ВНЕШНИЕ УСТРОЙСТВА»

STM32 FatFs. Обзор библиотечных функций

Итак, карту памяти мы подключили, инициализация ее прошла успешно. В предыдущей статье были рассмотрены функции, которые нужны для работы с картой памяти. Теперь, прежде чем начать работу с FAT, рассмотрим некоторые функции, которые предоставляет библиотека FatFs:

Прочитать остальную часть записи »

STM32 Работа с библиотекой FatFs

Столкнулся с необходимостью прикрутить к контроллеру карту памяти и работать с ней посредством файловой системы. Для этого необходима специальная библиотека. Конечно, ее возможно написать самому, но уж очень это трудоемкая работа. Поэтому решил воспользоваться чужими наработками (говорят что одна из причин технического прогресса – разделение труда).

Существуют свободно распространяемые библиотеки для работы с FAT. Одна из них – FatFs. Больше информации о ней на русском языке можно найти здесь http://microsin.net/programming/ARM/fatfs-file-system.html 

Возможности данной библиотеки достаточно большие. В ней содержатся функции для работы с файлами, папками, можно читать данные из файла, сохранять данные в файле, создавать файлы, переименовать файл и др.

Библиотеку можно использовать для 8-ми битных контроллеров, а для 32-х разрядных и подавно. Имеется возможность работы с длинными именами файлов, в кодировке Unicode.

Есть смысл познакомиться с ней поближе.

Прочитать остальную часть записи »

STM32 Подключаем энкодер

Делая очередной терморегулятор столкнулся с проблемой: заказчику не очень нравилось кнопочное задание температуры. Ему хотелось, чтобы была какая-то “крутилочка”, которой можно устанавливать нужную температуру. Так как заказчик всегда прав, пришлось искать способ удовлетворить его хотение.

Первое что пришло в голову  — поставить переменный резистор и использовать АЦП. Но у этого способа есть подводные камни. Во-первых, сложно выставить точное значение, т.к. резистор это все-таки аналоговый прибор. Во-вторых, обычные резисторы имеют ограниченный угол поворота (меньше 360 градусов).  Если нужно регулировать температуру в широких пределах будет низкая точность. Начал было думать о многооборотных резисторах. И вдруг меня меня осенило – а почему бы не использовать энкодер. Ведь в музыкальных центрах для регулирования громкости они с успехом используются.

Поход в магазин “Радиолюбитель” увенчался успехом – потратив 15грв (немногим меньше двух долларов) я стал обладателем сего чуда враждебной техники. Размеры были подходящие. При вращении ручки энкодера чувствовались приятные щелчки. Всего таких щелчков было 12 на один оборот. 

Прочитать остальную часть записи »

STM32 DS18B20. Измерение температуры

Чтобы заставить датчик что-то делать – запустить измерение температуры, прочитать результат и т.д. – ему необходимо послать соответствующую команду. Если к шине подключен один датчик, то для измерения температуры можно ограничиться следующими командами:

  • SKIP ROM (0хСС) -  пропуск адресации. Используется если не нужно посылать адрес датчика (в нашем случае она будет предшествовать другим командам);
  • CONVERT TEMPERATURE (0×44) — запускает преобразование температуры;
  • READ SCRATCHPAD (0xBE)- для чтения содержимого памяти, после ее посылки можно последовательно прочитать память датчика с нулевого байта по восьмой.

Прочитать остальную часть записи »

STM32 DS18B20. Базовые функции

Создадим три функции, которые будут базовыми для работы с термодатчиком ds18b20:

  • ds_reset_pulse — посылка импульса сброса;
  • ds_write_bit — передача одного бита данных датчику;
  • ds_read_bit — чтение одного бита данных

Эти три функции являются платформеннозависимыми, т.е. их нужно изменять при переходе на другой тип контроллеров. Все остальные функции не будут зависеть от типа контроллера (STM32, AVR. PIC, и др…- все равно).

Прочитать остальную часть записи »

STM32 DS18B20. Введение

DS18B20 – это цифровой датчик температуры. Он по сути представляет собой микроконтроллер, который по команде из вне измеряет температуру и возвращает эти данные в цифровом виде.

Вот некоторые его характеристики:

  • Диапазон измерений от –55°C до +125°C;
  • Программируемое разрешение от 9 до 12 бит;
  • Связь по одному проводу (1-Wire bus);
  • Возможность подключения многих датчиков к одной линии;

Внешний вид датчика и классическая схема его подключения изображены ниже:
Прочитать остальную часть записи »

STM32 SD Card. Инициализация и использование карты памяти

Общение с SD-картой производится путем посылки специальных команд, которые включают в себя:

  • код команды;
  • 32-х разрядный аргумент;
  • код CRC, подтверждающий правильность данных (в режиме SPI этот код нужен только для двух команд)

Команд много, но для решения поставленной задачи можно ограничится перечисленными ниже:
Прочитать остальную часть записи »