logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega8][C]Wejscia/wyjścia binarne

gVVint 13 Lis 2008 21:08 1468 7
REKLAMA
  • #1 5735520
    gVVint
    Poziom 10  
    Witam

    czy kiedykolwiek miał ktoś problem z kształtem przebiegów wyjściowych portów atmegi8? Mój problem polega na tym że gdy wysyłam dane na oscyloskopie widać wyraźnie że zbocze opadające zachowuje się jak rozładowywany kondensator. Pomiędzy atmegą a układem które te dane ma obrobić nie ma nic a te dziwne przebiegi pojawią się już na wyjsciu uC. nie pomogło przeniesienie wyjścia na inny pin (na port nie próbowałem gdyż trochę by mi to namieszało), wymiana uC na nowy też nie pomogła, podobnie jak szeregowe wpięcie rezystora. Potencjał masy jest ten sam dla całego układu. Jeżeli zajdzie potrzeba mogę zamieścić fragmenty kodu gdzie inicjalizuję rejestry kierunkowe/porty/przerwania.

    Pozdrawiam
  • REKLAMA
  • #2 5735868
    dawid512
    Poziom 32  
    W prawdzie nie posiadam oscyloskopu(a szkoda :( ) ale nie wydaje mi się żebyś uzyskał na wyjściu uc idealny przebieg prostokątny.
  • REKLAMA
  • #3 5736192
    crazy_phisic
    VIP Zasłużony dla elektroda
    gVVint napisał:
    Witam

    czy kiedykolwiek miał ktoś problem z kształtem przebiegów wyjściowych portów atmegi8? Mój problem polega na tym że gdy wysyłam dane na oscyloskopie widać wyraźnie że zbocze opadające zachowuje się jak rozładowywany kondensator. Pomiędzy atmegą a układem które te dane ma obrobić nie ma nic a te dziwne przebiegi pojawią się już na wyjsciu uC. nie pomogło przeniesienie wyjścia na inny pin (na port nie próbowałem gdyż trochę by mi to namieszało), wymiana uC na nowy też nie pomogła, podobnie jak szeregowe wpięcie rezystora. Potencjał masy jest ten sam dla całego układu. Jeżeli zajdzie potrzeba mogę zamieścić fragmenty kodu gdzie inicjalizuję rejestry kierunkowe/porty/przerwania.

    Pozdrawiam


    A obciążyłeś dany pin (np 10k do masy)? Jakiego rzędu czasy rozładowania obserwujesz?
  • REKLAMA
  • #4 5736381
    gVVint
    Poziom 10  
    crazy: tak, to zrobiłem na początku po sprawdzeniu czy mam ten sam potencjał masy na całej płytce i sprawdzeniu lutów - wziąłem na chama przylutowałem rezystor 22k do masy a drugi koniec do wejścia atmegi skąd poprowadziłem kawałkiem drutu sygnał do wejścia do odbiornika - wcześniej sygnał szedł ładnie wytrawioną ścieżką żeby nie było ;) - nic to nie pomogło podobnie jak wspomniany rezystor 100 ohm wpięty szeregowo z linią sygnałową
    co do czasów opadania zbocza to logiczna jedynka wraz ze zboczem narastającym trwa ok 200us przy czym wygląda niemal jak takt zegara bez żadnych odchyłek, zbocze opadające (nie dochodzi do poziomu 0 logicznego) trwa drugie 200us - ładna lewa połówka paraboli - powoduje to błędne analizowanie danych przez odbiornik i w efekcie lipę z miodem :/

    aha - jeżeli odbiornik wysyła coś do atmegi to sygnał jest idealny - brak jakichkolwiek problemów

    Pozdrawiam
  • #5 5736477
    Dr.Vee
    VIP Zasłużony dla elektroda
    Jak już masz rezystor szeregowy, to sprawdź jak wygląda napięcie na tym rezystorze i określ prąd płynący od uC do odbiornika.

    Nie napisałeś co to za odbiornik, ale gdzieś musisz mieć tą pojemność do przeładowania, i to Ci tak zniekształca zbocza. Może uC ma za małą wydajność prądową portów żeby przeładować tą pojemność?

    Pozdrawiam,
    Dr.Vee
  • #6 5736890
    gVVint
    Poziom 10  
    Dr.Vee - odbiornikiem jest CC1000PP, co do wydajności prądowej lub napięć to rzeczywiście trzeba by sprawdzić. A czy może mi ktoś powiedzieć czy tego typu zachowanie może być wynikiem mieszania w rejestrach DDRx/PORTx? Tzn mam na SPI 2 urządzenia: w/w CC1000PP oraz DS3234 z tym że do obslugi CC1000PP wystarczają mi 2 linie po skonfigurowaniu rejestrów DIO i DCLK podpięte do INT1, DS3234 generuje przerwanie na INT0 tak więc nie powinno być konfliktów z danymi - CC1000PP konfiguruje rejestry poprawnie gdyż widać to po wywołaniu zrzutu rejestrów, podobnie ma się do DS3234 - zresztą konstrukcja linii do DS3234 jest oparta na zworkach i już próbowałem oczyścić magistrale SPI z dodatkowych urządzeń i efekt jest ten sam. Dlatego ponawiam pytanie: czy osiągnięcie takich przebiegów może być spowodowane błędną inicjalizacją portów??

    Pozdrawiam
  • REKLAMA
  • #7 5737443
    Szymon Tarnowski
    Poziom 27  
    gVVint napisał:
    Mój problem polega na tym że gdy wysyłam dane na oscyloskopie widać wyraźnie że zbocze opadające zachowuje się jak rozładowywany kondensator.
    Może głupie pytanie, ale czy nie masz zablokowanej składowej stałej w ustawieniach oscyloskopu?
  • #8 5737479
    gVVint
    Poziom 10  
    Szymon T: nic w ustawieniach nie mam zmienionego - przebieg od CC1000PP wygląda tak jak powinien, przesłanie ramki z konfiguracją rejestrów z uC do CC1000PP z innego portu też wygląda poprawnie (mniej lub bardziej - zależy jak sonda jest przyłożona).
REKLAMA