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



Teraz jest 23 kwi 2026, o 04:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 1 lut 2016, o 14:49 
Offline
Nowy

Dołączył(a): 12 sty 2016
Posty: 5
Pomógł: 0

To raczej nie jest prosty problem ze źle ustawionym zegarem... Opisuje co zrobiłem po kolei:

Mam własną płytkę PCB z ATMega32A i chciałem nią programować przez Arduino IDE (pierwszy raz, zawsze pisałem w C...)

1) Znalazłem poradnik jak dodać mega32 do A. IDE i napisałem prostego blinka i działało.
2) Jednak dioda zamiast sekundy migała znacznie wolniej, gdyż ustawiony fabrycznie był 1 MHz
3) Chciałem przestawić fusebity, żeby było 16 MHz (taki kwarc jest dołączony).
4) Stąd obliczyłem fusebity: Low = FF, High = C9. Użyłem konsoli i avrdude, żeby je zaprogramować (nie wiem gdzie to się w tym Arduino IDE robi). Użyłem polecenia: "-U lfuse:w:0xff:m -U hfuse:w:0xc9:m "

5) I tutaj uwaga! Nie zepsuło się. Po wydaniu polecenia, przestawiło fusebity, a dioda zaczęła migać znacznie szybciej (na oko wyglądało jak sekunda więc dobrze).
6) Stąd wniosek, że dobrze obliczyłem fusbity i działało.

7) W takim razie napisałem kolejnego blinka w tym Arduino IDE, przekompilowałem i dałem wgrywanie - i tutaj zonk - A. IDE wywaliło jakimś błędem i zrobiło mi cegłę z ATMegi...
8) Użyłem więc konsoli i avrdude, żeby zobaczyć o co chodzi. Wydając polecenia "avrdude -p m32 -c usbasp" dostaje losowe sygnatury procka. Czasem złapie właściwą, a wtedy jest komunikat, że albo licznik erase-rewrite jest jakiś tam ujemny, albo częściej jest, że bity lfuse nie mogły być odczytane prawidłowo.

9) Próbowałem ustawić jeszcze raz fusebity, ale to nie pomaga.

Na koniec dodam, że testowałem dwa programatory USBAsp, łącznie ze zworkami SLOW_SCK i bez. Ustawiając fusebity wyłączyłem także interface JTAG. No i dioda teraz już w ogóle nie miga.

Co może być przyczyną, bo raczej nie zły zegar (dioda migała w końcu). Co to sie w ogóle stało i jak to naprawić.
Z góry dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2016, o 14:56 
Offline
Moderator
Avatar użytkownika

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

zupazt3 napisał(a):
To raczej nie jest prosty problem

To jest prosty problem jak świat ... i powtarzający się w setkach jak nie tysiącach ezgemplarzy na forach - gdzie początkujący zawsze nagle myślą że zrobili cegłę a przecież WSZYSTKO dobrze podłączyli..... Stąd też zawsze ich opisy się zaczynają dokładnie tak samo czyli:

"Zrobiłem wszystko jak należy!.... połączenia mam IDEALNE! ale mi nie działa i nie znalazłem odpowiedzi na swoje pytanie w internecie"

Panie jak chcesz znaleźć odpowiedź to proponuję włączyć troszkę pokory do tego co się samemu robi i zrozumieć, że można popełnić tysiąc błędów - w połączeniach bo tak - to albo będziesz rozwiązywał ten problem setki godzin albo się poddasz

Zatem zacznij jak się należy od:

1. pokazania DOKŁADNEGO schematu co i jak masz podłączone szczególnie kwarc i kondki
2. pokazania jakichś fotek jak to wygląda
3. przedstawienia jak to dokładnie zasilasz (ale to powinno już ze schematu wynikać)

i wtedy to będzie można ci pomóc ....

_________________
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  
PostNapisane: 1 lut 2016, o 15:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Jak twierdzisz, że coś Ci choć przez chwilę zadziała, to raczej źródło zegara jest OK.
Czy nie masz na pinach ISP czegoś podpiętego lub masz jakiś problem z dobrze stykającym podłączeniem ISP?
Sprawdź jeszcze Slow SCK poprzez parametr -B z dużą wartością (np. -B64) w komendzie avrdude.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2016, o 15:35 
Offline
Moderator
Avatar użytkownika

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

rskup napisał(a):
Jak twierdzisz, że coś Ci choć przez chwilę zadziała, to raczej źródło zegara jest OK.

Wystarczy, że kondki przy kwarcu ktoś da za duże i już mogą być jajka - właśnie takie, może być jakieś lekkie zwarcie pinów kwarca do gnd przez np drobinki cyny w kalafonii ... może być jeszcze dużo takich rzeczy - co już nie raz zdarzało się na tym forum a udało się to znaleźć i podpowiedzieć właśnie chociażby obserwując podesłane zdjęcia - a tu nic nie wiemy. Owszem być może jest dobrze .... ja nie twierdzę że autor od razu ma wszystko źle - no ale ..... możliwości zbabolenia jest tyle, że .... no jak mówię warto mieć troszkę pokory do tego co się robi

