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



Teraz jest 8 sty 2025, o 17:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 22 kwi 2014, o 06:50 
Offline
Nowy

Dołączył(a): 31 lip 2013
Posty: 9
Pomógł: 0

Witam 1 post z cyklu "Hello World" a potem do sedna...

Mówią mi Janek, mam przerwę w studiowaniu, odpoczywam od gorączki studiowania inf. z PWr. Kodzę co nie co w Javie (silniejszy w tym jestem niż w C), kodziłem w asmie do AVR(gotowy zestaw, i od razu miłość do 8-bitowców) w innych wynalazkach kodziłem także, powróciłem do C na rzecz AVR. Skrótem pojęcie mam o programowaniu, gorzej z elektroniką (ukłon w stronę blogu Mirka), obie książki też niczego sobie.

Technikalia:
Prog: USBasp "mirkowy"
IDE: Eclipse

Układ:
- Kostka z Ledów, (na tym etapie brak biblioteki, ale testy wykazały że działa z poziomu mikrokontrolera
- 3 micro switche, (biblioteka zaczerpnięta z innego blogu, drgania styków, repetytacja i te sprawy, w każdym razie działa i nic się nie gryzie)
- LCD HD44780 (biblioteka mirkowa)
- Zewn. kwarc 16MHz
- Zasilanie z programatora z łącza hybrydowego eSATA/USB na lapku - 0 problemów
- wpięte 2 diody jedna w linie MISO (chce widziec z poziomu płytki stykowej ze coś się programuje), druga w pieta w zasilanie, ot miło podczas kodzenia nocnego jak mi świeci ;)
- Fusebity: JTag wyłaczony, i ustawiony zewn. oscylator

Problem:
Programuje jakoś od 6-7 dni teraz na jednej ATmedze 16 tak jakoś wychodzi że po 16 h dzien w dzien ( a co wolne mam ;) zagranicą w ciepłym jest mi lepiej).

Program się rozbudował chcę sterować kostkę za pomocą różnych efektów (czyli pwm, timery pójda w ruch, książki jeszcze bardziej), ale na razie kostki nie ruszałem mocniej aniżeli odpalić czy działa i czy układ wytrzymuje prądowo. Na obecnym etapie kostka nie jest włączana. Inicjacja ATmegi polega na wypuszczeniu na wszystkie piny stanu wysokiego (cos tam Mirek wspominał o Hi-z, tworzących się antenkach...) a potem od razu inicjalizacja i ustawienia peryferiów, na odpowiednie by chodziło.

Klawiaturka i ekran działa bez zarzutów i już mnie wszystko słucha jak chce. Na razie wszystko chodzi na głównej pętli, pewnie z czasem dojdą przerwania.

Do Sedna:
Ładowanie wsadu odbywało się bez problemów. Po n-tej próbie odpalenia tandemu kompilacja-wsad i sprawdzeniu czy poruszanie się po menu z tablicy C-stringowej dziala prawidlowo za chwilę zrobiłem reset sprzetowy (też n-ty raz) iii...

załadował sie znak zachety na LCD (prawidłowo) po czym cyk na klawisz iiii... klawisze odmawiają posłuszeństwa. No to guzik RESET i jeszcze raz.

LCD załadował się cały w kwadraty o_0... myślę zasilanie wyłacz poczekaj pól minuty i włącz. EFEKT: LCD zapelniony kwadratami o_0 wciąż.

Eclipse nie może załadować nagle tego samego wkładu co przed chwilą. MkAVR nie może wykryć uC, na USBasp dioda od MISO czerwienieje ze złości i wyłączyć się inaczej niż wyciągnąć z zasilania nie da rady. Ponowne próby odpalenia to fiasko. A avr dude się sypie(nie odpowiada)

Reset kompa. MkAVR czyta uC o_0 (cud?!) czyszczenie fusow i pamieci, a potem wgranie wsadu z eclipsa. Odpalam... DZIAŁA

po czasie dosłownie pare kompilacji i 2 wsady. Ponowna próba i nagle znowu układ przestaje mnie słuchać tak samo jak wczesniej (zapelniony LCD i brak odpowiedzi z klawiszy), eclipse też nie może w grać i MKAvr też się śmieje że nie może znaleźć uC??

