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

Atmega 162 UART - różnice w kodzie inicjalizacji w nowszej i starszej nocie katalogowej

karol75 13 Lis 2014 09:52 1377 12
  • #1 14126818
    karol75
    Poziom 16  
    W nocie katalogowej Atmega162 jest kod

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    nota pobrana dzisaj z elenota

    w starszej którą mam wydrukowaną jest

    Kod: C / 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.
  • #2 14126906
    pietia86
    Poziom 26  
    Gdzie widzisz tego babola?

    Przecież inicjalizacja (o ile o to Ci chodzi) jest dokładnie taka sama.
  • #3 14126979
    karol75
    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.
  • #4 14126984
    witoldwitoldowicz
    Poziom 28  
    To jest tosamo.
  • #5 14127037
    karol75
    Poziom 16  
    witoldwitoldowicz napisał:
    To jest tosamo.

    Racja. W takim razie dlaczego nie działa? Mam walnięty port w PC, cy cóś.
  • #6 14127040
    kamyczek
    Poziom 38  
    Maże zaczniesz od sprawdzenia Fuse-bitów jak znam życie zapyla na wewnętrznym oscylatorze 1MHz .
  • #7 14127049
    karol75
    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ę.
  • #8 14127411
    kamyczek
    Poziom 38  
    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ł ...
  • #9 14127459
    karol75
    Poziom 16  
    Ok jutro dam znać co zmierzyłem.
  • #10 14128768
    Konto nie istnieje
    Poziom 1  
  • #11 14130029
    karol75
    Poziom 16  
    ^^^ A gdzie ja napisałem coś takiego?

    kamyczek napisał:
    Rezonator z oscylatorem ...


    Atmega 162 UART - różnice w kodzie inicjalizacji w nowszej i starszej nocie katalogowej

    ten obrazek jest osiągnięty tym kodem

    Kod: C / 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 - różnice w kodzie inicjalizacji w nowszej i starszej nocie katalogowej
    wysyłana litera 'B'
    Atmega 162 UART - różnice w kodzie inicjalizacji w nowszej i starszej nocie katalogowej
    wysyłana litera 'C'
    Atmega 162 UART - różnice w kodzie inicjalizacji w nowszej i starszej 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?
  • #12 14130076
    Konto nie istnieje
    Poziom 1  
  • #13 14130080
    karol75
    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 / C++
    Zaloguj się, aby zobaczyć kod


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