A ileż takich wątków kończy się np:

"eeeh okazało się, że pin MOSI nie stykał za dobrze, wymieniłem kabelek i wszystko śmiga - na wszelki wypadek piszę to dla potomnych"

a tymczasem taki delikwent na początku zwykle pisze tak samo - że ma wszystko dobrze jeśli chodzi o połączenia

_________________
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  
PostNapisane: 1 lut 2016, o 17:09 
Offline
Moderator
Avatar użytkownika

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

zupazt3 napisał(a):
Z całym szacunkiem Panie Mirku, ale chyba przeczytał Pan tylko pierwsze zdanie mojego postu gdyż, z reszty Twoich wypowiedzi to wynika i nic właściwie one nie wnoszą. Nie wiem więc kto ma tutaj o pokorze mówić, bo to nie ja bazuję na jakiś uprzedzeniach i założeniach i to nie ja jestem tak pewny siebie, że to "na pewno prosty jak świat problem", kiedy nawet nie przeczytało się jego opisu. Może nie jestem jeszcze zawodowcem, ale za całkiem początkującego też bym się nie uznał. Zrobiłem już dziesiątki płytek z AVRami, a od jakiegoś czasu siedzę w ARM i FPGA, a takiej sytuacji jak ta jeszcze nie miałem.

Ja nie oceniam i nie mam zamiaru oceniać kto jest początkujący a kto nie - za to jasno przedstawiam zasady w jaki sposób warto zadawać pytania bo warto się tego nauczyć .....

zupazt3 napisał(a):
Płytkę sprawdziłem przed chwilą pod lupą dwa razy. Nie ma żadnych zwarć. Jak wynika z mojego pierwszego postu, układ działał - dioda migała także z wykorzystaniem kwarcu, więc to nie jest problem. Problemem też nie są pomylone kabelki, gdyż układ udało się nawet zaprogramować.


W tej chwili zmieniłem programator i użyłem innych kabli i avrdude dość często wykrywa procka ok i wygląda jakby działało. Jednak gdy próbuję go zaprogramować to wgrywa cały program, a następnie go weryfikuje. Po weryfikacji okazuje się, że nie przeszła ona pomyślnie i jeszcze jakoś fusebity przestawia i avrdude pyta się czy ustawić poprzednie wartości fusebitów. Poniżej załączam wyjście avrdude z operacji programowania.

Ja nie twierdzę, że to nie jest jakiś mega głupi błąd, niemniej mi się skończyły już pomysły, a najgorsze jest to, że układ działa niestabilnie. Gdyby w ogóle nie działał to by było jasne. Tymczasem działa niestabilnie - raz go wykryje ok, raz coś pomyli.

No no .... ok skoro jesteś wszystkiego taki pewien .... to powinno działać prawda ? .... powodzenia - ja się rzeczywiście wyłączam z tej dyskusji ... Tym bardziej, że ty sobie ubzdurałeś, że jak są problemy to one zawsze polegają na tym, że albo coś działa albo nie działa .... Sorki ale to bez sensu - większość problemów polega właśnie na takiej sytuacji .... ja obstawiam swoje i nie pisz, że nie czytałem co napisałeś ... bo czytałem i nadal podtrzymuję to co mówiłem - ale rób co tam chcesz ....

zupazt3 napisał(a):
Może ktoś jeszcze sprawdzi czy dobre te fusebity? Low = FF, High = C9. Wydaje się ok, ale już sam nie wiem.

ostatnie co podpowiem w tym wątku, to proszę bardzo tu widać jak masz ustawione fusebity
Obrazek

_________________
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  
PostNapisane: 1 lut 2016, o 17:19 
Offline
Nowy

Dołączył(a): 12 sty 2016
Posty: 5
Pomógł: 0

Tamten post usunąłem już wcześniej, gdyż znalazłem już błąd, ale jak widzę za późno. Błąd dość głupi, choć nie związany z układem co czytaniem dokumentacji.

Ponieważ to jest nowy procek i wygląd dokumentacji się zmienił to nie zauważyłem pewnej rzeczy. Kiedyś na pierwszej stronie był podział kwarców i napięcia. Teraz pisze, że kwrac jest od 0-16MHz, a potem jest na samym koncu dokumentacji doprecyzowane, że min. to 4.5V dla 16 MHz. Ja używam 3.3V i max. mogę dać 8Mhz. Po prostu nowy wygląd dokumentacji mnie zmylił. Gdy podałem 5V to układ działa stabilnie, inaczej dział, ale niestabilnie.

Trzeba wylutowć 16 MHz i wlutować 8MHz i powinno śmigać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2016, o 18:33 
Offline
Użytkownik

Dołączył(a): 26 lip 2015
Posty: 269
Pomógł: 34

