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



Teraz jest 24 lut 2025, o 21:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 9 sty 2016, o 12:24 
Offline
Użytkownik

Dołączył(a): 29 maja 2013
Posty: 33
Pomógł: 0

Czy przy braku opornika przy pinie RESET do VCC, przy zbyt dużej wartości potencjometru czyli zbyt dużych zakłóceniach mógł ulec uszkodzeniu przetwornik ADC lub coś innego w Atmedze 16? I jak to można sprawdzić?

Od kilku dobrych lat noszę się z zamiarem zmajstrowaniem własnego joysticka na platformie MJoy16, który bazuje na procesorze Atmega16.
Płytkę na podstawie schematów już przygotowałem. Wsad wgrałem i tak "na surowo" (jeszcze bez przycisków, zasilania osi, miałem tylko zasilanie procesora i komunikację USB) podłączyłem do PC. No wszystko w miarę działało. Osie (na przetworniku ADC) tylko wariowały, bo do masy nie były jeszcze zwarte, więc tam spore zakłócenia były, ale po dotknięciu się uziemiały.

Więc do rzeczy:
Zrobiłem w końcu zasilanie dla osi i podpiąłem jeden potencjometr 200k. Reszty osi jeszcze nie uziemiłem. Gdy kręciłem potencjometrem jedna oś działała prawidłowo, reszta osi jakby podążała za nią.
Potem podłączyłem drugi potencjometr 200k i uziemiłem resztę. Tu zaczęły się kłopoty: te dwie podłączone osie nie działały prawidłowo, były jakby od siebie zależne.
Podłączyłem trzeci potencjometr 200k: żadna z podłączonych osi już nie działała prawidłowo.
Dopiero wtedy się dowiedziałem, że zrobiłem duży błąd korzystając z rady pewnej osoby "im większy potencjometr tym lepiej" :evil: Okazało się, że 200k to dużo za dużo. Według instrukcji (którą przeczytałem zgodnie z powiedzeniem "gdy wszystko inne zawodzi- przeczytaj instrukcję" :D ) powinienem podłączyć 10-100k i najlepiej bliżej dolnej granicy. Przy ponad 100k pojawiają się spore zakłócenia. Wziąłem te potencjometry i podłączyłem jeden 10k, ale już nie pokazywał prawidłowych wartości, tak jakby się zepsuł. Potem przypomniałem sobie, że przy lutowaniu płytki mi czegoś brakowało: ktoś zapomniał na schemacie o rezystorze przy pinie RESET do VCC :shock: Dołożyłem ten potencjometr, ale to nic nie dało.

Potem gdy go odłączałem i podłączałem do PC ponownie było tylko gorzej: cały układ się po 3 sekundach zamrażał, potem dotknięcie palcem nieuziemionych osi nie powodowało "zamknięcia" ich do zera tylko otwarcia do maksa, a jeszcze później zakłócenia z osi przeszły na wejścia cyfrowe: klawisze zwariowały, tak jakbym je włączał i wyłączał.

Po ponownym wgraniu wsadu nieuziemione osie już nie wariowały tylko przyjmowały losowe wartości i powoli "szły" do zera, po 3 sekundach zamrożenie.
Po uziemieniu osi wszystkie są od początku na zerze, z wyjątkiem jednej osi, która jest na około 60% wartości.

Więc powtórzę moje pytanie:
Czy przy braku opornika przy pinie RESET do VCC, przy zbyt dużej wartości potencjometru czyli zbyt dużych zakłóceniach mógł ulec uszkodzeniu przetwornik ADC lub coś innego w Atmedze 16? I jak to można sprawdzić?

Schemat w Eaglu, z którego korzystałem i wsad (nie mam pojęcia w jakim języku, w Eclipse go nie otworzyłem) w załączniku.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2016, o 15:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
kanaron napisał(a):
Osie (na przetworniku ADC) tylko wariowały, bo do masy nie były jeszcze zwarte, więc tam spore zakłócenia były, ale po dotknięciu się uziemiały.

