Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ru_Led_Cube_0.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
139.56 Кб
Скачать

Шаг 45: Программируйте avr: Установите биты плавкого предохранителя

У ATmega32 есть два байта плавкого предохранителя. Они содержат параметры настройки, которые должны быть загружены прежде, чем центральный процессор может запустить, как источник часов и другой материал. Вы должны программировать свой ATmega, чтобы использовать внешний кварцевый высокоскоростной генератор и отключить JTAG.

Мы устанавливаем более низкий байт плавкого предохранителя (lfuse) в 0b11101111 и высокий байт плавкого предохранителя к 0b11001001. (0b означает, что все после b находится в двоичном).

Мы использовали avrdude и USBtinyISP (http://www.ladyada.net/make/usbtinyisp/), чтобы программировать наш ATmega.

Во всех следующих примерах мы будем использовать компьютер с ОС Linux Ubuntu. Команды должны быть идентичными, если Вы управляете avrdude на Windows.

avrdude-c usbtiny-p m32-U lfuse:w:0b11101111:m avrdude-c usbtiny-p m32-U hfuse:w:0b11001001:m

Предупреждение: Если Вы понимаете это превратно, Вы легко можете получить из ATmega кирпич! Если Вы, например, повредите кнопку сброса, то Вы не сможете повторно программировать ее.

Шаг 46: Программа avr с тестовым кодом

Время, чтобы проверить, работает ли ваш светодиодный куб!

Мы подготовили простую тестовую программу, чтобы проверить, работают ли все светодиоды и правильно ли они подключены.

Вы можете загрузить прошивку test.hex в этом шаге, или загрузить исходный код и скомпилировать его самостоятельно.

Как в предыдущем шаге, мы используем avrdude для программирования:

  • avrdude -c usbtiny -p m32 -B 1 -U flash:w:test.hex

-c usbtiny specifies that we are using the USBtinyISP from Ladyada -p m32 specifies that the device is an ATmega32 -B 1 рассказывает AVRDUDE работает на более высокой скорости, чем по умолчанию

speed. -U flash:w:test.hex указывает, что мы работаем на флэш-памяти, в режиме записи, с файлом test.hex

Шаг 47: Проверьте куб

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

Работа начнется с рисования плоскости вдоль одной оси и перемещением по всем 8 позициям этой оси. Тестовый код пересекает плоскость, проходя через все три оси. После этого, загорятся светодиоды в слое один за другим, начиная с нижнего слоя.

Если какой-либо из слоев или столбцов, светится в неправильном порядке, значит, что вы припаяли неправильный провод к неправильному слою или столбцу.

Шаг 48: Программирование avr с реальным кодом

Так все проверенно в тесте. Пора программировать ATmega с реальной прошивкой!

В основном процесс такой же, как и в предыдущем шаге. Но кроме этого Вы должны программировать память EEPROM.

Прошивки программируется с использованием той же процедуры тест-кода.

Прошивка:

  • avrdude -c usbtiny -p m32 -B 1 -U flash:w:main.hex

EEPROM:

  • avrdude -c usbtiny -p m32 -B 1 -U eeprom:w:main.eep

- U eeprom:w:main.eep указывает, что мы получили доступ к памяти EEPROM, в режиме записи. AVR-GCC помещает все данные в EEPROM main.eep

Если Вы не хотите еще поиграть с кодом, то Ваш светодиодный куб на этом закончен.

Если Вы загружаете бинарные файлы, Вы должны изменить имена файла в командах к названию файлов, которые Вы загрузили. Если Вы собираете из источника, имя - main.hex и main.eep.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]