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

[m1280][c] Błędna transmisja UART

hagop 30 Kwi 2011 19:06 1230 2
REKLAMA
  • #1 9455131
    hagop
    Poziom 15  
    Witam

    Urządzenie ma komunikować się przez USB z komputerem. Zamiast MAX232 zastosowałem FT232. Napisałem program testowy zgodnie z datasheeten atmegi. Na terminalu otrzymuje tylko bzdury. Kwarc zewnętrzny 8MHz (z 16MHz nie daje się nawet zaprogramować, a powinien...). Fuse bity 0xFF, 0x99, 0x5E. Próbowałem także przy wewnętrznym oscylatorze.

    Co może być nie tak?

     
    <00>€€€€€€<00>€€€€€<00>€€<00>€<00><00>€€<00>€<00><00>€€€<00>€<00><00>€€<00>€<00>€€€<00>€€<00>€€€€€€€<00>€€€€€€<00>€€€€€<00>€€<00>€<00><00>€€<00>€<00>€€€€€€<00>€€€€€<00>€€<00>€<00>€€€€€<00>€€€€<00>€€€<00>€<00><00><00>€<00><00><00>€€<00><00><00>€<00><00><00>€<00><00><00>€<00>€€<00><00><00>€€<00><00><00>€<00><00><00>€<00><00><00><00><00>€<00><00><00>€<00>€€€<00><00>€<00>€€<00><00><00>€<00>
    



    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 9455395
    Andrzej__S
    Poziom 28  
    Cytat:

    Kwarc zewnętrzny 8MHz...
    ...Fuse bity 0xFF, 0x99, 0x5E...

    Zakładam, że to efuse=0xFF, hfuse=0x99 i lfuse=0x5E. W takim przypadku masz ustawiony fuse bit CKDIV8.


    Atmel napisał:

    The CKDIV8 Fuse determines the initial value of the CLKPS bits. If CKDIV8 is unprogrammed,
    the CLKPS bits will be reset to “0000”. If CKDIV8 is programmed, CLKPS bits are reset to
    “0011”, giving a division factor of 8 at start up.


    Z tego by wynikało, że masz częstotliwość taktowania mikrokontrolera równą 1MHz, a nie 8MHz, bo nie widzę w kodzie, żebyś zmieniał ustawienie bitów CLKPS.
  • #3 9455617
    hagop
    Poziom 15  
    bardzo dziękuję! działa :)
REKLAMA