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

[AVR][C] - RS232 nie dziala po zmianie atmega32 na atmege32A

sorex86 12 Lis 2012 19:28 1437 4
REKLAMA
  • #1 11521048
    sorex86
    Poziom 15  
    Witam,


    Sprawa wyglada tak. Mam wytrawione dwie identyczne plytki

    1) atmega32, 5V, 16Mhz
    2) atmega32A, 3.3V, 8Mhz

    Problem:

    Otoz, jezeli wgram na plytke 1 lub 2 gotowiec UART z ksiazki tmf lub mk rs232 dziala na obu plytkach. Natomiast biblioteka, ktorej obecnie uzywam dziala tylko na plytce 1 (atmega32, 5V, 16Mhz). Na drugiej plytce (atmega32A, 3.3V, 8Mhz) mam smieci zamiast transmisji.

    Uzywam: eclipse, w opcji AVR -> Target Hardwear -> mam ustawione Atmega32. Jedynie zmieniam MCU clock 8Mhz lub 16Mhz.


    Ustawilem fusebity na atmega32A:
    h: 99
    l: AF

    http://www.engbedded.com/fusecalc


    Biblioteka wyglada tak:
    .h
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


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


    gdzie lezy problem, ze ten sam kod przestaje dzialac na atmedze32A?


    Ps. Zamienilem stabilizatory oraz uP miedzy plytkami i efekt jest ten sam. Ewidentnie ten kod niechce dzialac na atmedze32A mimo, ze dziala na atmedze32.

    Ustawilem miganie diody z funkcja delay_ms(1000) na atmedze32A. Wyglada na to, ze dioda miga co 1s....
  • REKLAMA
  • #2 11521077
    mirekk36
    Poziom 42  
    Zamiast się domyślać, że kłopoty wynikają z tego że stosujesz niby dwa różne procki

    m32 i m32a

    weź sobie zajrzyj do tej noty porównawczej PDF Atmela - raptem 2 strony

    http://www.atmel.com/Images/doc8162.pdf

    - nawet nie ma za bardzo co tłumaczyć - żeby zrozumieć - że NIC A NIC SIĘ NIE RÓŻNIĄ pod względem programowania i pisania kodu.

    2 strony - w zasadzie nawet jedna, bo pierwsza to Introduction.

    Dodano po 2 [minuty]:

    sorex86 napisał:

    gdzie lezy problem, ze ten sam kod przestaje dzialac na atmedze32A?.


    Jak więc widzisz po przeczytaniu tej noty - problem masz gdzieś indziej niż w kodzie.
  • REKLAMA
  • #3 11521120
    sorex86
    Poziom 15  
    No wlasnie,.. jedynie co mi do glowy przychodzi to fusebity. Zle je ustawilem ?


    h: 99
    l: AF

    http://www.engbedded.com/fusecalc

    ext. high freq Crystal/Rezonator 258CK + 64MS 1110 01

    Zaznaczone:
    - Brown-out detection enabled; [BODEN=0]
    - Serial program downloading (SPI) enabled; [SPIEN=0]
    - JTAG Interface Enabled; [JTAGEN=0]


    ---


    CKOPT CKSEL3:1 Frequency Range(MHz)
    ----- -------- --------------------
    1 101(1) 0.4 - 0.9
    1 110 0.9 - 3.0
    1 111 3.0 - 8.0
    0 101, 110, 111 1.0 ≤
  • REKLAMA
  • Pomocny post
    #4 11521986
    mirekk36
    Poziom 42  
    Programujesz procka przez JTAG, że masz włączony ten fusebit ?

    ale ok on nie ma wpływu na pracę RS232, więc jeśli masz kwarc 16MHz to powinno działać - a jeśli nie działa - to masz problem ze sprzętem, połączeniami itp

    albo kod
  • #5 11522736
    sorex86
    Poziom 15  
    Uzywam zewnetrznego zrodla referencyjnego 2V, a przerabialem stary projekt bazujacy na wewnetrznym zrodle... Po zmianie na :

    ADMUX=0x00;//napiecie odniesienia ZEWNETRZNE


    wszystko smiga.

    Wniosek? 32 jest 'o wiele lepiej idiotoodporna' niz 32A ...
REKLAMA