Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Układ rejestratora - AT MEGA16 zawiesza się

04 Cze 2006 20:00 1572 10
  • Poziom 15  
    witam

    Mam taki problem, buduje układ rejestratora zapadów napięcia. Układ wygląda tak dzielnik rezystancyjny potem AD736 true rms i przetwornik A/D ADS7828 on komunikuje się z AT MEGA16 a ten zebrane dane zapisuje na kartę MMC w trybie SPI. Wszystko ładnie działało do tej pory. W związku z tym że masa tego układu nie jest rozdzielona pomiędzy częścią cyfrową i analogową może zdarzyć się że jest na potencjale przewodu fazowego, w niczym to nie przeszkadza, tylko powoduje że część analogową na czas programowania musze odłączać jest na innej płytce nie ma problemów. Robiłem ostatnie poprawki i coś przestał chodzić uK to myślę spróbuje go ruszyć programatorem, podłączyłem a tu zwarcie i zgasło wszystko, ale bezpiecznik zadziałał, padł uK ale nie wiem czy nie był wcześniej już padnięty, padł ADS7828 i padł 74LS244 w programatorze ale w kompie port działa poprawnie. Wymieniłem te układy wgrałem już sprawdzony soft i niby wszystko chodzi do póki uK nie przejdzie do obsługi MMC, inicjuje poprawnie a potem pochodzi chwile i się zawiesza uK. nie dział na przyciski a na wyświetlaczu RTC staje. Wymieniłem kondensator 100n przy uK dodałem taki przy MMC i zwiększyłem 5 krotnie kondensator filtrujący napięcie zasilające i wejście RESET podciagnołem do masy rezystorem 4,7k i nic dalej się zawiesza. Zauważyłem tylko to że jak układ postoi nie włączany 2 godz. to potem potrafi nawet minutę poprawnie chodzić nie zawiesza się ale jak tylko zakończę rejestrować i chce aby przesłał zebrane dane do kompa to w chwili wyboru z menu tej funkcji wiesza się. Nie wiem co to może być podejrzewam AT MEGE16 ale nie mam na podmianę. Ktoś spotkał się z wieszającym się tak uk? Dodam że karta MMC działa w aparacie cyfrowym dobrze i nie stwarzała problemów.
  • Poziom 35  
    Jeżeli program działał poprzednio a teraz nie może ma problem z komunikaca z kartą proponuje podmienić kartę na inna jak nie da to efektu czepił bym sie megi . No może jeszcze kwarca jesli nie był wymieniony .

  • Poziom 14  
    To tylko pogratulować pomysłu z podłączaniem sprzętu bezpośrednio do 230V~ bez separacji galwanicznej. Przecież masa w kompie jest połączona do przewodu ochronnego, a w takim przypadku o zwarcie nie trudno.
    Jak możesz to podaj w którym dokładnie miejscu się "zawiesza". I czy faktycznie przestaje działać rdzeń procka, czy też w programie czekasz na coś (np. na odpowiedź z karty).
  • Poziom 15  
    To był mój błąd, ja o tym wszystkim wiem, poprostu się zapomniałem, łącze RS232 ma separacje galwaniczną i działa bardzo dobrze, tylko na czas programowania odłączałem płytkę toru pomiarowego i ten jeden feralny ostatni raz zapomniałem o tym. Wymieniłem kwarc nie pomogło, przełączyłem na wewnętrzny generator RC też nie pomogło. Doczytałem w nocie katalogowej AT MEGI że kondensatory przy kwarcu mają mieć od 12p do 22p u mnie są 33p ale wcześniejszym uK chodził dobrze. Zdiagnozowałem kiedy zatrzymuje się uK podczas wysyłania komendy do karty MMC. Cała komenda skłąda się z 6 bajtów, wysyła 1 potem 2 czasami jeszcze 3 bajt i staje. To znaczy staje podczas wysyłania bajtu na SPI (oczywiście sprzętowy co widać dalej). Do wysyłania na SPI używam takiej funkcji:

    Function Spi_swap(_bajt As Byte) As Byte
    Spdr = _bajt
    Cls
    Lcd "wait"
    Gosub _spi_wait
    Lcd " ok"
    Spi_swap = Spdr

    End Function

    _spi_wait: 'czekaj aż transmisja SPI zakończy się
    sbis SPSR,SPIF
    rjmp _spi_Wait
    Return

    dodałem tylko ten LCD żeby sprawdzić czy przypadkiem nie zatrzymuje się w petli na czekanie na bit SPIF, no i widze że od kilku minut chodzi i wszystko ok jest, ale bez tego nie chce. Ale tak nie może zostać z tak dużym opóźnieniem bo w tym przypadku zalezy na czasie, próbkowanie napiecia odbywa się co 10ms i co ok. 0,5s mam cały blok 512 bajtów do zapisu i musze to wysłąć na karte żeby za chwile znowu odbierać próbki.
    No cuda się dzieją jutro kupie nowego AT MEGE i podmnienie, ten był z Allegro może jakiś trefny, był programowany do tej pory może ze 20 razy, tamten co poleciał miał na swoim koncie już 2000 przeprogramowań.

    Do tej pory na starym procku chodziło wszystko git, nawet zrobiłem część pomiarów do pracy.

  • Poziom 14  
    A co się dzieje, jak odłączysz kartę MMC i nie użyjesz wyświetlacza? Masz tam jakieś procedury, które komunikują się z kartą w dwie strony, czy tylko zapisujesz?
  • Poziom 15  
    Na odłączonej karcie wszystko działa prawidłowo i nie wiesza się, prawidłowo mierzy napięcie. Ten rejestrator ma taki tryb pracy że wysyła wartość zmierzonego napiecia na port szeregowy i wszystko działa prawidłowo. Jedynie jak włożona jest karta i dokonywana jest jaka kolwiek operacja na karcie to zawiesza się. Przeważnie inicjacja idzie prawidłowo, czasami tylko potrafi nie zinicjować karty ale to naprawde rzadko. Co zauważyłem to jak postoi tak z godzinke nie włączany to potrafi z minute pochodzić prawidłowo i dopiero po tym czasie zawiesza się. A po resecie wybieram z menu opcje start rejestracji dokonuje próby zapisu pierwszego bloku danych i koniec. Acha jescze na początku po tym zdarzeniu miałem coś takiego. Wejście układu pomiarowego jest dołaczone do przełącznika dwusekcyjnego dwupozycyjnego. Jedna pozycja to jest pomiar napięcia z kabla zasilającego rejestrator, a druga to pomiar napięcia dołączonego do zewętrznych zacisków. Te zaciski nie są do niczego podłączone czyli na nich 0. Było tak że jak przełącznik był na pozycji zaciski zewnętrzne to układ chodził bez karty zupełnie ok, ale w chwili przełaczania momentalnie się wieszał, nie wiem może jakieś przepięcia się dostawały do napiecia zasilającego i dlatego, wiec zaczołem wymieniać kondensatory, kwarc i to pomogło teraz się nie wiesza przy tym przełączaniu, ale karta dalej nie chodzi jak dawniej. Nie wymieniłem kondensatorów 100n od zasialnia na płytce toru pomiarowego. To dopiero jutro bo mi się skończyły dodam jeszcze kilka sztuk ekstra w różnych miejscach no i wymienie AT MEGE, zobaczymy narazie dziekuje za zainteresownie i pomoc.
  • Poziom 13  
    Witaj.
    Może pokaż schemat jak podłączyłeś mege i kartę.

    POZDRAWIAM
  • Poziom 15  
    Witam Podłaczone to jest przez dzielniki rezystancyjne, a karta zailana jest przez 3 diody 1N41148 z napiecia 5V. To tej pory to łacze sprawowało się świetnie, teraz wymieniłem te diody dodałem za nimi rezystor 4,7k równolegle do zasialnia karty i kondensator 100n. Cały czas znajduje to coraz to nowsze efekty tego "zapomnienia". A czy można karte MMC zepsuć programowo, wiem że jest bit którym można ją definitywnie zablokować przed zapisem, ale czy można w jakiś inny sposób. Bo wcześniej jak nie wyjąłem karty to programtor STK200 wogóle nie czytał sygantury, a teraz coś tam czyta i karta potrafi ruszyć przy dołączonym programatorze, nie mam niestety innej karty na podmiane.

  • Poziom 14  
    Jeśli używasz SPI do komunikacji z kartą, to masz też podłączony pod ten sam interfejs (lub po polsku "międzymordzie") programator. Z tego co piszesz, to "zapomnienie" polegało na podłączeniu programatora bez separacji galwanicznej, czyli przepięcie poszło dokładnie po SPI. Zatem mogło zdarzyć się tak, że masz uszkodzoną kartę.
  • Poziom 15  
    Ale karta śmiga w aparcie rewelacja, nawet zapisałem aparatem film na całej karcie i gra. Mam nowego AT MEGE jutro podmienie i zobaczymy.
  • Poziom 15  
    Podmineiłem AT MEGE zbieg okoliczności czy co ale identyczna sztuka i seria, ale polepszyło się teraz śmiga wszystko tylko w trakcie odczytu się zawiesza, a dokładnie w trakcie wysyłanie komendy do odczytu. Odczyta 2 czasami 3 bloki potem dostaje komende odczytu kolejnego bloku i po wysłaniu 2,3, czasmi 5 bajtów komendy zawiesza się i klapa, musze kupic drugą MMC to bede wiedział co i jak. Próbowałem z różnymi numerami bloków.

    Pozdr