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

Problem z USART przy Hexapodzie

gamgee1 21 Gru 2009 17:38 894 3
REKLAMA
  • #1 7418717
    gamgee1
    Poziom 11  
    Kończę właśnie mojego Hexapoda. Rozbudowuje komunikację pomiędzy dwoma atmega16. Jeden to sterownik serw a drugi oblicza kinematykę i struje wyświetlaczem LCD.
    Otóż problem polega na tym że transmisja jest pełna błędów. Uśredniając to co 5-6 transmisja jest prawidłowa.
    Ustawienia USARTu:
    
    UBRRL=0x33;
    UBRRH=0;     //ustawienie prędkości transmisji dla 9600 bps
    UCSRB=0x98;  //włączenie obsługi przerwań dla odbioru//włączenie odbioru/włączenie nadawania
    UCSRC=0x86;  //tryb pracy asynchronicznej//wyłączenie bitu parzystości//1 bit stopu/8 bitów danych
    SREG|=1<<SREG_I;  //ustawienie flagi I w ESREG 
    

    Próbowałem zmniejszyć prędkość UBR i nic to nie dało, gdzieś wyczytałem żeby dać dwa bity stopu, też nie pomogło. Myślę że coś robi zakłucenia ale nie wiem co.

    Procesor który wysyła mam na płycie testowej z "Gotronik" zasilanej z programatora AVR ISP z USB i myślę że tu powinno być w porządku.

    Jednak sterownik serw robiłem sam i jest to sam procesor z wyprowadzeniami z pinów prosto na serwa, procesor zasilam bezpośrednio z drugiego programatora, a serwa z akumulatora 6V (masy oczywiście podłączone ze sobą). Płytka jest wolna od jakichkolwiek kondensatorów filtrujących gdyż byłem przekonany że zasilając ją z takich źródeł nie są potrzebne. Czy w tym może tkwić problem??

    Proszę poprawić błędy ortograficzne - regulamin p.15
    [zymek]
  • REKLAMA
  • #2 7419540
    unitral
    Użytkownik obserwowany
    Sprawdź, podokładaj kondensatory to wyeliminujesz przynajmniej jedną przyczynę.
  • REKLAMA
  • #3 7420406
    gamgee1
    Poziom 11  
    Tylko że ja zawsze mam z tym problem. Nie wiem jakie. Nie mam oscyloskopu.
    Dać ceramiczny czy elektrolit? Ile? Gdzie? Tylko na zasilanie??
  • #4 7423259
    unitral
    Użytkownik obserwowany
    Przy każdym scalaku na zasilaniu jakieś 33-100nF i na całej płytce kilka 47uF- elektrolity,Przy wejściu zasilania przynajmniej 100uF, przy wyjściach napięć do serw (każdym) też conajmniej 10uF.
    Podrzuć schemat oto powiem coś więcej.

    Ogólnie robi się tak aby zasilanie było dobrze filtrowane a wszystkie wyjścia zasilania posiadały co najmniej mały bufor pojemnościowy.

    Dobrze jest też w torze zasilania - na długich ścieżkach powkładać jakieś pojemności. Najoptymalniej jest stosować elektrolity rzędy 10uf plus 22nF w połączeniu równoległym
REKLAMA