Mam na szczęście nowiuśką Atmege, fusy, wsad i na razie działa.... nie ma problemów.

Na obecnym układzie na płytce stykowej "stara" atmega działała bez problemów, wcześniej na niej pracowałem (rok temu) też dosłownie tydzien, ale dużo na niej nie robiłem.
Nowa ATMEGA też działa...

Pytania:
1) Czy atmega mogła paść?
2) Czy zabawa programowa pod tytułem:
Wychodziłem poza zakres tablicy C-stringowej w przód i w tył (pod koniec dodałem granice, zmęczenie dało się we znaki i podstawy poszły spać), gdzie było wyświetlane na LCD co w RAMie piszczy (debugowanie obsługi klawiszy) mogło wpłynąć na zmianę parametrów uC?

2a) Jeśli tak to czemu po udanej próbie komunikacji z uC przywróceniu ustawień domyślnych, ustawieniem na nowo fusów i wgranie wsadu potem znowu się rozssypał (mimo że już obsługa graniczna była), mogło tak mocno nadpisać RAM ? (sieje może Herezje ale po długich nocach i godzinach człowiek głupieje).

Mając na myśli RAM mówię o adresach moich zmiennych i wyświetlaniu z tej pamięci, także w tej pamięci siedzą ustawienia uC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2014, o 06:57 

Pomógł: 0

A może szwankują ci po prostu połączenia na płytce stykowej?



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2014, o 07:29 
Offline
Nowy

Dołączył(a): 31 lip 2013
Posty: 9
Pomógł: 0

Strasznie wątpię żeby coś poluzowało się...
Obrazek

Ja tylko namiętnie ciskam te 3 klawisze...

Ten układ nie rusza stoi na półce.

Kod:
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.

Compiled special for http://forum.atnel.pl (v5.11.1)



Właśnie zauważyłem to teraz. Na czerwono:

avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes! Invalid device signature.


A teraz niech ktoś mnie oświeci...
Czyli jednak mogłem nadpisać RAM ? za pomocą takiego kodu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wcześniej zamiast <= , >= było !=... więc warunek był inny

tylko ten kod siedzi w pętli głównej i coś robi.

------
Pytania:
1) Czy to oznacza że mikrokontroler poszedł do krainy wiecznych łowów? Czy da się jakoś go odzyskać.

2) Czy odczyt z pamięci RAM i wyświetlenie, mógł nadpisać sygnatury uC?

3) Czy nadpisanie wynika z czego innego...?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2014, o 07:54 

Pomógł: 0

Ja bym jednak sprawdził połaczenia. Plka stykowa to ma do siebie ze może utracic gdzieś połaczenie w najmniej spodziewanym momencie.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2014, o 08:07 
Offline
Nowy

Dołączył(a): 31 lip 2013
Posty: 9
Pomógł: 0

To nie jest wina płytki. Moje przekonanie się potwierdzają nowa kostka odzywa się stara nie. Tutaj wielkiej filozofii nie ma... 3 przełożenia chyba starcza...
Poza tym wsad jest ten sam w nowej atmedze...

W tej historii jest tak że układ odmówił posłuszeństwa w trakcie działania, reset Hardwarowy i zaczeły się cyrki w postaci "zalania" obrazu LCD. Z nowa ATmegą już tego nie ma. Jak elektronike kłaść na płytce to raz a porządnie i zapomnieć. Najbardziej ruchliwe pole to 3 przyciski a tam jest sporo miejsca na palce...

Od strony programistycznej to była tylko zabawa w postaci budowy menu, wyświetlanie jak to wygląda i działa w praktyce. Wcześniej były prace nad obsługą klawiszy, bo było sporo problemów i na LCD było widać że dzieje się źle.. w postaci wychodzenia poza tablice w tempie ekspresowym.

Albo plotę głupoty bo czas spać, albo to prawda...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2014, o 08:42 
Offline
Moderator
Avatar użytkownika

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

janobarman napisał(a):
2) Czy odczyt z pamięci RAM i wyświetlenie, mógł nadpisać sygnatury uC?


Skąd takie pomysły żeby jakieś operacje w procku i to na pamięci RAM mogły nadpisać sygnaturę ? :( Żadne operacje czy to zapisu/odczytu Flash czy EEPROM z poziomu procka nigdy nie ruszą sygnatury

Te błędy o których piszesz moim zdaniem (choć wiadomo że mogę się mylić) pochodzą dokładnie od tego o czym pisał kolega wojtek - od połączeń na tych stykówkach ....

janobarman napisał(a):
Strasznie wątpię żeby coś poluzowało się...


I to zwykle nas gubi - gdy strasznie wątpimy że coś się poluzowało .... na takim pająku luzów możesz mieć setki niestety

i wcale nie jest wyjaśnieniem tego że nowy procek nagle działa a stary nie .... dlaczego ?

Ano dlatego - że jeśli już, spodziewać się w ogóle NADPISANIA sygnatury to w procesie jakiegoś błędnego / zaburzonego procesu programowania .... Czyli masz np kiepskie połączenia - coś tam ledwo styka - a ty puszczasz programowanie procka ... za którymś razem coś "strzela" czyli np dostaje w łeb sygnatura (w co i tak nie chce mi się wierzyć ale jak już to tylko przy takiej okazji może się coś takiego stać) ....

... wtedy wkładasz nowy procek - dociskasz kable i nagle ... O! ... z tym wszystko działa - no i lecą dalej już wnioski typu:

- "na pewno miałem uszkodzony procek"
- "wszystkie połączenia na stykówce mam super"

itp itd .... nie mówię tego żeby broń boże ciebie tu krytykować - tylko opowiedzieć o własnych też doświadczeniach i o tym jak np ja ale też wiele innych osób do tego podchodzi ... wtedy jest łatwiej dalej programować procki i spokojniej

bo jak ja coś robię na stykówce a COKOLWIEK mi nie działa - to NIGDY podkreślam NIGDY nie jestem pewien czy wszystko dobrze styka - i szukanie błędów ograniczam tylko do tego ....

zamiast myśleć o uszkodzonych prockach z fabryki - bo tym sposobem to bym ubijał co najmniej jednego na miesią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: 22 kwi 2014, o 09:50 
Offline
Nowy

Dołączył(a): 31 lip 2013
Posty: 9
Pomógł: 0

Mirku ja jestem po nocce czas spać... wiem to... to co pisałem (uwierz mi że jak to pisałem nie wierzyłem w to co pisze bo rozsądek i wiedza mówiły bredzisz człowieku), tak więc w stanę "potem" sprawdzę jeszcze raz, i jak dalej nic to nakręce krótki film i wrzucę.

Pająk, pająkiem, ale używam jumperki do stykówek i nic a nic się nie rusza... Jedynie co na kablu to D4-D7 z LCD i 3 switche... Cała góra nie używana.

...
EDIT:
W trakcie pisania postu odszedłem od komputera. I tak parę razy przerzucam te ATmegi... dalej ten sam efekt. Sprawdzam dociskam jumperki, kabelki przełączam i nic...wciąż.

...
EDIT 2:
Już miałem kręcić film, ale postanowiłem zrobić jeszcze jeden test. Linijką wygiąłem na zewnątrz piny uC potem dostosowywałem na max szerokość w stykówce.
Efekt?
OŻYŁ...

.... szkoda że precyzyjna podstawka poszła się ... wyłamałem 2 piny z nerwów podczas wyciągania za którymś razem. To ciekawe ten procek leżał w tej stykówce ponad pół roku. Nie ruszany cały czas od tygodnia (po nowych zmianach, tylko poprawki) i takie cyrki... Mogę iść spokojnie spać. Dobrze że moje brednie okazały się bzdurą. Ja naprawdę w to nie chciałem wierzyć, ale dociekliwość, trochu wiedzy i zdrowy rozsądek jednak wygrały. Mogę dalej się bawić ;)

