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

ATMEGA32 generator przebiegu prostokątnego

ZiutekH 05 Wrz 2009 13:21 3032 6
  • #1 05 Wrz 2009 13:21
    ZiutekH
    Poziom 10  

    Witam,

    Uruchomiłem mikrokontroler ATMEGA32 i dla sprawdzenia działania napisałem prosty programik generatora impulsów 2ms.

    Przebieg oglądany na oscyloskopie jest taki jak na rysunku.

    Zbocze opadające trwa przez ponad 1ms.
    Przy generatorze o większej częstotliwości nie schodzi do zera.
    Wygląda to na jakąś pojemność, ale jest to obudowa SMD przylutowana na malutkiej
    uniwersalnej płytce z cieniutkimi ścieżkami.
    Płytka ta nie jest do niczego podpięta, co mogłoby dodawać dodatkowe pojemności.
    Zasilanie i wyjście do oscyloskopu jest podpięte bezpośrednio do płytki złączem PIN.

    Co Waszym zdaniem może być powodem

    ATMEGA32 generator przebiegu prostokątnego

    0 6
  • #2 05 Wrz 2009 18:50
    janbernat
    Poziom 38  

    To wygląda jak układ "sample & hold"
    Kiepsko zaprojektowany.
    Szybko się ładuje i dość szybko się rozładowuje.
    To może być tak:
    Ustawiamy pin jako wyjście - kondensator szybko się ładuje przez górny tranzystor.
    Potem może być na kilka sposobów:
    1.Ustawiamy pin jako wejście o wysokiej impedancji -kondensator nie ma jak szybko się rozładować.
    2.Ustawiamy pin jako wejście z podciąganiem -stale do kondensatora dopływa prąd z rezystora podciągającego wejście do + zasilania.
    3.Ustawiamy pin jako wyjście w stanie niskim ale zostawiliśmy włączony rezystor podciągający i dolny tranzystor nie jest w stanie go tak szybko rozładować.

    To trzecie to jest chyba czysta spekulacja do obliczenia.
    Kondensator jest w sondzie oscyloskopu.
    Służy do kompensacji.
    W przyzwoitych sondach można nim dostrajać kształt przebiegu.
    Ten kondensator + pojemności pasożytnicze masz "niechcący".
    Na małej płytce też.
    Można tę koncepcję sprawdzić podczepiając między wyjście a masę opornik np. 1k.
    Daj kod dający te ciekawe wyniki - dla potomnych.
    A właściwie nie tyle kod co ustawienia rejestrów we-wy.

    0
  • #3 05 Wrz 2009 19:16
    ZiutekH
    Poziom 10  

    Ten kod to zupełnie najprostszy sposób jaki można sobie wyobrazić w Bascomie.
    Chodziło mi tylko o to aby sprawdzić czy ATMEGA działa:

    Config Pinb.0 = 1 ' port jako wyjście

    Do

    Portb.0 = 0
    Waitms 2
    Portb.0 = 1
    Waitms 2

    Loop
    End

    Na innym ATMEGA8 z kwarcem 8MHz impulsy 1µs mają wzorowy kształt prostokąta.
    Więc nie jest to kwestia sondy i oscyloskopu.
    Czy więc może to być wadliwy mikrokontroler?

    0
  • #4 05 Wrz 2009 20:29
    janbernat
    Poziom 38  

    No nie mam niestety ATMEGA32 na stole.
    Wszystko może być.
    Wadliwy też.
    Ale nie przypuszczam.
    Płytki dla Atmega8 i ATmega32 też muszą być różne.
    No i alternatywne funkcje też.
    Np. pin pb.0 może pełnić w ATMega32 różne funkcje.
    str. 58 data.
    Czyli w zasadzie każdy pin może mieć nieco inną konstrukcję we-wy.
    Mozesz:
    sprawdzić na innym pinie-
    albo dać opornik 1k między pin a masę i sprawdzić.
    Spróbuj

    0
  • #5 06 Wrz 2009 10:24
    GienekS
    Poziom 32  

    Wydajność prądowa portów wyjściowych w obydwie strony jest około 20 mA. Czyli wygląda na to że jednak może to być uszkodzone wyjście procka. Z mojego doświadczenia wynika że AVR-y "tną ostro" na wyjściach i przebieg powinien być czysty. Bez obciążenia na słabym oscyloskopie nie widać nawet zboczy.

    0
  • #6 06 Wrz 2009 16:25
    janbernat
    Poziom 38  

    Wygrzebałem płytkę z atmega32 i wgrałem Twój program.
    Na pinB.0 jako wyjście.
    Nigdy jeszcze nie programowany.
    Zmieniłem tylko fusebity na zewn. kwarc 8MHz.
    Chodzi jak brzytwa.
    Czas opadania 27ns na oscyloskopie TDS210 60MHz.
    Może rzeczywiście procesor uszkodzony?
    No ale mi się jeszcze nigdy nie udało uwalić Atmegi.
    Ale ciągle podejrzewam że Tobie też.
    Mała płytka oznacza małe odległości między ścieżkami.
    A pojemność rośnie odwrotnie proporcjonalnie do odległości.
    A ja mam dużą płytkę i procesor w obudowie DIP.

    0
  • #7 06 Wrz 2009 19:40
    asembler
    Poziom 32  

    A na innych portach jest to samo??

    0