...troszkę powiało grozą :), ale do rzeczy: nie spotkałem się z zepsuciem uC przez brak rez.RESET - co najwyżej może się resetować w dowolnych momentach. Ja proponuję zacząć uruchamiać od początku, tylko etapami. Najpierw "testowo" wgraj jakiś program migający LED'em - sprawdzisz czy uC jeszcze trochę żyje. Następnie poszczególne nieużywane potencjometry wyłącz z kompilacji a sprawdzaj te/ten podłączony. Nie bardzo rozumiem stwierdzenia:
kanaron napisał(a):
...ale po dotknięciu się uziemiały ... Reszty osi jeszcze nie uziemiłem ...Potem podłączyłem drugi potencjometr 200k i uziemiłem resztę. ...cały układ się po 3 sekundach zamrażał ... nieuziemione osie już nie wariowały

Wiem że emocje, ale zrób jak sugerowałem: wszystko po kolei, bo czytając Twoja opisówkę masz troszkę luźne podejście do prawidłowych podłączeń el. zew ( a nawiasem mówiąc dotykając paluchem nie uziemiasz tylko plujesz mu sieczkę - dawniejsze układy cyfrowe dawno byś tym zabił ;) )

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2016, o 18:54 
Offline
Użytkownik

Dołączył(a): 29 maja 2013
Posty: 33
Pomógł: 0

Oj, się rozpisałem, ale tego się nie da napisać krócej :D

Po kilkugodzinnej walce z zainstalowaniem wszystkiego (zawsze tak miałem, a akurat jestem świeżo po formacie) stwierdzam, że coś mi nie gra: nie mogę wgrać wsadu przez Eclipse. Pisze, że ten procesor nie jest obsługiwany przez AVRDude. W sumie z tego co widzę to żaden nie jest. Coś pewnie źle zrobiłem.

Ale spróbowałem wgrać przez mkAVRCalc. i... nie mogę znaleźć pliku .hex. Jest tylko zwykły plik. Ale zmieniłem mu nazwę na test.hex i już dało się wgrać.

Ale... dioda nie miga. Więc albo taka zmiana nazwy nic nie daje, albo procesor jest kaput.

Jeśli chodzi o kod:
Kod:
#include<avr/io.h>
#include<until/dealy.h>

int main (void)
{

   DDRB |= (1<<PB0);
   
   while(1)
   {
      PORTB ^= (1<<PB0);
      _delay_ms(1000);
   }

}


Najprostszy z możliwych.

Po wgraniu wsadu i wykonaniu odczytu z pamięci procesora pojawia mi się tylko:
Kod:
:00000001FF


To dobrze? Jeśli nie to prosiłbym o gotowy plik .hex z kodem powyżej.

A jeśli miałbym przejść dalej to...
Cytuj:
Następnie poszczególne nieużywane potencjometry wyłącz z kompilacji a sprawdzaj te/ten podłączony.


Nie bardzo rozumiem. Mam z kodu zakomentować odczyt wejść analogowych dla pozostałych osi? Tego raczej nie będę umiał zrobić, bo kod nie mój. A w Eclipse próbowałem go otworzyć i po tym co zobaczyłem sądzę, że to ani nie C ani nie C++. Nawet nie wiem w czym został napisany. A do "producenta" nie napiszę o pomoc, bo wątpię czy odpisze (najpierw trzeba by go znaleźć), bo ten projekt ma chyba ładnych 10 lat, jak nie więcej. Niewielu z niego jeszcze korzysta, ale do tej pory godnego zastępcy nie stworzono (8 osi analogowych, 96 przycisków na jednej platformie, drugiego takiego nie ma, albo ja nie znam).

Emocje rzeczywiście są. Ja tą płytkę mam już polutowaną od około roku i dopiero teraz się zabrałem za zabawę z osiami i przyciskami. Wszystko ładnie działało, już zacząłem projektować własny domowy kokpit samolotu (dlatego potrzebuję tyle przycisków, ale chyba i tak mi braknie, będę musiał drugi taki joystick zrobić), microswitchy jeszcze nie miałem, zabrałem się więc za osie.
Zrobiłem obudowę dla osi sterowania pracą silników, podłączam te za duże potencjometry i nagle wszystko przestaje działać.
Stwierdzam, że drobna przerwa nie zaszkodzi, w końcu przycisków jeszcze nie ma (a czekałem na nie od października), dzień później (wczoraj) w końcu 100 szt. przycisków przyszło, a mi joystick nie działa.


