bootloader для AVR

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

bootloader для AVR

Сообщение andrewproffi (Андрей) » 09 июл 2016, 13:39

Заинтересовался этой темой, но не получается разобраться с готовыми решениями. Есть у кого то успешный опыт и инструкция по установке usb или uart загрузчика?
Целевой контроллер - atmega8
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе

Re: bootloader для AVR

Сообщение mim (mim) » 09 июл 2016, 15:37

И че???? поезд ушел.... не хочется...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: bootloader для AVR

Сообщение andrewproffi (Андрей) » 09 июл 2016, 15:48

Плохо (
ps: я говорю не только о загрузчике написанном в флоукоде, а вообще. Кто использует помогите разобраться.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: bootloader для AVR

Сообщение andrewproffi (Андрей) » 10 июл 2016, 08:25

ну прям закидали предложениями...
Если кому то нужен, то на сайте ниже нашел хорошее описание и понятный софт. Получилось с первого раза. Программирование по RS232, в моем случае через преобразователь USB-UART. То есть программирование идет через usb порт без использования программатора (после того как запишите в контроллер сам загрузчик).
статья по этому загрузчику http://chipenable.ru/index.php/programm ... xmega.html
видеоурок: https://www.youtube.com/watch?v=FgYwAayu-LI
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: bootloader для AVR

Сообщение pav13 (pav13) » 12 июл 2016, 00:12

BootloadHID
Архив с программами.

main.hex из папки bootloadHID.2012-12-08 изначально настроен так:
Atmega8, 12 МГц
линия D+ ---> PD2(INT0) изменять нельзя,
линия D- ---> PD0,
джампер ---> PD3, эта нога замыкается на землю для активации программирования через бутзагрузчик.


Для кастомизации прошивки под свои порты нужна программа WinAVR. В ней есть Programmers Notepad, открыв в нём файл "makefile" можно скомпилировать прошивку (меню Tools ->[WinAVR] Make All).

В файле bootloaderconfig.h редактируем строки:

выбор порта для линий USB (лучше не менять)
Код: выделить все
#define USB_CFG_IOPORTNAME      D

выбор ножки вышеуказанного порта для сигнала D-, по умолчанию PD0(RXD)
Код: выделить все
#define USB_CFG_DMINUS_BIT      0

изменение ножки джампера
Код: выделить все
static inline void  bootLoaderInit(void)
{
    PORTD = 1 << 3; /* activate pull-up for key */
    _delay_us(10);  /* wait for levels to stabilize */
}

#define bootLoaderCondition()   ((PIND & (1 << 3)) == 0)   /* True if jumper is set */

например на PB2
Код: выделить все
static inline void  bootLoaderInit(void)
{
    PORTB = 1 << 2; /* activate pull-up for key */
    _delay_us(10);  /* wait for levels to stabilize */
}

#define bootLoaderCondition()   ((PINB & (1 << 2)) == 0)   /* True if jumper is set */


В файле Makefile(открываем его в Programmers Notepad):

используемый МК
Код: выделить все
DEVICE = atmega8

например, мега16
Код: выделить все
DEVICE = atmega16

Адрес программы бутзагрузчика для меги8
Код: выделить все
BOOTLOADER_ADDRESS = 1800

например, для меги16
Код: выделить все
BOOTLOADER_ADDRESS = 3800

частота кварца 12 МГц
Код: выделить все
F_CPU = 12000000

например, 16 МГц
Код: выделить все
F_CPU = 16000000

Сразу скажу, что моя мега8 работала с загрузчиком только при 12 Мгц. Возможно я чего-то не так делаю.
Итак, сохраняем файл, но не закрываем редактор. Компилируем "меню Tools ->[WinAVR] Make All". В папке с файлами появился(обновился) файл main.hex. Его и прошиваем в МК любым удобным программатором.

Fuse биты:
fuse.GIF

фьюзы для Khazama AVR Programmer есть в архиве.

Далее собираем схему. Стабилитронов у меня на 3.6 В не было, поставил на 3.3 В. Всё работает.
AVR и USB это просто.png

Устанавливаем джампер. Подключаем USB к компьютеру. Он не должен выдать никаких сообщение об ошибке. Если попросит дрова, что-то есть в папке bootloadHID.2012-12-08/usbdrv, но по идее этому загрузчику драйвера не нужны.

Запускаем утилиту HIDBootFlash.exe, ничего не меняем, нажимаем Find device и если всё работает нормально, то в центре окна появится кнопка Open hex file. Выбираем прошивку для заливки в МК. Нажимаем Flash device, можно поставить галочку Reboot AVR, чтобы записанная программа запустилась после прошивки. Отключаем от USB, убираем джампер.
Вот и всё!!!

Архив с программами.
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось pav13 12 июл 2016, 11:23, всего редактировалось 2 раз(а).
Изображение
FC AVR 5.5.2.1 + исправления / Proteus 8.8 / AtmelStudio 7
drive.google.com/open?id=1zOOA1dH952RegF1N4-jipYkr13iuToSY
Аватар пользователя
Ник: pav13
Имя: pav13
(Тёмовск)
Практикант
Практикант
Информация о пользователе
Вернуться наверх

Re: bootloader для AVR

Сообщение andrewproffi (Андрей) » 12 июл 2016, 03:23

Спасибо. небольшие замечания:
не работал МК с какой частотой? насколько я знаю для usb нужна частота от 12 и выше.
я тоже редактировал его с помощью notepad++
для компиляции программы можно указать в командной строке путь к этому файлу и ввести команду make. (нигде это не написано, еле нашел, а то не знал как скомпилировать). Для упрощения, чтобы не вводить адрес в ручную, создаем в папке с файлами текстовый документ, пишем в нем start, сохраняем и изменяем расширение на bat. после это запускаем его, откроется командная строка с уже введенным адресом где расположен этот файл.
очень хотелось бы загрузчик под usbasp, он сильно похож на этот, думаю теперь по примеру смогу разобраться.
ps: делал все тоже самое, не получалось.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: bootloader для AVR

Сообщение pav13 (pav13) » 12 июл 2016, 06:36

Пробовал ставить кварц на 16 МГц. Изменил значение в makefile. Сам микроконтроллер работает, кварц исправен, но не определяется для прошики загрузчиком при установленном джампере. Причем если отключить питание, сменить кварц с 16 на 12 МГц, и снова подключить к ПК, все работает.
В файле bootloaderconfig.h есть ещё строка, но с ней не разобрался.
Код: выделить все
#define USB_CFG_CLOCK_KHZ       (F_CPU/1000)
/* Clock rate of the AVR in MHz. Legal values are 12000, 12800, 15000, 16000,
 * 16500 and 20000. The 12.8 MHz and 16.5 MHz versions of the code require no
 * crystal, they tolerate +/- 1% deviation from the nominal frequency. All
 * other rates require a precision of 2000 ppm and thus a crystal!
 * Default if not specified: 12 MHz
 */

USBaspLoader подходит для мега16 и выше, так что в практике ничем не помогу.
UPD: Всё работает на мега8, читаем далее как.
Последний раз редактировалось pav13 12 июл 2016, 15:23, всего редактировалось 1 раз.
Изображение
FC AVR 5.5.2.1 + исправления / Proteus 8.8 / AtmelStudio 7
drive.google.com/open?id=1zOOA1dH952RegF1N4-jipYkr13iuToSY
Аватар пользователя
Ник: pav13
Имя: pav13
(Тёмовск)
Практикант
Практикант
Информация о пользователе
Вернуться наверх

Re: bootloader для AVR

Сообщение andrewproffi (Андрей) » 12 июл 2016, 08:25

А памяти этот загрузчик сколько занимает?
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: bootloader для AVR

Сообщение pav13 (pav13) » 12 июл 2016, 09:47

andrewproffi писал(а):А памяти этот загрузчик сколько занимает?

bootloadHID - 2кб, фьюз размера бутсектора МК стоит на 1024 слова * 2 = 2048 б
USBaspLoader - точно не скажу, на разных сайтах по разному, где 2кб, а где пишут что больше 2-х. Возможно даже и для меги8 можно его заюзать. Пока в поиске.
Изображение
FC AVR 5.5.2.1 + исправления / Proteus 8.8 / AtmelStudio 7
drive.google.com/open?id=1zOOA1dH952RegF1N4-jipYkr13iuToSY
Аватар пользователя
Ник: pav13
Имя: pav13
(Тёмовск)
Практикант
Практикант
Информация о пользователе
Вернуться наверх

Re: bootloader для AVR

Сообщение andrewproffi (Андрей) » 12 июл 2016, 09:56

думаю пока своим буду пользоваться, все равно программирование через usb порт получается. И для установки заморачиваться не надо.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

След.

Вернуться в ПЕСОЧНИЦА

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron