Автор Тема: Малко помощ за AVR USBLoader  (Прочетена 8583 пъти)

Iskren

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Малко помощ за AVR USBLoader
« -: Август 31, 2009, 11:29:52 am »
Това е първият ми пост тук. Така, че, Здравейте!  :)
Ако може някой да ми обясни за AVR USBLoader-ите като V-USB например. Искам да си направя схемичка, която да се управлява през USB под Windows. Въпросът ми е: За какво точно служи Bootloader-а и веднъж заключен може ли да се префлашне отново при нужда. Използвам ATMega8 и стандартна схема с ценери за понижаване на напрежението.
Искрен Антонов, гр. Габрово, 36г.

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Малко помощ за AVR USBLoader
« Отговор #1 -: Август 31, 2009, 05:18:32 pm »
Не знам как е при атмегите, но попринцип(и за пик-микроконтролерите) Bootloader е малка програмка, програмирана външно във контролера, която му позволява да се само-програмира през вече вградените периферни комуникационни устройства, било то USB, RS232 <-> RS-485, CAN... При повечето, програмата е поставена в началото на програмната памет, докато при други си има специална част от паметта, предназначена за bootloader. Обикновенно, тази част от кода се защитава, за да не се запишат случайно грешни данни. Важно е да се отбележи, че тази програма няма нищо общо с главната, освен може би ако се използва за комуникация. Попринцип се използва за да се презапише главната програма, ако са направени промени, или да се запише изцяло нова. Arduino е типичен пример. Иначе контролера може да се си презаписва външно, така, че ако се стигне до момента, когато bootloader-а трябва да се премахне, да се презапише или подобри, винаги може да се използва външен програматор :) Не знам на какво е способен този AVR USBLoader за който говориш, но предполагам, че е именно с цел комуникация или програмиране на контролера.
П.С. Добре Дошъл!  :)
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

Iskren

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Малко помощ за AVR USBLoader
« Отговор #2 -: Септември 01, 2009, 12:12:27 am »
Благодаря за бързия отговор. Това отговори на голяма част от въпроса ми, но аз все още не разбирам как мога да запиша контролера само частично след като съм записал вече bootloader-a и после обръщенията през USB към него ли са или към главната програма. В документацията на всички, които намерих пише само, че след RESET се стартира Bootloader-a и ако няма данни от USB управлението се предава на основната програма. Но как тогава мога да подавам данни през УСБ-то след като буута вече не работи. А ако главната програма обработва данните, тогава за какво ми е Bootloader :?:
Изглежда, че аз нещо не вдявам, признавам, че познанията ми са близки до нулата, но не би трябвало да е кой знае колко сложно, схемата е доста елементарна. Изглежда за ПИК има доста повече информация, но пък аз вече се спрях на AVR за добро или лошо  ;)
Искрен Антонов, гр. Габрово, 36г.

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Малко помощ за AVR USBLoader
« Отговор #3 -: Септември 01, 2009, 03:38:34 pm »
Еми явно трябва да пуснеш софт-а на компютъра, за да изпрати данни на буут-а, и явно през него става работата. Главната програма обработва данните, но тя не се използва толкова често за презаписване на код в контролера. Тя самата не може да се презапише. Винаги има програма, която остава непроменена за да презаписва главният код. Това е буутлоудера. А за да може буутлоудера да запише новата версия на главната програма, то той трябва да я получи нали? В случая пренасянето на информация става през USB, това не значи, че само буутлоудера може да използва USB(освен ако изрично е направено така), или че комуникацията става през буутлоудера. Вкрайна сметка, буутлоудера е малка програмка, която служи като вграден програматор. Иначе представи си, че си направил устройство, и искаш да промениш софтуера? Не може поотделно да продаваш на клиентите си програматори и да им обесняваш как се програмира, и да ги караш да отварят кутиите и т.н. Всичко трябва да става автоматично.
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

bobo

  • Робо-Новак
  • *****
  • Публикации: 23
    • Профил
Малко помощ за AVR USBLoader
« Отговор #4 -: Септември 01, 2009, 03:45:20 pm »
Здравй, значи bootloader-a служи само за презаписване на основната програма в контролера (firmware upgrade)- нещо като смяна на BIOS-a на компютъра, т.е. не се използва за стандартна комуникация между контролера и PC-то. За тази цел си има отделни програмки (те, обаче заемат доста ресурс от контролера - при този контролер де) или пък контролери с вграден USB. При Atmel (производителя на Atmega-та) моделите бяха нещо от сорта на AT90S7USB..... - или нещо подобно. Така, че ако искаш USB комуникация - си вземаш или контролер с USB или търсиш някакво софтуерно изпилнение на тази функционалност (например тук: http://uc.hobbielektronika.hu/kapcsolasok_usb_explorer.html сайта е унгарски, ама превода на Google работи прилично). Трета възможност е да се използват USB<->Serial конвертори (повечето контролери имат сериен канал), като например FT232.
Успех.

Iskren

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Малко помощ за AVR USBLoader
« Отговор #5 -: Септември 01, 2009, 04:03:08 pm »
Значи, излиза, че буут-а ми трябва само ако ще програмирам чипа през USB, а тъй като аз ползвам STK200 така или иначе мога спокойно да не си слагам буут на чипа, просто трябва да си осъществявам комуникацията от и към USB чрез главната програма.
Най-после светлина в тунела.  :clap: Много благодаря   :-D
Искрен Антонов, гр. Габрово, 36г.

chwor

  • Вече знае какво е робот!
  • *****
  • Публикации: 53
    • Профил
Малко помощ за AVR USBLoader
« Отговор #6 -: Септември 02, 2009, 11:16:59 pm »
Като гледам на колко години си с руския не би трябвало да имаш проблем. Ето едно доста подробно описание на буутлоадер за ATMEL. Е не е предвиден за USB, но е описано разбираемо как да се "сготви" собствен според нуждите.
http://easyelectronics.ru/avr-uchebnyj-kurs-ispolzovanie-bootloadera.html#more-239

П.С. В сайта има още доста полезни статии и уроци и си заслужава да се разгледа

Iskren

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Малко помощ за AVR USBLoader
« Отговор #7 -: Септември 04, 2009, 04:01:43 pm »
Доста полезна статия, много ти благодаря. Между другото (въпреки годинките ми  :) ) английския ми е доста по-добър от руския. В момента чета "C Programming for Microcontrollers" на Pardue, защото техническия руски ми е доста сложен (така и не го заобичах навремето пустия руски  ;) ) за да чета руските статий от раздел Литература.
Искрен Антонов, гр. Габрово, 36г.