Cytuj:
...ale po dotknięciu się uziemiały ... Reszty osi jeszcze nie uziemiłem ...Potem podłączyłem drugi potencjometr 200k i uziemiłem resztę. ...cały układ się po 3 sekundach zamrażał ... nieuziemione osie już nie wariowały


Więc tłumaczę:
1. Po dotknięciu palcem osie schodziły do zera, tak jakbym je do GND podłączył. Wydawało mi się, że dotykając nie daję im "sieczki" tylko GND :D

2 i 3. Gdy podłączyłem pierwszy z potencjometrów to jeszcze zostawiłem resztę osi tak jak była. Czyli bez GND. Wtedy kręcąc potencjometrem reszta osi przyjmowała wartości podobne. Już nie wariowały w sposób bliżej niekontrolowany. A po podłączeniu drugiego potencjometru zwarłem resztę osi do masy. Tylko, że te dwa podłączone potencjometry nie działały prawidłowo. Przykładowo jeden z nich skręciłem do GND, drugi do +5V. Obie osie wtedy jakby zwariowały i przyjmowały raz wartości dla GND raz dla +5V. Podejrzewam duże zakłócenia z powodu użycia za dużego potencjometru.

4. Potem podłączyłem jeden potencjometr 10k (czyli odpowiedni) i resztę osi zwarłem do masy. Ale już joystick nie chciał prawidłowo działać. Stąd wywnioskowałem, że procesor się uszkodził, bo skoro coś działa, a po takich zakłóceniach już nie działa to nie potrafiłem znaleźć innego wytłumaczenia. Te nieprawidłowe działanie objawiało się tym, że oś podłączona nie reagowała prawidłowo. Miała zakłócenia i to duże. Po odłączeniu wszystkich osi od masy wartości chwilę wariowały, na dotyk reagowały jakbym je do +5V podłączył, a po 3 sekundach zamrażały się w takiej pozycji w jakiej były. Klawisze też nie działały. Trzeba było odłączyć od USB i podłączyć ponownie. I tak w kółko: podłączam, osie wariują, 3 sekundy, zamrożenie, odłączenie.
Do czasu aż po podłączeniu osie były stabilne. Na dotyk różnie reagowały. Ale tym razem wejścia cyfrowe (przyciski) powariowały. Oznaczenia 32 przycisków (w menedżerze kontrolerów gier) migały w sposób niekontrolowany. 3 sekundy później: zamrożenie.
Po kilku restartach znów przyciski były spokojne. Ale...

5. ...osie nie wariowały. Na dotyk nie reagowały. Na początku przyjmowały tylko losową wartość i powoli ta wartość schodziła do GND. Oczywiście po 3 sekundach zamrożenie.
I teraz jestem na tym etapie.


A co do luźnego podejścia do podłączeń... Chyba będzie lepiej jak zaniecham pierwotnego planu wrzucenia zdjęć głównej płytki :D Od spodu, gdzie są luty, wszystko wygląda ładnie, ale z drugiej strony... :roll: 104 kable na 15cm^2 A ja się i tak w tym jeszcze odnajduję :D To oczywiście nie jest przyczyną moich problemów, to kable przygotowane do przejścia z wszystkimi przyciskami na drugą płytkę, bo na głównej by mi się nie zmieściły. A tak w ogóle to te kable nie mają prawa robić problemów, bo nie są nawet podłączone do procesora, są na razie luźno na płytce i czekają na przyciski, które przyszły wczoraj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2016, o 21:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Z tego co pokazało GOOGLE to oficjalnej strony już nie ma, ale są fora dot. tych sterowników. Może jakbyś nawiązał kontakt z którymś z nich to by Ci wgrał gotowy wsad do M16 ( od razu sprawdzając u siebie czy jest OK ). Nic innego nie przychodzi mi do głowy, tylko najpierw musisz "odgruzować" swoją płytkę. Po wyjęciu uC sprawdź czy na poszcz. PIN'ach wejściowych ADC masz zmianę napięcia przy obrotach pot. Troszkę dziwnie ( nie mówię że źle ) narysowane są gniazda pot.ponieważ z reguły ślizgacz "podłącza" się do środkowego kołka - wtedy jest to jednoznaczne. Tak nawiasem mówiąc, sprawdź jak Ty to podłączyłeś.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 12:36 
Offline
Użytkownik

