Bootloader dla ATMEGA8

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 23 gru 2009, 22:55

Witam,

A o jaki bootloader chodzi? U mnie np. avr109 z atmega8/8535 działa w porządku. Ponadto, udało mi się również uruchomić ten bootloader

[ Dodano: 2009-12-23, 22:57 ]
Potrzebuje bootloadera o jak najmniejszym rozmiarze czyli do 256B.
To już wiem o jaki chodzi;) Te które podałem, nie spełniają tego wymagania.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 23 gru 2009, 23:19

atelszewski pisze:udało mi się również uruchomić ten bootloader
i działa dobrze?
ogólnie potrzebny mi bootloader na atmega 8 żeby móc później spuścić soft do proca po usb.
atelszewski pisze:udało mi się również uruchomić ten bootloader
a jak go w ogóle bujnąć? nie kminię tego ni w ząb.

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 24 gru 2009, 0:36

Witam,

Zbuduj układ według schematu podanego na stronie. Uwaga, projekt korzysta z V-USB, także taktowanie kwarcem jest wymagane (RC może nie wystarczyć).

Ściągnij soft. W jednym katalogu (firmware) znajduje się oprogramowanie dla procka. Skompiluj je i wgraj po ISP. W katalogu software znajduje się oprogramowanie dla PC, które też trzeba skompilować, a służy ono do obsługi bootloader'a. Nie wiem jak wygląda sprawa kompilacji tej aplikacji pod windowsem, bo korzystam z linuksa.

Jeśli wszystko poprawnie skompilowałeś/zainstalowałeś, aby uruchomić bootloader, przed włączeniem zasilania procka, powinna być założona zworka. Jeśli połączenie USB działa prawidłowo, w systemie powinno pojawić się nowe urządzenie USB (nie pamiętam już nazwy). Teraz korzystasz z aplikacji avrusbboot, aby załadować program do procka.

Jeśli chodzi o soft na windowsa, to chyba wymagane jest zainstalowanie sterowników z katalogu bin.

Generalnie, przeczytaj dokumentację ze strony i z tej paczki, co jest na tej stronie i wszystko powinno być jasne.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 24 gru 2009, 9:13

atelszewski pisze:W katalogu software znajduje się oprogramowanie dla PC, które też trzeba skompilować
chciałem skompilować programem devC++, ale nic z tego. za każdym razem wyskakuja błędy mimo że skopiowałem dołączone biblioteki do folderu include.
skoro nie mogłęm skompilować softu dla Pc to dla procka tym bardziej tego nie zrobię, chyba że mi podpowiesz czym?

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 24 gru 2009, 10:31

Witam,

Program na procka skompilujesz za pomocą WinAVR.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 24 gru 2009, 10:31

atelszewski pisze:Program na procka skompilujesz za pomocą WinAVR.
a pod windę?

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 24 gru 2009, 10:34

Witam,

WinAVR jest dla windowsa. Wnioskuję, że programujesz w Bascomie? Bo WinAVR jest przeznaczony dla C/C++.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 24 gru 2009, 10:37

powitać, gdzie moje dobre maniery.
atelszewski pisze:Wnioskuję, że programujesz w Bascomie?
"programujesz" to duże słowo. powiedzmy że staram się.
atelszewski pisze:WinAVR jest przeznaczony dla C/C++.
czyli skompiluje nim oba softy? i dla procka i dla windy?
Ostatnio zmieniony 24 gru 2009, 10:59 przez matrix, łącznie zmieniany 1 raz.

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 24 gru 2009, 10:55

Witam,

Za pomocą WinAVR skompilujesz program tylko dla proca.
"programujesz" to duże słowo.
Skoro dopiero zaczynasz, to może na razie daj sobie spokój z tym bootloader'em. Jest tutaj kilka miejsc zapalnych, w których można popełnić błąd i bootloader ani drgnie. Taka długotrwała stagnacja z uruchomieniem oprogramowania może cię zniechęcić.

Umówmy się tak. Poszukaj w EdW kursu C Radosława Koppel, załap podstawy (przede wszystkim jak skompilować jakiś program). W EdW był też artykuł tego samego autora nt. bootloader'a avr109, zapoznaj się również z tym materiałem. Myślę, że jak uda Ci się przebrnąć przez ten materiał, wtedy będziemy mogli wrócić do tematu bootloader'a USB.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 24 gru 2009, 10:59

