DDS генератор на ATmega16 – Микроконтроллеры и Технологии
- Главная|
- Устройства|
- AVR
- Просмотров: 79601
DDS Генератор HD44780 ATmega16
В этой статье рассматривается схемотехническое решение, устройство и конструкция DDS генератора (генератор с прямым цифровым синтезом формы сигнала) на микроконтроллере ATmega16 фирмы Atmel. В приборе, кроме синтеза сигнала различной формы и частоты, реализуется возможность регулировки амплитуды и смещения выходного сигнала.
– простое схемотехническое решение, доступные компоненты;
– односторонняя печатная плата;
– сетевой источник питания;
– специализированный выход частоты от 1 МГц до 8 МГц;
– DDS выход с регулировкой амплитуды и смещения;
– форма выходного DDS сигнала: синусоида, прямоугольные импульсы, пилообразные импульсы, треугольные импульсы, ЭКГ, шум;
– для отображения текущих параметров используется двухстрочный ЖК дисплей;
– пятикнопочная клавиатура;
– шаг перестройки частоты: 1, 10, 10, 1000, 10000 Гц;
– восстановление последней конфигурации при включении;
– регулировка смещения: –5 В … +5 В;
– регулировка амплитуды: 0 … 10 В;
– регулировка частоты: 0 … 65534 Гц.
За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка DDS генератора Jesper Hansen. Предложенный алгоритм был немного переработан и адаптирован под компилятор WinAVR-GCC
Сигнальный генератор имеет два выхода: выход DDS сигнала и выход высокочастотного сигнала (1 – 8 МГц) прямоугольной формы, который может использоваться для «оживления» микроконтроллеров с неправильными установками Fuse-битов или для других целей.
Высокочастотный сигнал поступает непосредственно с микроконтроллера, с вывода OC1A (PD5). DDS сигнал формируется микроконтроллером с использованием цепочки резисторов R2R (ЦАП), регулировка смещения и амплитуды возможна благодаря использованию низкопотребляющего операционного усилителя LM358N.
Блок-схема DDS генератора
Как видно, для питания устройства необходимо три напряжения: +5 В, +12 В, –12 В. Напряжения +12 В и –12 В используются для аналоговой части устройства на операционном усилителе для регулировки смещения и амплитуды.
Принципиальная схема источника питания.
В источнике питания используются стабилизаторы напряжения LM7812, LM7805, LM7912 (стабилизатор отрицательного напряжения –12 В).
Принципиальная схема прибора
Рисунок печатной платы
Вид со стороны установки элементов
Внешний вид платы с установленными компонентами
Список использованных элементов
Обозначение в схеме |
Номинал |
R1 | 470 Ом |
R2, R6, R8, R10, R12, R14, R16, R18 |
10 кОм |
R3, R21 | 100 кОм |
R4, R5, R7, R9, R11, R13, R15, R17, R19 |
20 кОм |
R20 | 100 Ом |
R22 | 12 кОм |
R23 | 150 Ом |
POT1 | Потенциометр 1 кОм |
POT2 | Потенциометр 47 кОм |
POT3 | Пдстроечный резистор 10 кОм |
C1, С2 | 100 нФ |
C3, С4 | 18 пФ |
Q1 | Кварцевый резонатор 16 МГц |
IC1 | Микроконтроллер Atmel ATMEGA16P |
IC2 | Операционный усилитель LM358N |
BNC1 – BNC2 | Коннектор типа BNC |
S1 – S6 | Кнопки |
LCD Header | 16-выводный коннектор для подключения дисплея |
LCD Module | ЖК модуль на базе контроллера HD44780 |
ISP | Коннектор 2×3 для внутрисхемного |
POWER | Коннектор для подключения питания |
LED1 | Светодиод зеленого цвета свечения, 3 мм |
ON/OFF | Миниатюрный выключатель |
Изменения в программном обеспечении микроконтроллера
Изменения в исходном коде связаны лишь с назначением кнопок подключенных к порту D микроконтроллера:
1. Кнопки «влево» и «вправо»
#define LEFT 3 //PORTD #define RIGHT 1 //PORTD
2.Кнопки «вниз» и «вверх»
#define DOWN 4 //PORTD #define UP 0 //PORTD
Кроме того для последних версий компилятора AVR-GCC необходимо внести изменения в следующие строчки кода:
struct signal{ volatile uint8_t mode; //signal volatile uint8_t fr1; //Frequency [0..7] volatile uint8_t fr2; //Frequency [8..15] volatile uint8_t fr3; //Frequency [16..31] volatile uint32_t freq; //frequency value volatile uint8_t flag; //if 0 generator is OFF, 1 is ON volatile uint32_t acc; //accumulator volatile uint8_t ON; volatile uint8_t HSfreq; //high speed frequency [1...4Mhz] volatile uint32_t deltafreq; //frequency step value }SG;
Fuse-биты микроконтроллера ATmega16: HIGH = 0×59, LOW = 0×CF – это соответствует тому, что будут запрограммированы следующие биты: OCDEN, SPIEN, BOOTSZ1, BOOTSZ2, SUT1, SUT0.
Архив для статьи “DDS генератор на ATmega16” | |
Размер файла: 168.74 KB Количество загрузок: 5 108 | Скачать |
Понравилась статья? Поделиться с друзьями:
- Назад
- Вперед
Генератор сигналов ATmega16
Генератор сигналов ATmega16 Путь: Главная => AVR-RU => Приложения => Генератор сигналов Diese Seite на немецком языке: Приложения AVR Генератор синусоидальных/треугольных/прямоугольных/пилообразных сигналов с ATmega16 |
- Характеристики
- Оборудование
- Крепление
- Программное обеспечение
- Генерирует синусоидальные, треугольные, пилообразные или прямоугольные волны в
звуковой диапазон от 2,0 Гц до 20 кГц,
- Четыре выбираемых диапазона частот:
- от 2 до 20 Гц,
- от 20 до 200 Гц,
- от 200 до 2000 Гц,
- от 2 000 до 20 000 Гц,
- Линейная регулировка частоты с помощью потенциометра путем расчета
коэффициент делителя (с умножением 8 на 16 бит позиции и
деление 32 на 24 бита от тактовой частоты),
- Генерация частоты до 2500 Гц за 256 одиночных шагов и 1 на 1
копия значений R / 2R-8-Bit-DAC выше 2,500 Гц в 2/4/8 раз
умножение частоты с уменьшенным разрешением,
- Фильтрация синусоидальных гармоник в двух каскадах RC с 16-ступенчатым переключением
конденсаторы, поэтому очень высокое затухание гармоник по всему
диапазон частот,
- Генерация частоты, полученная от генератора xtal с делителем и точным расчет частоты,
- ЖК-дисплей 1 на 8 для отображения формы сигнала и частоты,
- Аналоговый и цифровой сигнальный выход с 3 Vpp = 1 Veff,
- Цифро-аналоговый преобразователь с быстрой и недорогой резисторной сетью R/2R, поэтому питание только от простого источника 5 В, без отрицательного питания требуемое напряжение,
- Работает со стандартными компонентами, никаких специальных схем, кроме ATmega16,
- программируется в системе со стандартным интерфейсом ISP6, 9Программное обеспечение 0017 свободно доступно с исходным кодом на ассемблере для скачивания, обширно задокументирован, может быть изменен в соответствии с собственными потребностями.
Начало страницы | Особенности | Оборудование | Крепление | Программное обеспечение |
2.1 Контроллер и обработка сигналов
Это обеспечивает обзор всех внешних компонентов, которые подключены к контроллеру.Источники ввода
- потенциометр для регулировки частоты (использует канал АЦП),
- четыре переключателя для выбора формы сигнала и диапазона частот, а
- интерфейс программирования ISP.
- 8-битный ЦАП (с программным управлением разрешением),
- 4-битное управление аналоговыми переключателями для выбора конденсатора два фильтра RC и
- двунаправленный 8-битный порт данных и три контакта управления ЖК.
2.2 Схема
Это полная схема со всеми компонентами. ЖК-дисплей подключается через стандартный 16-контактный разъем, поэтому его можно подключить
в сверху. Шина данных шириной 8 бит подключена к порту C.
Биты управления подключены к порту А (биты 5, 6 и 7). Электрический ток
для подсветки можно питаться от стабилизированного источника питания 5 В или от
нерегулируемое напряжение 9 или 12 В источника питания. Резистор может быть
рассчитывается по формуле
(при 9 В и 150 мА сопротивление составляет, например, 33 Ом).
Потенциометр 100k для регулировки частоты подключен к Контакт ADC0/PA0. Внутренний АЦП питается через дроссель 22 мкГн. и керамический конденсатор. Опорное напряжение АЦП находится внутри подключен к источнику питания АЦП и заблокирован на выводе AREF конденсатором.
Переключатели S1 и S2 для частотного диапазона и S3 и S4 для формы волны подключены к портам PA1 до PA4. Все входные контакты переключателя внутренне соединены с подтягивающим резистором и имеют высокий потенциал когда переключатель разомкнут.
Цифро-аналоговый преобразователь R/2R состоит из девяти резисторов номиналом 2k20. и восемь 1к10 (1% металопленка) на порт D. Выход ЦАП подключен по 10к к первому аналоговому свитчу 4066 и через другой 10к до второго аналогового коммутатора. Оба переключателя управляют конденсаторами 470 пФ, 1 нФ, 10 нФ и 100 нФ и добавляет их к сеть РК. Подключаемые конденсаторы контролируются контакты порта с PB0 по PB4.
Отфильтрованный RC-сигнал подключается к положительному входному контакту Операционный усилитель FET CA3140, его отрицательный вход соединен с выходной сигнал (усиление = 1). Это буферизирует сигнал с амплитудой 3 Vpp соотв. 1,0 Вэфф и обеспечивает его напрямую или через электролитический конденсатор к выходному разъему.
ATmega16 работает на частоте 16 МГц xtal и двух 18 пФ конденсаторы на входе XTAL1 и выходе XTAL2.
На контактах порта с PB5 по PB7, а также на контакте Reset (через 10k на плюс) подключен стандартный разъем для программирования ISP6, с помощью которого ATmega16 можно запрограммировать в системе.
2.3 ЖК-интерфейс
Распространенные ЖК-дисплеи с 14 (без подсветки) или 16 контактами (с подсветкой). светодиоды) можно подключить непосредственно к 16-контактному разъему на печатной плате. Если ЖК-дисплей 14-контактный, вам не нужен резистор и 15-контактный. и 16 не связаны.Если используется ЖК-дисплей типа DIP081, который имеет более крупные символы, чем стандартные ЖК-дисплеи, взаимодействие с разным расстоянием контактов необходимый. Необходимы следующие изменения:
- Размер штифта DIP081 составляет 2 мм, а не 2,54 мм. Этот ЖК-дисплей имеет 18 (2 на 9) вместо обычного 16-контактного штекера.
- Площадь поверхности DIP081 немного больше из-за больший размер символов. Непосредственное размещение этого ЖК-дисплея на печатной плате потребовалось бы больше места на печатной плате.
- Для работы с DIP081, а также с другими ЖК-дисплеями полезно соединить DIP081 с адаптером, который может располагаться поверх штекера.
Для подсветки DIP081 можно выбрать два варианта:
- Работа с током 150 мА через светодиоды (как указано в техпаспорте), или
- работа с 60 мА (опция экономии тока).
При 9 В и 60 мА требуется резистор 82 Ом, который должны быть рассчитаны на тепловую мощность 400 мВт (например, стандартная металлическая пленка). Если используется вариант 2, резистор 15 Ом необходимый.
2.4 Блок питания
Конструкция блока питания во многом зависит от выбранного ток подсветки. Без подсветки трансформатор с менее чем Можно использовать 1 ВА или работу от батареи. С повышенным течением для подсветки (например, для DIP081) можно выбрать два варианта:- ток, как указано, с 150 мА для подсветка: необходим трансформатор 3,6 ВА или
- половинный ток с 60 или 70 мА: 1,2 ВА требуется.
2.4.1 Опция 3,6 ВА
Это сильноточный вариант 3,6 ВА, который может обеспечить подсветка постоянным током 150 мА. Поставки регулятора контроллер и его периферийные устройства. Это напряжения и токи при нагрузке 170 мА.
(имитируется с
это программное обеспечение).
Среднее напряжение на электролитическом конденсаторе составляет 12 В.
Следовательно, токоограничивающий резистор должен быть
(практически E12: 56 или 47 Ом; E48: 53,6 Ом)
Резистор должен иметь мощность нагрузки 2 Вт.
Это напряжения без нагрузки. Напряжение на конденсаторе
превышает 16 В, и должны использоваться конденсаторы на 25 или 35 В.
2.4.2 Опция 1,2 ВА
Это блок питания с уменьшенным током светодиода. Это напряжения и токи при нагрузке 100 мА.
При среднем напряжении чуть выше 9 В ограничение тока
резистор должен быть
при P = (9 – 4,1) * 0,06 = 294 мВт
при 80 мА: R = (9 – 4,1) / 0,08 = 61 Ом
при P = (9 – 4,1) * 0,08 = 392 мВт
Из-за более высокого сопротивления катушек трансформатора напряжение ток без нагрузки даже выше, чем в случае 3,6 ВА. При выборе конденсаторов необходимо учитывать, что во избежание превышения пределы спецификации.
К началу страницы | Особенности | Оборудование | Крепление | Программное обеспечение |
3.1 Компоновка печатной платы и размещение компонентов
3.1.1 Контроллер и обработка сигналов
Это фотомаска для печатной платы размером 80 на 80 мм.Соответствующее размещение компонентов находится здесь:
Все мосты изготовлены из эмалированной меди, пригодной для пайки. провода во избежание короткого замыкания.
3.1.2 ЖК-интерфейс Вот макет платы интерфейса DIP081.
Обратите внимание на более чем необычную нумерацию контактов DIP081 и два не соединенных контакта.
Обратите внимание, что 16-контактный разъем припаян вверх ногами.
чтобы поместиться в гнездовой контактный разъем на печатной плате.
3.2 Изображения
Это все компоненты, размещенные на печатной плате. Внешние соединения для потенциометра, четыре переключателя, а также аудио и цифровой выходы, а также блок питания представляют собой штырьки под пайку 1 мм. Трансформатор 1,2 ВА и 78L05 смонтированы на
матричная доска.
3.3 Коробка
В качестве оболочки можно использовать небольшую пластиковую коробку, которую можно приобрести в домашнем хозяйстве. магазины снабжения.Все помещается в красивую маленькую пластиковую коробку с отверстием для встроенный ЖК-дисплей и с переключателями и разъемами типа «тюльпан».
Начало страницы | Особенности | Оборудование | Крепление | Программное обеспечение |
4.1 Предохранители ATmega16
Для правильной работы необходимо заменить предохранители ATmega16. При работе с частотой 1 МГц по умолчанию предохранитель для часов должен быть заменены, и предохранитель JTAGEN. Слева предохранители по умолчанию видны, справа требуемые изменения.Программирование предохранителей должно производиться с помощью кристалла прикреплены, предпочтительно в пределах установленной системы. В противном случае постпрограммная проверка настроек предохранителя не проходит.
4.2 Обзор программного обеспечения
Программное обеспечение подразделяется на три соответствующих функциональных блока:- определение значения потенциометра и четыре переключения с последующим расчетом следующего параметра набор,
- принятие следующего набора параметров во время следующего пересечение нуля генерируемой волны и
- частотный выход.
4.2.1 Определение значений потенциометра и переключателей
Чтение значений потенциометра инициируется АЦП. прерывать.Таймер TC0 запускает преобразования AD. С предделителем 1024 и значение сравнения A 243, с которого начинается преобразование AD 64,04 Гц соотв. время повторения 15,6 мс. сравнение совпадений инициирует преобразование AD и очищает флаг T чтобы предотвратить чтение результатов во время текущих преобразований.
По завершении через 128*13=104 мкс преобразование AD Прерывание по готовности устанавливает флаг T в регистре состояния. Этот удерживает время задержки этим прерыванием чрезвычайно коротким, чтобы не мешать быстрой генерации частоты с соответствующими задержками.
Вне процедуры обслуживания прерывания результат преобразования AD считывается, и 16 из этих измерений суммируются. После всего Проведено 16 измерений (примерно каждые 250 мс) считываются положения переключателя диапазона частот курса и желаемая частота вычисляется 8-на-16 бит умножение. Отсюда следующее значение CTC для частоты генерация с TC1 рассчитывается делением 32 на 24 бита. Если выбрана синусоида, необходимый конденсатор выводится от значения потенциометра и диапазона частот.
В зависимости от переключателей и частоты 2500 Гц
или выше, результирующая форма волны (пилообразная, синусоидальная, треугольная или
прямоугольник с одной, двумя, четырьмя или восемью волнами за цикл)
определенный. Если эта форма кривой отличается от предыдущей
используется форма бит флага bSetR2R установлен. Если желаемый
частота изменяется, устанавливается бит флага bSetCtc . Дальше
обработка этих флагов откладывается до тех пор, пока бит флага bStart сигнализирует о пересечении нуля сгенерированной волны.
Пока эта передача не начнется, значения хранятся в SRAM.
4.2.2 Пересечение нуля и перенос сохраненных значений
Если при выводе частоты достигнут 256-й шаг, флаг bStart установлен и пересечение нуля формы волны произойдет на следующем шаге. Вне службы прерывания обычно этот флаг проверяется. Это позволяет синхронизировать изменений параметров в процессе генерации частоты.Если bStart сигнализирует о пересечении нуля флагом bSetR2R консультируется. В этом случае таблица формы кривой в флэш-память копируется в SRAM. Согласно частотные параметры либо
- по отдельности или
- каждую секунду или
- каждый четвертый или
- каждый восьмой
После передачи значений или если бит флага bSetCtc значение CTC TC1 устанавливается в соответствии с сохраненным значением. С этого момента выводится новая частота. Оба флага очищается, и новые параметры перезаписывают предыдущие.
Из значений CTC и десятичного числа, зависящего от частоты.
цифр отображаемая частота рассчитывается с помощью
Разделение 40 на 16 бит. Результат оформляется десятичной дробью.
точка и с разделителем тысяч и отображаются на ЖК-дисплее,
вместе с характером формы волны
.
4.2.3 Частотный выход
Выход производится таймером TC1, который работает в режим PWM-CTC и, по прерыванию сравнения соответствия A, считывает следующая запись волновой таблицы считывается из SRAM и записывается в порт, к которому подключен ЦАП. В зависимости от установленной частоты TC1 производит прерывание
запрос на сравнение соответствия A между 512 и 640 000 раз за
во-вторых, потому что значения сравнения варьируются от 31 249 до
25. Следующее табличное значение для генерации частоты считывается из
таблица в SRAM и записывается в порт DAC. Если последний
значение таблицы было прочитано, установлен флаг bStart и
таблица начинается сначала.
4.3 Описание и подробности программного обеспечения
Программное обеспечение полностью на ассемблере, что позволяет точно управление синхронизацией, особенно для вывода кривой волны на ЦАП.Исходный код ассемблера находится здесь для скачивания. Добавьте подпрограммы включения ЖК-дисплея здесь, а также таблицы волновых форм здесь по тому же пути до сборки. Если ваше антивирусное программное обеспечение считает, что файлы *.inc опасные: это простые текстовые файлы, не представляющие опасности в тот случай.
Начало страницы | Особенности | Оборудование | Крепление | Программное обеспечение |
5 Моделирование приложений
Вот две смоделированные кривые:Синусоидальная кривая с частотой 2 кГц и разрешением 256 шагов на цикл, без прилагаемых RC-фильтров.
А вот и пила на 5кГц с 64шагами на цикл.
Оба выглядят нормально.
Похвала, сообщения об ошибках, ругань и спам пожалуйста через страница комментариев мне.
©2018 http://www.avr-asm-tutorial.net
Атмега16 | Хакадей
25 февраля 2020 г. Дженни Лист
Лучше всего забыть: мой ужасный генератор функций 2018 года.Всю жизнь, когда я собирал случайные образцы испытательного оборудования, у меня в арсенале образовалась брешь, а именно то, что у меня нет генератора низкочастотных функций. С этим можно было бы легко справиться, если бы не два момента. Я люблю исследовать более дешевую часть экспортируемой электроники, и моя потребность в функциональном генераторе меньше, чем мое желание тратить значительные деньги. В прошлом я пытался сбалансировать эти конкурирующие силы, взяв поразительно дешевый инструмент; в тот раз я оказался с лимоном, но ударит ли молния дважды в одно и то же место? Я потратил 10 фунтов (13 долларов) на другой дешевый генератор функций и отправился выяснять. Читать далее «Обзор: безымянный китайский генератор функций DDS» →
Posted in ReviewsTagged atmega16, dds, генератор функций23 ноября 2013 г., Джеймс Хобсон
[Мартин Стромер] сделал эти великолепно выглядящие часы с жестким диском около 12 лет назад и, наконец, решил поделиться ими со всем миром. С тех пор “тикает”.
Это красивые часы, и если вы думаете, что диск может выглядеть немного странно, это, вероятно, потому, что ему больше 20 лет! Мы не слишком уверены в емкости, но она не могла быть больше нескольких десятков мегабайт.
Чтобы узнать время, диск поворачивается на 30 градусов за час. Головка чтения-записи перемещается по диску, чтобы отображать минуты. Каждая из черных линий представляет собой четверть часа. Все это контролируется ATMega16, который поддерживает почти все оригинальное оборудование. В блоге есть отличная статья о том, как все это работает.
Мы упоминали, что также легко установить время? Просто поверните диск рукой и вставьте головку чтения-записи на место, а затем нажмите кнопку сброса. Проверьте часы в действии после перерыва.
Продолжить чтение «Часы жесткого диска ATMega16» →
Posted in Часы хакиTagged atmega16, часы на жестком диске21 октября 2013 г. Брайан Бенчофф
Совершенство достигается не тогда, когда больше нечего добавить, а тогда, когда нечего ломать. Судя по этому показателю, трехчиповый домашний компьютер 6502 [Стиана] является воплощением совершенства. Это настоящий работающий самодельный ретрокомпьютер, использующий всего три микросхемы: центральный процессор, немного оперативной памяти и микроконтроллер для начальной загрузки компьютера и обеспечения вывода видео.0012
Ключом к этой минималистичной сборке является то, что весь процесс загрузки контролируется микроконтроллером ATMega16. Он взаимодействует с 6502 через двухпортовую SRAM, Cypress CY7C130 объемом 1 килобайт. Эта двухпортовая оперативная память позволяет ЦП и микроконтроллеру получать доступ к одному и тому же биту памяти, что упрощает загрузку компьютера из фрагмента кода AVR.
Выход обеспечивается с помощью генератора видеотекста ATMega [Stian] , который передает 37 × 17 символов на любой телевизор с разъемом RCA. Хотя ввод еще не обработан, [Стиан] говорит, что это должно быть возможно с его клавиатурой AVR PS/2.
В то время как другие домашние компьютеры 6502, такие как [Quinn Dunki] Veronica, могут достигать беспрецедентных высот сложности, можно многое сказать о минимализме трехчипового компьютера [Stian]. При грамотном кодировании и измененном списке деталей вполне возможно дать ретрокомпьютер в руки каждому с минимальными затратами и комплектующими.
Posted in МикроконтроллерыTagged 6502, atmega16, AVR, доморощенный, доморощенный компьютер, ретрокомпьютер17 августа 2013 г., Майк Щис
Это грубо выглядящее приспособление представляет собой скейтборд, управляемый жестами рук, который [Адитья] построил из подручных деталей. Пока датчик жестов рук подключен проводом управления, но он надеется перейти на радиочастотный блок в какой-то момент в будущем.
Наличие доступа к паре бесколлекторных двигателей с высоким крутящим моментом привлекло его к проекту. Он связался с парой своих друзей-механиков, чтобы они помогли собрать шасси, а затем занялся электроникой. Плата для ATmega16 установлена в углу деки. Он контролирует акселерометр, который действует как рулевое управление, а также дроссель. В предыдущем проекте акселерометром злоупотребляли, поэтому ему пришлось добавить дополнительный переключатель, чтобы усилить его доступные входы. Мы были рады услышать, что он также включил аварийный выключатель, поскольку передача управления этими двигателями в руки поврежденного акселерометра немного схематична.
Мы помним, что видели похожий трайк несколько лет назад. Тот приводил в движение одно заднее колесо, а этот приводил в движение два колеса и использовал ролик для третьего.
Posted in Transportation HacksTagged акселерометр, atmega16, скейтборд3 апреля 2013 г. Майк Щис
Посмотрите здесь, и вы найдете всевозможные встроенные веб-серверы. Этот выглядит не так уж интересно, особенно потому, что это просто сетевая карта, подключенная к плате для разработки. Но для нас интереснее то, как [Эндрю Россиньол] решил отформатировать ресурсы веб-страницы, чтобы наилучшим образом использовать маломощный сервер.
Проект был создан как часть курса по встроенным интернет-системам, который посещает [Эндрю]. На плате установлен микроконтроллер ATmega16, и он использует когда-либо популярный ENC28J60 на этой плате адаптера Ethernet. Стек TuxGraphics TCP/IP обеспечивает связь с сетью.
Одно ограничение, которое [Эндрю] наложил на себя, заключалось в том, чтобы использовать только один ответ, размер доступной оперативной памяти которого ограничен примерно 700 байтами. Любая приличная веб-страница должна иметь хотя бы немного графики, но это сложно из-за ограничений по размеру. Ему удалось отобразить логотип AVR, оптимизировав SVG в Inkscape, а затем убрав все остальное с помощью VIM (объяснено в демо после перерыва). С этим кусочком линукс-фу в кармане он принялся за оптимизацию файла CSS. Веб-страница не просто статична. Он отображает время работы сервера и даже позволяет управлять реле и светодиодами на плате Olimex.
Несмотря на ограничения семейства ATmega, кажется, что они все еще делают удивительные вещи, связанные с Интернетом. Вот один из них, используемый в качестве сервера Minecraft.
Продолжить чтение «Встроенный веб-сервер — это умное форматирование» →
Posted in МикроконтроллерыTagged atmega16, AVR, enc28j60, olimex, server28 июня 2012 г., Майк Щис
Последнее творение [Ачу Уилсона] — это доска сообщений VGA, на которую записываются текстовые SMS-сообщения. Сначала это звучит не слишком интересно, пока вы не узнаете, что он делает это с микроконтроллером, а не с ПК. Вся сложность заключается в коде, управляющем VGA. Ему удалось сделать это без какого-либо дрожания при использовании 8-битного микроконтроллера.
Но сначала сотовая связь. GSM-модем позаботится о подключении. Для связи с модемом [Ачу] использовал ATmega8. Он упоминает, что мог бы использовать uC гораздо меньшего размера, например ATtiny, но это то, что у него завалялось. Когда сообщение получено, ATmega8 передает символы на ATmega16, который управляет VGA-монитором. Вместо того, чтобы иметь дело с аналоговыми напряжениями, необходимыми для работы цветного дисплея, он просто объединил три цветные линии вместе и подает их на один из выводов микроконтроллера. Это приводит к белому и черному, которые соответствуют напряжению или отсутствию напряжения.
Вы можете увидеть, как он хвастается системой в ролике после перерыва.
Продолжить чтение «Доска сообщений VGA отображает SMS без компьютера» →
Опубликовано в Взломы мобильных телефонов, Видео хакипомеченный atmega16, atmega8, gsm, sms, текстовое сообщение, vga9 марта 2012 г. Майк Натан
[Раду Мотисан] написал, чтобы поделиться классным проектом, над которым он работал в последнее время, импульсным аппаратом для микроточечной сварки/резки.
Устройство способно точечно сваривать тонкие металлы, такие как фольга и клеммы аккумуляторов, посылая пару импульсов сильного тока между двумя электродами всякий раз, когда [Раду] нажимает кнопку запуска. Режущая часть его устройства использует тот же общий механизм, хотя для выполнения работы требуется гораздо большее количество импульсов.
Процесс сварки/резки контролируется ATMega16, в задачи которого также входит прием данных от пользователя и отображение информации на ЖК-панели.