Dołączył(a): 29 maja 2013
Posty: 33
Pomógł: 0

Są takie "trochę oficjalne" strony. Między innymi tego kto zaprojektował ten schemat i płytkę co dałem w pierwszym poście. Z oficjalnego MJoy16 pozostała już chyba tylko instrukcja i wsady. Więc nikt mi z wsadami nie pomoże. Wszyscy mają ten sam oficjalny wsad i nikt w niego nie ingeruje.

Na jednym forum (zajmującym się po części MJoy16) już pisałem odnośnie moich kłopotów i po wypróbowaniu tego co mi doradzili przyszedłem tu, bo tam nie są w stanie mi powiedzieć, czy uC jeszcze żyje. Wcześniej mi doradzali:
-wgrać wsad ponownie, nie pomogło
-dać mniejszy potencjometr, nie pomogło
-krótszy i lepszy kabel USB, szczerze wątpię czy pomoże. Ostatni rok działało na moim kablu (cieniutkie kabelki długości 50cm) a teraz nagle przestałoby działać przez taki sam kabel?

A to co wcześniej zrobiłem (te miganie diodą) to jest dobrze zrobione? Bo nadal nie wiem czy uC żyje. Albo mam zły .hex, bo jeszcze mam problemy z AVRDude pod Eclipse (to bardzo bym prosił o gotowy wsad), albo procesor już nie zamiga.

Nie bardzo rozumiem:
Cytuj:
tylko najpierw musisz "odgruzować" swoją płytkę. Po wyjęciu uC sprawdź czy na poszcz. PIN'ach wejściowych ADC masz zmianę napięcia przy obrotach pot.

W jakim sensie "odgruzować"?
Po wyjęciu uC coś sprawdzić? Chyba raczej na płytce przy podpiętym układzie do PC mam kręcić i sprawdzić napięcie.


Cytuj:
Troszkę dziwnie ( nie mówię że źle ) narysowane są gniazda pot.ponieważ z reguły ślizgacz "podłącza" się do środkowego kołka - wtedy jest to jednoznaczne. Tak nawiasem mówiąc, sprawdź jak Ty to podłączyłeś.

Ten etap mam już za sobą :D Tak, na schemacie nie jest prawidłowo pot. podłączony, ale ja go podłączyłem poprawnie (skrajne to GND i +5V, sygnał- środkowy). Gdy go podłączyłem tak jak na schemacie był (też myślałem, że chyba coś źle robię) to mi się potencjometr spalił.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 13:10 
Offline
Użytkownik
Avatar użytkownika

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

Cytuj:
A to co wcześniej zrobiłem (te miganie diodą) to jest dobrze zrobione?
Proponuje obejrzyj sobie poradniki Mirka. Tak znajdziesz szybko informację jak zrobić prosty program migajacy diodami oraz korzystający z przetwornika ADC. Dzięki im wiele się nauczysz a przy okazji sprawdzisz swój procesor.

https://www.youtube.com/watch?v=LiQcVSPkT6M&list=PLtXXWLsA5QNg4iyOS5by5ZZT3SFUBMvr7
https://www.youtube.com/watch?v=tlkCOv1Ixt0&list=PLtXXWLsA5QNi_R9uDXpHRpo5hRnig_f23

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 13:23 
Offline
Użytkownik

Dołączył(a): 29 maja 2013
Posty: 33
Pomógł: 0