atelszewski pisze:Skoro dopiero zaczynasz, to może na razie daj sobie spokój z tym bootloader'em.
może zaczynam to też nie do końca. napisałem już własną konsolową aplikację w C++ do przeliczania przełożeń w modelu zdalnie sterowanym, więc chyba coś tam kumam? napisałem w bascomie sterownik świateł do modelu który odczytuje informacje podawane na regulator prędkości więc to też chyba nie taki początek?
a zależy mi na tym bootloaderze jak diabli.

poza tym najwyraźniej jestem idiotą bo ściągnąłem WinAVR i nie mogę załadować żadnego pliku do tego programu. ocb?

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 24 gru 2009, 11:20

Witam,
poza tym najwyraźniej jestem idiotą bo ściągnąłem WinAVR i nie mogę załadować żadnego pliku do tego programu. ocb?
Dlatego piszę, żebyś poszukał tego kursu. Tam będziesz miał podane wszystko jak na dłoni. Z WinAVR już nie korzystam długi czas i nie bardzo mogę pomóc w tym zakresie.

Bardziej precyzyjnych informacji odnośnie bootloadera na USB będę mógł udzielić dopiero w przyszłym tygodniu, bo teraz nie mam dostępu do sprzętu.

Na pewno musisz zwrócić uwagę na to, żeby proc był taktowany zewnętrznym kwarcem, takim jaki jest podany na schemacie. Trzeba też w atmega ustawić fuse bit odpowiedzialny za skok do sekcji bootloadera. No i wszystkie połączenia muszą być zgodne ze schematem, diody zenera są konieczne.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 24 gru 2009, 11:23

ok, czekam na dalsze wskazówki, a co do uruchomienia czegokolwiek pod WinAVR to już daję radę. instalator nie poinformował mnie że muszę ponownie uruchomić kompa.

naprawdę zależy mi na tym mocno więc będę wdzięczny za pomoc.
pozdrawiam.
Piotr.

teoretycznie skompilowałem. w załączniku daje pliki HEX. tylko nie wiem czy to na atmega8 bo jak otworzyłem oryginalny plik MAIN w katalogu firmaware to jest tam sekcja gdzie napisane jest:

Kod: Zaznacz cały

# Fuse low byte:
# 0xef = 1 1 1 0   1 1 1 1
#        ^ ^ \+/   \--+--/
#        | |  |       +------- CKSEL 3..0 (clock selection -> crystal @ 12 MHz)
#        | |  +--------------- SUT 1..0 (BOD enabled, fast rising power)
#        | +------------------ CKOUT (clock output on CKOUT pin -> disabled)
#        +-------------------- CKDIV8 (divide clock by 8 -> don't divide)
#
# Fuse high byte:
# 0xdb = 1 1 0 1   1 0 1 1
#        ^ ^ ^ ^   \-+-/ ^
#        | | | |     |   +---- RSTDISBL (disable external reset -> enabled)
#        | | | |     +-------- BODLEVEL 2..0 (brownout trigger level -> 2.7V)
#        | | | +-------------- WDTON (watchdog timer always on -> disable)
#        | | +---------------- SPIEN (enable serial programming -> enabled)
#        | +------------------ EESAVE (preserve EEPROM on Chip Erase -> not preserved)
#        +-------------------- DWEN (debug wire enable)
fuse_tiny2313:	# only needed for attiny2313
	$(UISP) --wr_fuse_l=0xef --wr_fuse_h=0xdb
tu na dole napisane jest fuse_tiny2313, więc nie wiem czy to w końcu na atmega8 czy na tiny2313?
Załączniki
main.zip
(2.25 KiB) Pobrany 493 razy

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 24 gru 2009, 13:53

Piotrek tam jest napisane
:fuse_tiny2313: # only needed for attiny2313 - Potrzebne tylko dla attiny213
czyli te dwie ostanie linie możesz wywalić.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 24 gru 2009, 19:18

nie wiem czemu, ale zawsze jak chcę skompilować plik i stworzyć HEX'a to już podczas kompilacji wyskakuje mi komunikat:

Kod: Zaznacz cały

> "make.exe" all

> Failed to create process: Nie można odnaleźć określonego pliku.

> Process Exit Code: 0
> Time Taken: 00:00

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 24 gru 2009, 19:20

Plik makefie masz w katalogu w którym kompilujesz i czy masz w nim poprawnie ustawione nazwy plików które chcesz kompilować?

ODPOWIEDZ