roboforum.ru

Технический форум по робототехнике.
Текущее время: 23 ноя 2024, 07:42

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 21 фев 2009, 00:24 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Итак, успешно замучен бутлоадер для мегаплатки шлюза (ft232rq+atmega88+cc2500).

К сообщению приаттачен архив с двумя папками - boot-m88 и ledtest. В первой - бутлоадер, тот же самый, что использовал vooon для меги32 минибота. Во второй - тестовая прожка, мигающая светодиодом. Для того, чтобы поиметь щастье и грузить свои проги по юсб, нужно проделать следующее:

Инструкция для счастливых обладателей линуха с gcc-avr или винды с WinAVR:

1. Собрать бутлоадер (опционально). Под линухом для этого нужен пакет gcc-avr, под виндой - WinAVR. Просто набрать make.
Для тех, кто пересобирать не хочет (а оно в принципе не сильно и надо) - там же лежит готовый hex-файл, собранный gcc 4.2.0 для atmega88 с кварцем 7.3728 МГц и скорости порта 115200.
2. Зашить этот бутлоадер в мегу. Для этого поправить в мейкфайле AVRDUDE_PORT и AVRDUDE_PROGRAMMER на соответствующие своему программатору, после чего make program.
3. Поставить фьюзы бутлоадера: Extended Fuse Byte = 0x02.

Инструкция (опять же для счастливых :) ) обладателей всех остальных систем программирования AVR:

1. Зашить boot-m88/main.hex в мегу.
2. Поставить фьюзы бутлоадера: BOOTSZ1=0 (programmed) BOOTSZ0=1 (unprogrammed) BOOTRST=0 (programmed)

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

Собственно и все - мы получили платку, способную прошиваться по USB любым AVR109-совместимым программатором.

Для теста можно прошить мигалку светодиодом. Для этого в папке ledtest вписать в мейкфайл правильный порт, соответствующий воткнутому FT232 платки. Далее платку из юсб выдергиваем, вставляем обратно и в течение 5 секунд запускаем make program в той же папке ledtest. Опять же, если другой программатор - то все в нем подготовить и затем после втыкания юсб в течение 5 сек нажать кнопку "Прошить". Если прошивка проходит успешно - то снова передергиваем USB. Платка ждет 5 секунд в бутлоадере и затем весело начинает мигать светодиодом с периодом в 1 секунду. Время ожидания программирования специально увеличено до 5 секунд, т.к. за 1 секунду плата толком даже задетектиться не успевает.

Напоминаю, скорость ком-порта при программировании через бутлоадер нужно выставлять 115200! Если нужна другая скорость и программатор ее менять не умеет по каким-то причинам - пишите, соберу хекс с другой скоростью.

Да, с размером пришлось немножко повозиться. Почему-то у исходного лоадера под мегу8 размер получается меньше килобайта, а под мегу88 - 1100 с лишним байт. Основной причиной такого непотребного поведения оказалось то, что при оптимизации по размеру гцц все равно разматывает функции приема-передачи по уарту в инлайн, а также считает, что несмотря на бесконечный цикл, из main возможен выход. Добавление функциям соответствующих атрибутов помогло загнать непослушный размер в границу килобайта.

Так что 7 килобайт из 8 у нас есть под протоколы обмена по усб и радио. О них мы тоже обязательно поговорим, но попозже :)

ЗЫ а вы считаете что то, что светодиод на +5 вольт подвешен при трехвольтовом питании - это хорошо?


Вложения:
Комментарий к файлу: Исходники и готовый hex бутлоадера для меги88.
boot.tar.bz2 [14 КиБ]
Скачиваний: 53
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 23 авг 2009, 23:28 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Пробовал ваш Бутлоадер, залил в Мегу88, попытался прошить, использовал метод: http://roboforum.ru/viewtopic.php?f=58&t=3973&start=105#p78690
Содержимое командного файла:
Код:
@echo Programming...
@pause
@echo S>com10
@avrdude.exe -p m32 -P com10 -b 115200 -c avr911 -u -U flash:w:WRITER.HEX
@pause