Ja się nie obrażam Mirek więc looz, rozumiem że może podczas programowania uC coś się zepsuć ale staram sie stosować sprawdzone i użyteczne sposoby/sprzęty/rozwiązania więc wykluczyłem by twój programatorek coś zepsuł, tylko motyw się zaczął w czasie pracy. Widziałem co robię, czego używam i jak używam więc tylko po głowie chodziły myśli pod tytułem "czy ja zwariowałem czy właśnie niedozwolone rzeczy pt. "Chodzenie wczesniej poza tablicą" miało wpływ na to. Nie wychodziłem o 1 czy 2 indeksy, ale w pewnym momencie(podczas pracy nad biblioteką klawiszy) coś się działo niespodziewanego, wychodził poza tablice i szalał po "śmieciach pamięci" w trybie ekspresowym. Ale jak to głośno mówiłem, przecież ja robię tylko odczyt więc jak?! Poza tym to RAM ulotna w dodatku mała pamięć po 40 minutach na uC już nie powinno nic zostać, wszak PC'twskim RAM'ie nawet po 15 minutach od wyjęcia można ładnie zobaczyć co się dzieje a około godziny już dużo gorzej ale tam się liczy w GB nie KB.

WNIOSEK:
Układ może być cacy, kabelki też! Jumperki też! ale same nóżki mikrokontrolera od długotrwałego przebywania w gnieździe mogą się poluźnić.... -_- (are you fckin kidding me...)
Najbardziej "stabilna" w podłączeniach rzecz, stała się moją zgubą.

TEMAT uważam za zamknięty. Dzięki Mirek za otrzeźwienie. Za stary jestem by myśleć o ubitych prockach z fabryki ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2014, o 10:21 

Pomógł: 0

janobarman napisał(a):
To ciekawe ten procek leżał w tej stykówce ponad pół roku. Nie ruszany cały czas od tygodnia (po nowych zmianach, tylko poprawki) i takie cyrki

Mówiłem, że w najmniej spodziewanym momencie ;)
Moje doświadczenia również mi mówią, ze na nielutowanych połączeniach układów uruchomieniowych prędzej czy później dochodzi do takich problemów - więc witaj w klubie ;) .



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 23 kwi 2014, o 22:38 
Offline
Nowy

Dołączył(a): 31 lip 2013
Posty: 9
Pomógł: 0

Temat wraca jak bumerang.

"Stara" ATmega odmówiła posłuszeństwa znowu. Przy pierwszym wgrywnaiu wsadu marudziła, podczas drugiego wgrywania wsadu od razu zapełnił się kwadratami na LCD'ku. Nowa ATmega rusza z kopyta, wsad też bez problemu hula.
Złożyłem na nowej stykówce szybki układ tylko do sprawdzenia odczytu uC, starej nie chce czytać, nowa jest odczytywana z kopyta, sprawdziłem miernikiem na zasadzie wpinania po kolei jumpera w każdy otwór czy piny uC łączą się z płytką, a miernik piszczy aż miło dla starej kostki.

Może marudzę, w sprawach elektroniki jestem pedantyczny jak na swoją skromną wiedzę w tej dziedzinie i robię jak "książka mówi" i nigdy nie było problemów. Ba nawet wszystko wiecznie leży na matach antystatycznych i problemów 0.

Jakieś pomysły? Terapia szokowa? Delikatne odginanie nóżek sztywna linijką nie działa, wyczyszczenie pinów w "kontakcie" też...
Ogólnie dziwna sprawa ja rozumiem styki i częste ruszanie może coś nie stykać, ale nawet testowo na nowej płytce nie chodzi to jest dziwne wręcz.

Pytanie specjalnie do Mirka:
1) Dlaczego programator "zawiesił się" na lini MISO, w sensie czerwona diodka się długo swego czasu świeciła dopóki nie odłączyłem z zasilania (podczas próby wgrania wsadu chyba), mimo że AVR dude odmówił posłuszeństwa, MKAvr Calculator jest niezależny więc się nie wyłożył. Nie neguje programatorka, bo pewnie się zwiesił gdy mikrokontroler odmówił posłuszeństwa w trakcie wgrywania, taki mam domysł tego. Co ty sądzisz o tym.



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: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO