Pavel Bobkov

Понедельник, 10 июля 2017 00:36

Взлом сайта. Восстановление работы

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

Четверг, 16 июня 2016 15:30

AVR Calculator

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

С помощью этого приложения можно:

- рассчитывать значения TCNT и OCR регистров таймеров для заданного периода/частоты
- рассчитывать значения UBRR регистра для USART/UART модуля
- рассчитывать значение TWBR регистра для TWI модуля
- преобразовывать аналоговое напряжение в цифровое значение ADC
- конвертировать бинарные, десятичные и шестнадцатеричные цифры.

Написал новый драйвер семисегментного индикатора. Он имеет следующие особенности:

- предназначен для микроконтроллеров AVR,
- легко интегрируется в готовый проект, 
- может использоваться с компиляторами IAR, GCC, CodeVision,
- поддерживает подключение индикаторов через сдвиговые регистры,
- поддерживает подключение индикаторов через различные буферы,
- поддерживает индикаторы с общим катодом и с общим анодом,
- предоставляет возможность посегментной или поразрядной развертки,
- позволяет выводить на один индикатор несколько переменных,
- при стандартном подключении позволяет работать с 8-ю разрядами,
- при подключении через сдвиговые регистры - с 16 разрядами.

   Итак, давай разберем последовательность расчета бестрансформаторного источника питания, рассмотренного в предыдущей статье. Описанная метода не претендует на истину в последней инстанции и может отличаться от других источников. Дополнительную информацию по такой схеме можно почерпнуть на зарубежных ресурсах, погуглив в сети запрос "capacitor power supply".

бестрансформаторный источник питания

   Устройства на микроконтроллерах требуют для своей работы постоянного стабилизированного напряжения величиной 3.3 - 5 Вольт. Как правило, такое напряжение получают из переменного сетевого напряжения с помощью трансформаторного источника питания. Данный источник питания (при соответствующем выборе компонентов) позволяет получать большие токи и имеет гальваническую развязку от сети переменного тока, что немаловажно для безопасной работы с устройством. Однако он имеет большие габариты, благодаря трансформатору и фильтрующим конденсаторам. 
   В некоторых устройствах на микроконтроллерах гальванической развязки от сети не требуется. Например, если устройство представляет собой герметичный блок, с которым конечный пользователь никак не контактирует. В этом случае, если схема потребляет относительно невысокий ток (десятки миллиампер), ее можно запитать от сети 220 В с помощью бестрансформаторного источника питания.
   В этой статье мы рассмотрим принцип работы такого источника питания, последовательность его расчета и практический пример использования.

схема бестрансформаторного источника питания

   При программировании микроконтроллеров разработчики иногда сталкиваются с проблемой вычисления квадратного корня. Например, данная операция требуется при выполнении быстрого преобразования Фурье или вычислении среднеквадратического значения сигнала. 
   В стандартной библиотеке Си – math.h, есть функция для вычисления квадратного корня sqrt(), которой при желании можно воспользоваться. Она работает с числами типа float, обеспечивает высокую точность результата, но требует для своей работы длительного времени. Для микроконтроллера AVR это порядка 3000 циклов тактовой частоты (проверено в компиляторе IAR на разных уровнях оптимизации). 
   Если к точности вычисления корня не предъявляются высокие требования, можно воспользоваться упрощенным алгоритмом, занимающим меньше места в памяти и выполняющим вычисления в несколько раз быстрее.

Этот субминиатюрный USB осциллограф сделан на микроконтроллере Atmel Tiny45 и с самодельной печатной платой он стоит меньше 5 Евро.


Двухканальный USB осциллограф

   Когда АЦП делает выборки сигнала, он кодирует его дискретными шагами. Это вносит некоторую ошибку, известную как ошибка квантования. Использование нормального усреднения будет только сглаживать флуктуации сигнала, тогда как метод оверсемплинга и децимации будет увеличивать разрешение. Суть метода заключается в дискретизации сигнала с более высокой частотой и вычислении новой выборки сигнала на основе полученных дополнительных выборок. Требуемая частота дискретизации может быть найдена по формуле 3-1. Сложение дополнительных выборок и сдвиг результата вправо на n, будет давать результат с разрешением, увеличенным на n разрядов. 

   Микроконтроллеры AVR фирмы Atmel имеют в своем составе 10-ти разрядный аналого-цифровой преобразователь (АЦП). В большинстве случаев такой разрядности достаточно, но иногда возникают ситуации, когда требуется более высокая точность. 
   Существуют специальные методы обработки сигналов, позволяющие увеличить разрешение измерений. С помощью метода называемого “оверсемплинг и децимация” данная задача может быть решена без использования внешнего АЦП. 
   В этом руководстве рассмотрена теория и практическое применение данного метода.
   Микроконтроллеры AVR имеют возможность самопрограммирования, то есть могут самостоятельно изменять содержимое своей flash памяти. В практическом плане это означает, что, написав для микроконтроллера специальную программу-загрузчик (так называемый бутлоадер), мы можем обновлять его прошивку, не используя программатор. Причем интерфейс, по которому в микроконтроллер будет передаваться код программы, может быть совершенно произвольным. Обычно для этих целей используется один из аппаратно поддерживаемых интерфейсов, например, SPI, I2C или RS-232. Однако существуют и загрузчики, основанные на программной реализации таких интерфейсов как USB и 1-Wire.
   Для микроконтроллеров AVR существует несметное количество готовых бутлоадеров, и в большинстве случае мы можем спокойно использовать их в своих устройствах, не утруждая себя написанием собственного загрузчика.  В этой статье мы рассмотрим один из таких бутлоадеров, который разработан и свободно распространяется фирмой Chip45, и разберемся как его использовать. 
Страница 1 из 10