Atmege można trochę przetaktować także jak pisze np że do 16mhz to mi dobrze działa na maks 20mhz także myślę, że możesz dać kwarc 11059200 hz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2016, o 19:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Pisałeś
Cytuj:
Mam własną płytkę PCB z ATMega32A
a wersja ATmega32A działa przy 16MHz od 2.7V do 5.5V zasilania. Stare serie były podzielone na wersję ATmega32 i ATmega32L i one miały ograniczenia napięciowe - częstotliwościowe. Ale nowe ATmega32A już tego nie mają :)
Więc albo nie masz ATmega32A albo częstotliwość taktowania procesora nie jest problemem, tylko np. za długie i kable od ISP lub coś w tym stylu.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2016, o 21:45 
Offline
Nowy

Dołączył(a): 12 sty 2016
Posty: 5
Pomógł: 0

rskup napisał(a):
Pisałeś
Cytuj:
Mam własną płytkę PCB z ATMega32A
a wersja ATmega32A działa przy 16MHz od 2.7V do 5.5V zasilania. Stare serie były podzielone na wersję ATmega32 i ATmega32L i one miały ograniczenia napięciowe - częstotliwościowe. Ale nowe ATmega32A już tego nie mają :)
Więc albo nie masz ATmega32A albo częstotliwość taktowania procesora nie jest problemem, tylko np. za długie i kable od ISP lub coś w tym stylu.


Niestety to nie jest prawda. Dokładnie tak właśnie pomyślałem jak Ty czytając pierwszą stronę dokumentacji. Atmegę32A można owszem zasilać od 2.7V, ale dla kwarcu 16 MHz minimalne zasilanie to 4.5V. Opisuje to wykres w dokumentacji na stronie 280 "Figure 28-1. Maximum Frequency vs. VCC.". Poniżej jest także tabelka "28.4.2 External Clock Drive" gdzie są przedziały napięcia i częstotliwości.

Oczywiście to są zalecane wartości i można je przekraczać, ale na własne "ryzyko" tzn. poza zaleceniami producenta.

------------------------------------------
Poza tym wykonałem dalsze testy. Wylutowanie 16 MHz i wlutowanie 8 MHz nie rozwiązało problemu, gdyż układ działał stabilnie, ale programowanie i obsługa programatora nie bardzo - nie dało się zaprogramować. Co skłoniło mnie to przyglądniecia się programatorowi -programator jest zasilany z USB z 5V a system z zasilacza 3.3V i tu jest problem.

Zastosowałem dwa potencjometry montażowe i zrobiłem dwa dzielniki napięcia na SCK i MOSI sprowadzające 5V do 3.1V i działa wszystko jak powinno.

Inaczej mówiąc programator działający na 5V nie nadaje się do programowania systemu 3.3V. Trzeba konwertować napięcia.

To rozwiązuje ten wątek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2016, o 22:24 
Offline
Moderator
Avatar użytkownika

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

zupazt3 napisał(a):
Inaczej mówiąc programator działający na 5V nie nadaje się do programowania systemu 3.3V. Trzeba konwertować napięcia.

Konwersja napięć panie kochany to PODSTAWA podstaw o której warto wiedzieć i często jest o tym mowa i na tym forum, ale i na blogu, zobacz:

http://mirekk36.blogspot.com/2015/05/ko ... v-ttl.html

ale zobacz też jak to się robi jeśli chodzi o programator:
https://www.youtube.com/watch?v=-zskDtR_vZc

zobaczysz, że może on obsługiwać procki zasilane napięciem już od 1,8V aż do 5V

_________________
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  
PostNapisane: 1 lut 2016, o 23:22 
Offline
Nowy

Dołączył(a): 12 sty 2016
Posty: 5
Pomógł: 0

O konwersji napięć przy łączeniu systemu zasilanego 5V z układami na 3.3V (jak karta pamięci itd) raczej bym nie zapomniał. Tutaj problem jest nieco inny - programator zasilany napięciem 5V wystawia jako logiczne 1 też 5V, a ATMega jest na 5V przecież tolerancyjna, więc myślałem, że będzie działać. Jednak prawdopodobnie poziom logiczny 1 nie jest zdefiniowany absolutnie, ale w odniesieniu do napięcia zasilania i stąd ten problem, choć nie jest on dla mnie oczywisty i gdy ktoś nie spytał wcześniej, to stwierdziłbym, że powinno działać. Jak widać nie.

A programatory to wiadomo, ze są takie ze stabilizatorami. Sam kiedyś robiłem taki na STM32 ze wskaźnikiem programowania. Teraz używałem jednak takiego prostego nie-wiem-skąd i on żadnych ficzerów nie ma.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2016, o 23:47 
Offline
Moderator
Avatar użytkownika

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

zupazt3 napisał(a):
Tutaj problem jest nieco inny - programator zasilany napięciem 5V wystawia jako logiczne 1 też 5V, a ATMega jest na 5V przecież tolerancyjna,

Problem nie jest inny - jest zawsze ten sam, bo ATmega zasilana napięciem 3,3V nie jest absolutnie tolerancyjna na 5V

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO