Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 23 lut 2025, o 15:51


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 
Autor Wiadomość
 Tytuł: ATmega8
PostNapisane: 11 sty 2015, o 05:47 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

Witam,

Buduje układ z mikrokontrolerem ATmega8. Po podłączeniu uC do VCC i GND, a także programatora, testuje wszystko podłączając diodę i mikro przełącznik do jakiś linii i wgrywając program. Wszystko działa. Następnie buduje docelowy układ z czterema diodami i mikro przełącznikiem i wgrywam zmieniony program, który najwyraźniej został źle napisany, bo nic się nie dzieje.
I ponownie zmieniam program na najprostszy możliwy, chcę żeby jedna dioda świeciła. I teraz ku mojemu zdziwieniu nic się nie dzieje, tak jakby mikrokontroler nie odpowiadał. Dopiero po kilku godzinach, uC zaczął reagować na moje polecenia. W tej chwili sytuacja znowu się powtórzyła i nie mam kontroli nad ATmegą.
Czy jest ktoś w stanie wyjaśnić tę sytuację?
Dziękuję, pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 06:23 

Pomógł: 0

A czy jesteś pewien że po zmianach zapisujesz projekt zanim go wgrasz do procesora? Czy działasz na stykówce?



Góra
  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 09:42 
Offline
Użytkownik

Dołączył(a): 05 lis 2014
Posty: 237
Pomógł: 6

M__ wstaw schemat, kod, napisz w czym programujesz (Atmel Studio, Eclipse), itd. Bo tak, to jest "wróżenie z fusów". ;)

_________________
Szukasz książek o elektronice i programowaniu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 10:42 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

Programuje w Eclipse, programator mam Atnela, taktowanie jest ustawione na 1Mhz ( w eclipse muszę dodać parametr -B 8).

Obrazek

Acha i teraz wyskakuje mi jeszcze



avrdude.exe:
set SCK frequency to 187500 Hz
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes! Invalid device signature.
avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07

avrdude.exe done. Thank you.

Tak, działam na płytce stykowej.
No i wcześniej, przed pojawieniem się tego błedu w czasie programowania ATmegi w eclipse nie wyskakiwały żadne błędy, a w konsoli widać było, że proces się udał.



Ostatnio edytowano 11 sty 2015, o 10:47 przez M__, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 10:47 
Offline
Nowy

Dołączył(a): 07 sty 2015
Posty: 20
Pomógł: 1

Skonfiguruj jeszcze raz spowolnienie - zamień -B 8 na -B8 (bez spacji) i ruszy ;-)

PS. Windows czy Linux??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 11:00 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

W obu przypadkach pojawia się błąd

avrdude.exe: initialization failed, rc=-1,

czy jest jakiś sposób, żeby coś z tym zrobić, np przy pomocy mkAVrCalculatora?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 11:10 
Offline
Nowy

Dołączył(a): 07 sty 2015
Posty: 20
Pomógł: 1

Spróbuj zmienić za pomocą mkAvrCalculatora w fusach uproszczonych taktowanie na 8MHz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 12:23 
Offline
Użytkownik

Dołączył(a): 05 lis 2014
Posty: 237
Pomógł: 6

Zajrzyj tu: "Krótki guide dla początkujących (rc=-1, Fusy, MkAvrCalc)"

Podłączenie linii programatora sprawdziłeś? Na pewno jest to ATmega8, a nie ATmega88?

_________________
Szukasz książek o elektronice i programowaniu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 13:22 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27359
Lokalizacja: Szczecin
Pomógł: 1042

M__ napisał(a):
Obrazek


Mam nadzieję, że to pierwszy i OSTATNI taki "ala schemat laurka" który kolega zamieścił na tym forum. Bardzo proszę się zapoznać z tym:
http://atnel.pl/kurs-cadsoft-eagle.html

i w ten sposób tu prezentować schematy ok?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 14:19 

Pomógł: 0

M__ napisał(a):
Tak, działam na płytce stykowej.

To coś mi się wydaje że problemy masz w pewności połączeń na stykach - częsty problem.



Góra
  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 14:37 
Offline
Nowy

Dołączył(a): 14 gru 2014
Posty: 3
Pomógł: 0

wojtek napisał(a):
M__ napisał(a):
Tak, działam na płytce stykowej.

To coś mi się wydaje że problemy masz w pewności połączeń na stykach - częsty problem.


Jeśli tak, to wystarczy przepiąć uC w inne miejsce na stykówce. To najprostsze co można zrobić, żeby wyeliminować problem złego połączenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 14:41 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

Przepraszam za to całe zamieszanie. Przedstawię teraz jasno problem. Zainstalowalam na innym komputerze eclipse, atmel toolbar, avr plugin, oraz mkavrcalculator. Montuje układ tak jak na rysunku powyżej (za który przepraszam). Podłączam programator Pana Mirka i odpalam mkavrcalculator. Atmega 8 odczytana, brak błędów. Zakładka fusebity, zmieniam na 8mega hz, zapis, fusebity, okej.
Włączam eclipse, projekt C, atmega 8, 8M hz, programator USBasp. Piszę program:

#include <avr/io.h>
#include <util/delay.h>