Dokładnie z pierwszego poradnika korzystałem przy pisaniu tego programu. Napisałem go dokładnie tak samo, tylko nie na PB0 a na PB1. Musiałem skorzystać z poradnika, bo przyznaję, że po 3 latach przerwy od C na AVR (i pisaniu tylko w C++ normalnych programów i w C# skryptów do gry) sporo mi wyleciało z głowy.

Widzę, że przegapiłem kilka nowych poradników o nowym Eclipse. Spróbuję zrobić wszystko od nowa.

EDIT: Wgrałem wsad, dioda miga. Spróbuję jeszcze sprawdzić przetwornik ADC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 17:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
kanaron napisał(a):
W jakim sensie "odgruzować"?
Po wyjęciu uC coś sprawdzić?

Wiesz, ja zawsze piszę z pozycji "ja bym zrobił tak" a nie "musisz ...."
Więc wyjmij uC i tak jak opisywałem na PIN'ach PA0...7 sprawdź czy masz zmiany napięcia przy kręceniu potencjometrami - tylko pot. mają być "uziemione" ;) . Krótko mówiąc podepnij wszystko tak jak ma być tylko bez uC. Przy wyłączonym zasilaniu przemierz/posprawdzaj połączenia wszystkich mas, przy włączonym zas. - poziomy napięć zasilających; słowem schemacik w łapki i sprawdzać. Tam gdzie ma być sztywne 5V takie ma być, tam gdzie potencjometry - ma się zmieniać od 0 do Vcc.
Możesz też jako punkt odniesienia przyjąć Vcc i mierzyć w kilku miejscach "masowych"
kanaron napisał(a):
Ostatni rok działało na moim kablu...

tzn. działało i się popsuło czy piszesz o czymś innym, bo wcześniej pisałeś że zamierzasz uruchomić.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 20:55 
Offline
Użytkownik

Dołączył(a): 29 maja 2013
Posty: 33
Pomógł: 0

Więc, sprawdziłem wszystkie połączenia: są dobre, masa jest tam gdzie ma być. Przy zasilaniu też wszędzie jest prawidłowe napięcie 4,97V.

Tam gdzie potencjometry posprawdzałem wszystko. Znalazłem w jednej osi mały problem: źle zlutowany pin.

Sprawdziłem zmiany napięć na potencjometrach: są prawidłowe. Przy okazji jeden potencjometr mi się dość mocno zadymił.


Piszę o tym samym. Płytkę miałem od roku, ale bez osi i przycisków, więc praktycznie nie była uruchomiona, ale zasilanie i komunikację miałem, więc czasem podpinałem do PC i patrzałem jak te osie chodzą, jak przyciski się włączają (symulowałem przycisk przez kabel).
A teraz nie działa, przestał działać po podłączeniu tych potencjometrów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 21:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

kanaron napisał(a):
Przy okazji jeden potencjometr mi się dość mocno zadymił.

...albo miałeś źle podłączony - ślizgacz na zewnątrz zwarłeś nim zasilanie, albo PIN "robił" za wyjście a ty podałeś mu inny stan niż był na nim ustawiony ( to drugie to moje gdybanie, bo nie czy ATm. wydoliła by prądowo - na tym polu nie mam doświadczenia; nigdy tak nie testowałem ). Masz jakąś płytkę uruchomieniową/stykową i wyświetlacz aby programowo posprawdzać poszcz. wejścia ADC?
Trzeba by było napisać prosty program do pomiaru napięcia i sprawdzać jak reaguje. Trudno doradzić tak: kup nową ATm. zaprogramuj i sprawdź bo jak będzie to samo? Albo możesz napisać program nie do pomiaru i wyświetlania tylko jako wskaźnik działania, w warunku sprawdzającym np.:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W połowie położenia pot. będzie gasło/zaświecało LED'a ( wiadomo x i n to Twoje porty debag.)

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 22:56 
Offline
Użytkownik

Dołączył(a): 29 maja 2013
Posty: 33
Pomógł: 0

Przy mierzeniu napięcia pewnie przypadkiem zwarłem ślizgacz do +5V.

Wyświetlacz i stykówkę mam. Jutro coś spróbuję.

Sprawdziłem ponownie wszystkie podłączenia no i... wszystko jest dobrze. Masa wszędzie jest, napięcie dobre jest, połączenia są, zwarcia nie ma, a mimo to nie działa. Dodatkowo zauważyłem, że gdy podpinam MJoy do PC i nie mam włączonego menedżera kontrolerów gier (czy jak to się tam nazywa, to gdzie widać osie) to chyba zamraża się od razu. Wszystkie osie (nawet te zwarte do masy) są otwarte na 60%. No po mojemu to musi być coś z uC. Sprawdziłem już chyba wszystko.

Jutro najprawdopodobniej pojadę do sklepu i kupię ATmegę 16, w końcu nie jest znowu taka droga.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2016, o 20:27 
Offline
Użytkownik

Dołączył(a): 29 maja 2013
Posty: 33
Pomógł: 0

O kurczę... To nie był procesor... Chyba siądę, zmajstruję komunikację i zasilanie na stykówce i zobaczę.



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 0 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