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

atmega162 po zmianie ustawień fusbitów brak transmisji rs232

05 Cze 2009 18:22 1338 13
  • Poziom 11  
    Procesorek nowy ze sklepu na wewnętrznym rezonatorze kwarcowym wysyłał przez rs232 jakieś dane. Po przestawieniu go na prace z zewnętrznym rezonatorem kwarcowym 16MHz nagle przestał wysyłać dane po rs232. max 232 jest sprawny po zwarciu rxt z txd w podstawce procesora echo wraca na terminal. acha wyłączyłem też dzielenie częstotliwości przez 16 przynajmniej tak mi sie zdaje bo diodka jakby prędzej zaczęła migać. sam już nie wiem co jest grane na atmelku z innej serii program normalnie działał.
  • TermopastyTermopasty
  • Poziom 38  
    Dopasuj prędkość transmisji po rs do nowej częstotliwości-miałeś wewnętrzny oscylator 8MHz i włączony dzielnik-przez 8 a nie przez 16-a teraz masz 16MHz bez dzielnika.
    Jak diodka ci szybciej miga-to częstotliwości rs w procesorze i w komputerze Ci się "rozjechały".
  • Poziom 11  
    mam diodkę na pinie pc0 podpięta taka mała kontrola czy mi sie poszczególne fragmenty programu wykonują, i jak sie wykonuje pętla to sie zapala i gaśnie miedzy czasie powinienem po rs232 otrzymać tekst wysyłany przez pętle.

    ustawiałem różne szybkości transmisji od 300 do 9600 na terminalu i nic nawet śmieci sie nie wyświetlają moze coś z tymi fus bitami namieszałem
  • TermopastyTermopasty
  • Poziom 38  
    Szybkość transmisji na terminalu i W PROCESORZE mają być takie same.
    Dla danej częstotliwości kwarcu tylko niektóre częstotliwości transmisji mają błąd<1%
    I oprócz tego parzystość, bity stopu-ale jak chodziło i nie zmieniałeś to sprawdź tylko szybkość-czy jest taka sama.
  • Poziom 11  
    i sa takie same i nic. Niby coś wychodzi z procka jak podłącze miernik pod nóżki, ale na wyjściu maxa232 nic niema, max jest sprawny

    przy 16 MHz ma błąd około 0,2% według tabelki z noty katalogowej atmelka
  • Poziom 33  
    Napisz jaka wartosc wpisujesz w rejestrze UBRR i jaki masz baud rate.
  • Poziom 11  
    w atmelku jest wgrany taki programik

    Code:
    $regfile = "m162def.dat"
    
    $crystal = 16000000
    $baud = 9600
    '$sim
    Config Pina.0 = Input
    Config Pinc.0 = Output
    '-------------------------------------------------------------------------------
    Zworka_rs485 Alias Pina.0
    Zworka_lan Alias Pina.1
    Przekaznik Alias Portc.0
    '-------------------------------------------------------------------------------
    Declare Sub Main_loop
    Declare Sub Rs485
    Declare Sub Lan
    '-------------------------------------------------------------------------------
    Set Zworka_rs485
    '-------------------------------------------------------------------------------
    'Config Com1 = Dummy , Parity = None , Stopbits = 1 , Databits = 8
    Sub Main_loop
       Do
          If Zworka_rs485 = 0 Then
             Waitms 25
             If Zworka_rs485 = 0 Then
                Wait 1
                'Set Przekaznik
                Call Rs485
             End If
          End If
       Loop
    End Sub
    '-------------------------------------------------------------------------------
    Sub Rs485
    Do
    Enable Interrupts
    Echo Off
          Print ""
          Print "***********************************************************"
       Wait 1
             Toggle Przekaznik
    Loop
    End Sub
    '-------------------------------------------------------------------------------
    Sub Lan
    End Sub
    '-------------------------------------------------------------------------------
    End
  • Poziom 33  
    Zakladam ze bascom wylicza wszystko za ciebie ;) Moze nie zmieniles jednak na zewnetrzny kwarc, sprobuj teraz w programie zmienic znowu na 1MHz bez zmiany fusow. Jak nie zadziala to zmien spowrotem na 1MHz i sprawdz czy dziala.
  • Poziom 11  
    kurcze akurat nie mam w domu programatora :( musze poczekać do poniedziałku
  • Poziom 11  
    może ktoś wie jak powinny być prawidłowo ustawione fusebit dla atmegi 162 w avrdude z nakładką graficzną
  • Pomocny post
    Poziom 33  
    Nie wiem jak to w avrdude, ale pamietaj ze bit zaprogramowany to jest 0.
  • Poziom 11  
    znalazłem na sieci taki oto fragment w bascomie ustawiający fusbity dla atmegi 162

    Code:
    $prog &HFF , &HEF , &HD9 , &HFD 
    


    po zaprogramowaniu atmelka wszystko ruszyło przy okazji kupiłem sobie programatorek :)
  • Poziom 38  
    Proponuję abyś teraz wyremował ten fragment:
    $prog &HFF , &HEF , &HD9 , &HFD -bo w sposób mało kontrolowany będziesz zmieniał fuse bity w innych programach.
    Lepiej to robić w Bascomie w opcji programowania LOCK&FUSEBITS.
    "przy okazji kupiłem sobie programatorek"-zawsze byłem zdania że programatory, cyna lutownicza itp. powinny być w każdym kiosku.
    To są rzeczy pierwszej potrzeby- a nie jakieś gazety.
  • Poziom 11  
    fragmencik wyremowałem jak tylko wszystko ruszyło :D . Na szczęście jest coś takiego jak giełda komputerowa/elektroniczna gdzie można wszystko dostać nawet proste programatory :)