Часть 14: Внешняя SRAM — расширяем память за пределы 2 КБ

Внутренней SRAM в 2 КБ на ATmega328P катастрофически не хватает для проектов с большими массивами данных: аудио-буферы, графические фреймбуферы, логирование GPS-треков.  Решение: подключаем внешнюю SRAM, например Microchip 23LC512 на 64 КБ через SPI.  Схема подключения: Пин 23LC512 Подключение к Arduino CS…

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

Часть 13: Ассемблер AVR — пишем код на уровне процессора

No Picture

Мы дошли до точки, где даже библиотеки и компиляторы C++ становятся «прослойкой». Сегодня на ARDUINOHACKS мы погружаемся в самое ядро микроконтроллера — в мир инструкций процессора. Это уровень, на котором один такт имеет значение, а размер программы считается в байтах. Зачем…

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

Что дальше? Анонс следующей «хардкорной» части:

No Picture

ARDUINOHACKS — это не просто сайт, это философия. Мы не просто «используем Arduino» — мы взламываем ее, превращая в инструмент, который решает задачи, недоступные стандартным подходам. Помните: Каждый раз, когда вы пишете PORTB |= (1<<PB5), где-то в мире хакер улыбается. Продолжайте в том…

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

Итоговый чек-лист продвинутого хакера на ARDUINOHACKS:

No Picture

✔️ Умеет создавать надежные структуры данных в EEPROM с CRC-защитой.✔️ Разогнал I2C до 1 МГц для высокоскоростных дисплеев.✔️ Подключил USB-клавиатуру к Arduino через USB Host Shield.✔️ Написал собственный загрузчик для обновления по Bluetooth.✔️ Использует сторожевой таймер для защиты…

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

Часть 12: Использование сторожевого таймера (Watchdog) для анти-зависания

No Picture

Сторожевой таймер — это таймер, который перезагружает микроконтроллер, если его не сбросить вовремя. Стандартная библиотека Arduino его не использует, но мы можем включить его в любой момент. Хак: Защищаем критически важные проекты (сигнализация, управление двигателями, медицинские приборы) от зависаний….

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

Часть 11: Создаем свой загрузчик (Bootloader) для Arduino

No Picture

Каждый раз, когда вы нажимаете «Загрузить» в Arduino IDE, на плату записывается новый скетч поверх старого. Этим занимается загрузчик (bootloader) — программа, которая живет в отдельной области Flash-памяти (первые 512 байт или 2 КБ). Хак: Напишем свой загрузчик, который: Пример кода…

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

Часть 10: Программный USB-Host — Подключаем клавиатуру к Arduino

No Picture

Обычно Arduino выступает в роли USB-устройства (периферии). Но что, если мы хотим подключить USB-клавиатуру или мышь к нашему проекту? Для этого нужен хост-контроллер. Хак: Используем библиотеку USB Host Shield 2.0 (аппаратный шилд) или, в бюджетном варианте, эмулируем USB-Host через GPIO (с…

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

Часть 9: I2C на скорости 1 МГц (Fast Mode Plus)

No Picture

Стандартная библиотека Wire работает на частоте 100 кГц (стандартный режим) или 400 кГц (Fast Mode). Но некоторые современные датчики (акселерометры, OLED-дисплеи, MEMS-микрофоны) поддерживают скорость до 1 МГц. Хак: Настраиваем регистры TWI (Two-Wire Interface) напрямую, чтобы увеличить частоту I2C до…

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

Часть 8: EEPROM — Создаем мини-файловую систему

No Picture

У ATmega328P есть всего 1 КБ энергонезависимой памяти EEPROM. Этого достаточно, чтобы хранить настройки, но если мы запишем туда структуры данных, мы сможем эмулировать простую файловую систему с метаданными и проверкой целостности. Проблема стандартного подхода: Мы просто пишем байты…

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

Добро пожаловать в новый, еще более глубокий слой хакерского безумия на ARDUINOHACKS!

No Picture

Мы уже освоили регистры, прерывания, АЦП и даже перепрошили USB-контроллер. Но настоящая магия начинается там, где мы перестаем смотреть на Arduino как на «плату для прототипирования» и начинаем видеть в ней самостоятельную вычислительную систему, способную общаться с миром на…

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