int main (void) {

DDRC = (1<<PC5);

while (1){

PORTC |= (1<<PC5);
_delay_ms(500)(

}
}

Kompiluje i wgrywam. W konsoli żadne błędy się nie pojawiają, ale dioda nie miga. Tak jakby mikrokontroler się zawiesił. Dodam jeszcze, że wczoraj programator przez chwilę działał tak, że gdy podłączałem zworkę zasilania dioda niebieska przestawała świecić i świeciła tylko zielona (system odczytywał to jako awarię urządzenia). W tej chwili programator działa okej. Jedyny problem jest taki, ze nie wiem czemu mój uC nie chce działać, mimo że żadnych błędów nie ma. Panie Mirku proszę o pomoc!!

Spróbuję przestawić mikrokontroler w inne miejsce na płytce tak jak kolega mówi, może te pomoże
.

------------------------ [ Dodano po: 4 minutach ]

zamiast |= powinno być ^=



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 14:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Masz wpisane DDRC = a powinno być DDRC |=

Pokaż fotkę stykówki jak to masz tam połączone.

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 15:02 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27359
Lokalizacja: Szczecin
Pomógł: 1042

majster napisał(a):
Masz wpisane DDRC = a powinno być DDRC |=


eeeh ;) .... ani to ani to .... a przecież w poradniku wideo już nie wspomnę o Bluebooku jest to jasno napisane i pokazane ;)

tu chodzi o XOR

^=

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 15:40 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

Czytałem pański poradnik, poprawiłem się na dole pod głównym postem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 15:44 
Offline
Użytkownik

Dołączył(a): 25 lut 2014
Posty: 69
Pomógł: 6

Błąd w przepisywaniu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
?
Bo jeżeli nie, to zamiast ( daj ;



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 16:08 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

Błąd w przepisywaniu, na telefonie to pisałem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 16:20 
Offline
Użytkownik

Dołączył(a): 25 lut 2014
Posty: 69
Pomógł: 6

To podeślij jeszcze zdjęcie tego układu ze stykówki, może tam coś masz źle



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 16:33 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

ObrazekObrazek

Jak coś jest bardzo źle podłączone to proszę nie krzyczeć :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 16:39 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Witam
dioda cały czas się świeci ? ponieważ jest tak jak napisał Mirek , non sto wysyłasz to samo :
PORTC |= (1<<PC5);
zamiast
PORTC ^=(1<<PC5);
i będzie grało
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 16:45 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

Pod moim wcześniejszym postem jest poprawka do kodu programu, gdyż z pośpiechu źle go przepisałem na forum. Dioda wcale się nie świeci.
Nawet przy takim programie nic się nie dzieje,

#include <avr/io.h>
#include <util/delay.h>

int main (void) {

DDRC = (1<<PC5);
PORTC |= (1<<PC5);
}



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 16:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 447
Lokalizacja: DKL
Pomógł: 53

@M__, złe podłączenie, wiesz jak przebiegają połączenia na płytce stykowej?

Obrazek

Teraz na linii procesora + dioda + jeden koniec rezystora ma po prostu zwarcie, diody musisz obrócić o 90st.

Np tak jak na tym rysunku.
Obrazek


Edit:
Podaję jeszcze prawidłowy i sprawdzony kod programu do migania diodą LED.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Ostatnio edytowano 11 sty 2015, o 17:02 przez matw, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 16:55 
Offline
Użytkownik

Dołączył(a): 05 lis 2014
Posty: 237
Pomógł: 6

Kolego M__ tu masz bardzo fajne krótkie podsumowanie: "AVR - porty - we/wy - dir - PODSTAWY" :)

Spróbuj taki kod:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


O, widzę, że o samym podłączeniu już ktoś napisał.

_________________
Szukasz książek o elektronice i programowaniu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 17:19 
Offline
Nowy

Dołączył(a): 11 sty 2015
Posty: 9
Pomógł: 0

Ehh, przepraszam wszystkich, coś mi się w głowie pomieszało. Dziękuje za pomoc.

------------------------ [ Dodano po: 36 minutach ]

Wszystko działa :))
Obrazek

Mogę teraz spokojnie programować, jeszcze raz dziękuje wszystkim za pomoc i przepraszam za brak myślenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8
PostNapisane: 11 sty 2015, o 18:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

mirekk36 napisał(a):
majster napisał(a):
Masz wpisane DDRC = a powinno być DDRC |=


eeeh ;) .... ani to ani to .... a przecież w poradniku wideo już nie wspomnę o Bluebooku jest to jasno napisane i pokazane ;)

tu chodzi o XOR

^=

W init main kolega ma tylko = jak zacznie bawić się pozostałymi pinami z tego portu to bedzie zonk.

Dlatego proponowałem zapis |= zamiast samego = ale w int main(void)



M__ napisał(a):

#include <avr/io.h>
#include <util/delay.h>

int main (void) {

DDRC = (1<<PC5);

while (1){

PORTC |= (1<<PC5);
_delay_ms(500)(

}
}



------------------------ [ Dodano po: 4 minutach ]

zamiast |= powinno być ^=



A ze kolega sam już pisał o xor to błąd w petli while pominąłem.

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO