AVR: дизассемблируем прошивку

disassemblerИногда бывает необходимо посмотреть как компилятор скомпоновал прошивку,что бы понять что было оптимизировано, и в какие команды микроконтроллера avr был преобразован исходный текст на Си.

Если использовать avr-gcc (он же WinAvr), то для этой цели служит утилита avr-objdump.

На вход ей подается файл с расширением elf, который генерируется при линковке приложения. Читать далее

Рубрика: Микроконтроллеры avr | Метки: , , , | Комментарии (11)

Cоздаём свою прошивку open-wrt для tp-link tl-mr 3020

openwrt

Для чего нужна своя прошивка open-wrt для tp-link tl-mr3020

Иногда бывает что процесс допиливания прошивки приходится повторять, например если пришлось откатиться к дефолтной прошивке, или если куплен новый роутер. Если нет желания каждый раз заниматься установкой пакетов и редактирование конфигов, то можно один раз настроить сборку своей прошивки open-wrt, в которую будут включены только те программы которые вам нужны, и уже с необходимыми настройками.  А если надо будет поделиться результатом, то не  придется писать подробную инструкцию так как можно  просто выложить  прошивку.

Далее будет описан процесс создания своей прошивки open-wrt для tp-link tl-mr3020 в linux.

Читать далее

Рубрика: Использование linux | Метки: , | Комментарии (31)

AVR: подключаем ультразвуковой дальномер HC-SR04 к atmega8

HC-SR04

Характеристики ультразвукового дальномера HC-SR04

  • Измеряемый диапазон: 2 см — 500 см
  • Точность: 0,3 см
  • Угол обзора: < 15 °
  • Напряжение питания 5V

Принцип работы ультразвукового дальномера HC-SR04

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

Рубрика: Микроконтроллеры avr | Метки: , | Комментарии (15)

AVR: Обработка внешних прерываний

Для чего нужны внешние прерывания

Прерывание — это событие по которому прерывается исполнение основного кода программы ( например функции main) и управление передаётся функции обработчику прерывания. Соответственно внешние прерывания — это  некие внешние события прерывающие исполнение основного кода программы.

Внешние прерывания позволяют получить быструю, гарантированную реакцию на внешние события. По этому наиболее частое применение внешних прерываний это реализация счетчиков импульсов, измерение частоты или длительности импульсов, программная реализация uart, one-wire, i2с, spi, а так-же обработка сигналов от внешних периферийных устройств. Читать далее

Рубрика: Микроконтроллеры avr | Метки: , , | Комментарии (15)

Как сделать WI-FI камеру видеонаблюдения за 1200 рублей

wifi-webcamЦель: с минимальными затратами сделать беспроводную web камеру с доступом по wi-fi.

За основу возьмем роутер TP-LINK TL-MR3020 — 850 руб. и  web камеру Logitech С100 — 350 руб.

Читать далее

Рубрика: Использование linux | Метки: , , , | Комментарии (95)

Форматируем microSD для beaglebone

microsd for beaglebone

Для того что бы не форматировать microSD для beaglebone вручную,  написал скрипт:

 

Читать далее

Рубрика: Использование linux | Метки: , , , | Добавить комментарий

beaglebone: SDK

beaglebone

Что такое beaglebone:

Симпатичная плата с микропроцессором Sitara am3359 — это ARM Cortex-A8 (armv7a) от Texas Instruments. Работает на частоте до 720MHz. На плате установлен USB-хаб, через который к мини-USB подключены FTDI (отладка по JTAG и виртуальный COM-порт) и USB-device.  Так же выведен USB host. ОЗУ — 256MB DDR2. Установлен разъём для карты microSD, с которой грузится linux.  Есть и ethernet. На два 46-пиновых PLD разъема по  со стандартным шагом 2.54 мм выведено  2x I2C, 5x UART, I2S,SPI,CAN, 66x  GPIO (3.3V), 7x АЦП. Питание от mini-USB или  внешнего источника. Размер платы 90×55 мм. Читать далее

Рубрика: Встраиваемые системы | Метки: , | 1 комментарий

Делаем из компьютера IP WEB камеру слежения

IP камера из компъютераКак оказалось из компьютера с linux можно очень просто сделать IP WEB камеру, зачем — не знаю, но если у вас есть выделенный IP адрес, то набрав его в firefox или в другом интернет браузере, можно будет удаленно получить видео изображение с web камеры.
Читать далее

Рубрика: Использование linux | Метки: | Комментарии (4)

AVR: modbus

Возникла задача — соединить устройство на микроконтроллере atmega avr с компьютером по rs232. Что бы не изобретать велосипед, в качестве протокола обмена был выбран modbus.

Почему modbus:

  1. Поддерживается большинством  промышленных  (scada) систем.
  2. Существуют большое количество свободно распространяемых библиотек/программ с открытым исходным кодом.

Для отладки собрал стенд: stk500 c atmega avr подключенный к обычному компьютеру через переходник rs232-usb.  Роль мастера (master)  будет выполнять ПК,  роль ведомого (slave) — avr atmega на stk500.

За основу возьмем:

  • Для ведомого (slave) — freemodbus;
  • Для ведущего (master) — qmodbus;

Читать далее

Рубрика: Микроконтроллеры avr | Метки: , , , | Комментарии (35)

AVR: обмен данными по uart c использованием прерываний и fifo

У функций для  приёма/передачи данных по uart/usart в avr atmega, описанных в предыдущей заметке есть существенный недостаток, они работают по опросу статусного бита, а это значит, что программа микроконтроллера часто будет крутиться в цикле опроса, вместо того чтобы выполнять какие-нибудь другие полезные действия.

Что бы освободить программу контроллера от этих рутинных действий будем использовать циклический буфер и прерывания. Для реализации циклического буфера возьмем код из заметки простое FIFO.

Читать далее

Рубрика: Микроконтроллеры avr | Метки: , , , | Комментарии (12)