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

Atmega16 bascom rs232 błędy w transmisji

dganmar 18 Paź 2010 14:47 2047 1
REKLAMA
  • #1 8634422
    dganmar
    Poziom 12  
    Witam, potrzebuje wykonać komunikację pomiędzy Atmega a pc za pomocą przejściówki USB. problem mam podobny jak pod Tym tematem.
    Daję nowy temat aby nie było że odgrzebuję tamten (mam nadzieje ze dobrze)
    Również mam "czasami" błąd wynikający z 2 pierwszych bitów.
    gdy wysyłam 2 odczytuję w hex B2 albo 32
    b2 10110010
    32 110010

    gdy wysyłam 3 odczytuję w hex B3 albo 33
    b3 10110011
    33 00110011

    kolega ZbeeGin napisał:

    Cytat:
    Z jednej strony w przejściówce jest błąd 0,15% (rezonator 12MHz), a po stronie ATMegi też 0,2% (8MHz) co niestety skumuluje się.

    Możesz spróbować w Twoim programie zwiększyć nieco baud rate ponad standardowe 4800 - na przykład 4815 - by próbować się wstrzelić w przejściówkę. Problemu to nie rozwiąże, ale będzie wiadomo czy to właśnie jest kumulacja obu błędów.

    Rozwiązanie będzie chyba tylko jedno: przejściówka na układach FTDI.


    JA posiadam taką przejściówkę zrobioną z schematu
    Atmega16 bascom rs232 błędy w transmisji

    program z Bascoma to :
    [/img]
    $regfile = "m16def.dat"
    $crystal = 8000000
    '$sim
    Config Lcd = 16 * 2
    Config Lcdmode = Port
    Config Lcdpin = Pin , Db4 = Portd.7 , Db5 = Portc.0 , Db6 = Portc.1 , Db7 = Portc.2 , E = Portc.3 , Rs = Portc.4
    
    $baud = 19200
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 8                                                ' default use 10 for the SW stack
    $framesize = 24
    Dim Dana As String * 1
    
    Dana = "1"
    Cls
    Do
    Upperline
    Lcd "i:"                                                    '; Dana
    Lcd Dana
    Print Dana
    
    Loop
    End


    zauważyłem że najlepiej działa (najrzadziej błąd jak mam $baud = 19200) czy to też jest wina mojej przejściówki??
    oczywiście baud mam taki sam w bascomie jak i na terminalu ustawiony
  • REKLAMA
  • #2 8677328
    J_Bravo
    Poziom 27  
    Na początek zmień kwarc na 11.0592 MHz + zmień w bascomie "$crystal = 11059200"
    wg mnie to powinno pomóc.
REKLAMA