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

Atmega 162 uart - Błąd w nocie katalogowej

13 Lis 2014 09:52 1170 12
  • Poziom 16  
    W nocie katalogowej Atmega162 jest kod

    Kod: c
    Zaloguj się, aby zobaczyć kod


    nota pobrana dzisaj z elenota

    w starszej którą mam wydrukowaną jest

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Procesor pracuje z prędkością 18 432 000 (potwierdzone oscyloskopem)
    przejściówka na RS232 widzę na oscyloskopie że dane wychodzą do komputera ale w terminalu dostaję nie to co powinienem.

    Czy moglibyście potwierdzić czy to jest prawidłowa inicjalizacja tego procesora, czy Atmel nie zrobił babola w nocie.
  • Tektronix
  • Poziom 25  
    Gdzie widzisz tego babola?

    Przecież inicjalizacja (o ile o to Ci chodzi) jest dokładnie taka sama.
  • Poziom 16  
    ^^^
    #define MYUBRR F_CPU/16/BAUD-1

    czy nie powinno być tak:
    #define MYUBRR F_CPU/(16*BAUD)-1

    Błądzę, ponieważ nie wiem dlaczego nie działa.
  • Tektronix
  • Poziom 28  
    To jest tosamo.
  • Poziom 16  
    witoldwitoldowicz napisał:
    To jest tosamo.

    Racja. W takim razie dlaczego nie działa? Mam walnięty port w PC, cy cóś.
  • Poziom 34  
    Maże zaczniesz od sprawdzenia Fuse-bitów jak znam życie zapyla na wewnętrznym oscylatorze 1MHz .
  • Poziom 16  
    kamyczek napisał:
    Maże zaczniesz od sprawdzenia Fuse-bitów jak znam życie zapyla na wewnętrznym oscylatorze 1MHz .


    Są przestawione odpowiednio ponieważ oscyloskopem sprawdzam i jest na rezonatorze 18432000 dodatkowo do kabla Max232 <-> PC wychodzą bity.

    No nic, poszukam innego kabla i spróbuję.
  • Poziom 34  
    Rezonator z oscylatorem może sobie pracować co jednak nie oznacza że takiego sygnału zegarowego używa mikrokontroler ustaw sobie pętlę w której będziesz zmieniał stan portu tylko z jednym pustym cyklem między każdą operacją i zmierz jak szybko się zmienia ten sygnał ...
  • Poziom 16  
    Ok jutro dam znać co zmierzyłem.
  • Poziom 1  
  • Poziom 16  
    ^^^ A gdzie ja napisałem coś takiego?

    kamyczek napisał:
    Rezonator z oscylatorem ...


    Atmega 162 uart - Błąd w nocie katalogowej

    ten obrazek jest osiągnięty tym kodem

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Taktowanie jest w porządku

    Podejżałem oscyloskopem linię tx pomiędzy MAX232 a kablem do PC
    wysyłana litera 'A'
    Atmega 162 uart - Błąd w nocie katalogowej
    wysyłana litera 'B'
    Atmega 162 uart - Błąd w nocie katalogowej
    wysyłana litera 'C'
    Atmega 162 uart - Błąd w nocie katalogowej


    Dodatkowo zrobiłem pare testów

    Z oscylogramów pospisywałem bity i przyjołem
    -15 - -3 logiczna jedynka
    +3 - +15 logiczne 0



    DEC BIN BITY spisane z oscylogramu
    1 1 01000000
    2 10 00100000
    3 11 01100000
    ...
    11 1011 01101000
    12 1100 00011000
    ...
    25 11001 01001100
    30 11110 00111100


    Czyli wysyłanie wpierw najmniej znaczącego bitu i przesyłanie jest prawidłowe
    wysyłało zawsze 8 bitów i może w przypadku wysyłania liter łapałem tylko częśc danych ale liczby wysyłane są ok.


    Więc mam schrzanine coś w PC?
  • Poziom 1  
  • Poziom 16  
    ^^^ Tak to mnie też zastanawia dlaczego się tak dzieje ponierważ zawsze wysyłał
    8 bitów

    1 bit startu
    6 bitów
    2 bity stopu
    To mnie zastanawia

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Czy ta konfiguracja daje rzeczywiście 8 bitów?