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

[ATMEGA32][BASCOM] Problem z uart

paluch_ 04 Sty 2009 22:40 2035 11
REKLAMA
  • #1 5951533
    paluch_
    Poziom 11  
    Witam
    Jestem początkujący z uC i bardzo proszę o pomoc. Mam płytkę testową AVR BRD III i próbuje zrobić komunikację z PC po rs232. Nie wiem czy dobrze rozumiem schemat płytki, ale podłączyłem z pc w taki sposób: masy spięte razem, pd1-rxd,pd0-txd. Mój program w bascom:

    
    $regfile = "m32def.dat"
    $crystal = 4000000
    
    Config Com1 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    $baud = 19200
    
    
    
    do
      Print "a"
      waitms 20
      print "b"
      waitms 20
    loop
    


    Jednak dostaje na terminal same krzaczki. Próbowałem z różnymi baud jednak bez zmian. Próbowałem w bascomowym terminalu, hyperterminal i putty. Kiedy podepne rxd na plytce do txd com, a txd na plyce do rxd com to nie dostaje na terminal kompletnie nic. Nie wiem w czym tkwi mój problem, zle połączenie czy zły program? Układ zasilam z usb. Bardzo proszę o pomoc.
  • REKLAMA
  • #2 5951573
    dawid512
    Poziom 32  
    Zmieniłeś fuse bity dla wew. RC lub zewnętrznego kwarcu 4MHz? Musisz uważać na wew. RC bo jest nie dokładny.
  • REKLAMA
  • #3 5951726
    paluch_
    Poziom 11  
    Ustawiałem wewnętrzny zarówno na 4 i 8 bez zmian niestety. Może powinienem ustawić inną wartość? Możesz podać co powinienem wybrać w bascomie w zakładce fusebitów?
  • REKLAMA
  • #4 5951778
    dawid512
    Poziom 32  
    Na płytce masz kwarc 16MHz więc ustaw fuse bity tak: Link. Na zew. kwarcu powinno lepiej gadać :)
  • #6 5960306
    paluch_
    Poziom 11  
    Witam
    Dalej nic z tego nie wyszło. Próbowałem na wewnętrznym oscylatorze z rożnymi prędkościami i różnym baud. Ustawiałem flagę Osccal na 0 następnie zwiększałem o jeden i sprawdzałem kiedy na terminalu nie będzie krzaczków jednak nigdy nie wyświetliło żadnego normalnego tekstu. Ciągle znaczki. Na koniec próbowałem ustawić fusebity takie jak zaproponował Dawid, jednak po tym zabiegu straciłem kontakt z atmega. Przy próbie zczytania - READLB entry not found. Znalazłem w necie że można przywrócić atmege do życia stosując uC at90s2313 podciągając z niego wyjście zegarowe jednak nie mam takiego uC pod ręką teraz. Dysponuje jedynie attiny2313 i z nim mi się to nie udało. Nie wiem co robię źle? Komunikacja przez attiny2313 po rs działa wzorcowo a z tą atmegą nie mogę sobie poradzić. Jakieś pomysły?
  • #7 5960692
    dawid512
    Poziom 32  
    Widocznie ustawiłeś je inaczej lub nie masz podłączonego kwarcu.
  • #8 5960750
    paluch_
    Poziom 11  
    Jestem początkujący więc nie zaprzeczam - widocznie popełniłem gdzieś błąd. Z tego co widzę kwarc jest na stałe wlutowany w płytkę 16mhz. Odnośnie zegara ustawiłem: Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1111 SUT=00].
  • REKLAMA
  • Pomocny post
    #9 5960819
    dawid512
    Poziom 32  
    Oprócz tego trzeba jeszcze zaprogramować CKOPT bo inaczej nie będzie działać na 16MHz. Przy takim ustawieniu jak zrobiłeś powinno działać na kwarcu 8MHz.
  • #10 5960942
    paluch_
    Poziom 11  
    Dzięki za podpowiedź, jutro kupie kwarc 8mhz i spróbuje jeszcze raz. Druga sprawa - czy jeżeli kupie uC at90s2313 i zepnę jego xtal1 z xtal2 atmegi może zadziałać? Generalnie każdy musi zapłacić frycowe i się zastanawiam jak można w przyszłości odzyskiwać takie uC z błędnymi fusebitami. Czytałem o programatorze równoległym ale wszędzie piszą, że to b.droga sprawa.
  • Pomocny post
    #11 5961248
    wader_669
    Poziom 28  
    wez sobie zrob porsty generator jest gdzies tutaj na forum, mi pomaga. Chyba ze reset zle ustawisz to tylko rownolegly ci pomoze w necie masz pare schematow wpisz hv programer i nie sa wcale takie drogie.
  • #12 5976010
    paluch_
    Poziom 11  
    Witam
    Udało mi się odzyskać atmege przez kwarc 4mhz. Dodatkowo moje problemy były spowodowane złym podłączeniem. Wcześniej pracowałem z płytką zl11avr i tam to było inaczej zorganizowane. Dla zainteresowanych: trzeba połączyć ze sobą piny pd0-rxd, pd1-txd na płytce a kompa podłączyć do złącza rs232 z boku płytki i dodatkowo wyprowdzić dodatkowy kabel na mase bo pin gnd we wtyczce nie jest podłączony. Dziękuje wszystkim za pomoc. pozdrawiam
REKLAMA