Com10 соответственно порт Мегаплаты

Суть такая что avrdude выдает ошибку и конечно не прошивает:

Добавлено спустя 42 секунды:
Почему не может открыть буффер, я не знаю


Вложения:
error.JPG
error.JPG [ 10.6 КиБ | Просмотров: 4496 ]

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 23 авг 2009, 23:32 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Судя по тексту ошибки - прошивка не при чем. Проблемы просто с открытием СОМ-порта №10. Попробуй терминалом его открыть - откроет или нет?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 23 авг 2009, 23:53 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Терминалом открывает нормально....

Добавлено спустя 19 минут 17 секунд:
Может быть это чем нибудь поможет, но в той же папке создается файл: com10, в котором записана S. То есть насколько я понял, прогер не видя ком-порта создает его как файл

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 24 авг 2009, 00:05 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Попробуй убери @echo S>com10 и удали файл, проверь - может это потом твой файл мешает программатору?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 24 авг 2009, 00:20 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
В общем проблему с портом решил: оказывается avrdude не понимает порты с номером выше 9.
Сейчас плата у меня висит на COM3. Но при программировании avrdude висит:


Вложения:
error2.JPG
error2.JPG [ 4.68 КиБ | Просмотров: 4565 ]

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 24 авг 2009, 00:24 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
а это нормально @avrdude.exe -p m32 -P com10 -b 115200 -c avr911 -u -U flash:w:WRITER.HEX

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 24 авг 2009, 00:26 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Блин, не заметил :oops:. Поставил m88:
Код:
@echo Programming...
@pause
@avrdude.exe -p m88 -P com3 -b 9600 -c avr911 -u -U flash:w:WRITER.HEX
@pause

Но проблему не решило :( . Программатор висит...

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 24 авг 2009, 01:06 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Какой версии avrdude? В 5.8 точно есть код для открытия 10-ого и выше портов.
Там фишка в "\\\\.\\COM%i".

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 24 авг 2009, 02:15 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Версия 5.6.
В общем разобрался с висяком программатора - нужно было перед очередным запуском командного файла переконнектить мегаплату к USB
Проблема сейчас в другом: при верификации выдается ошибка верификации, то есть как я понял - прошивка не заливается...
Код:
@echo Programming...
@pause
@echo S>com3
@avrdude.exe -p m88 -P com3 -b 115200 -c avr911 -u -U flash:w:WRITER.HEX
@pause


Добавлено спустя 43 минуты 47 секунд:
Разобрался и с этим, просто неверно выставил фузы :oops:. Всем спасибо за помощь!


Вложения:
fuses.JPG
fuses.JPG [ 54.91 КиБ | Просмотров: 4483 ]

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 05 мар 2010, 01:53 
Не в сети
Аватара пользователя

Зарегистрирован: 18 окт 2009, 21:28
Сообщения: 2
Откуда: Краснодар
Skype: pavel_a_anufrikov
ФИО: Павел А.Ануфриков
Отличный материал, большое спасибо!
Жаль, что не указаны источники. Бутлоадер основан на проекте AVRProg-compatible Bootloader версии 0.83


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 05 мар 2010, 12:44 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Ну этого особо никто и не скрывал :) В коде упоминание есть. Просто под конец вечера уже как-то не до копирайтов было, радовался что оно заработало и что удалось влезть в 1 килобайт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Бутлоадер для платы шлюза USB-CC2500
СообщениеДобавлено: 05 мар 2010, 20:49 
Не в сети
Аватара пользователя

Зарегистрирован: 18 окт 2009, 21:28
Сообщения: 2
Откуда: Краснодар
Skype: pavel_a_anufrikov
ФИО: Павел А.Ануфриков
Не, реально круто. Сам бился целый день, почти довел до конца (с размером, правда, не разбирался), а потом нашел твое решение, которое заработало практически сразу!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO