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

ZL3AVR – port C, diody LED nie świecą poprawnie na pinach PC2-PC5, Bascom AVR

rogeros 15 Lut 2008 21:24 1368 10
REKLAMA
  • #1 4808923
    rogeros
    Poziom 13  
    Posty: 135
    Ocena: 1
    Witajcie.
    Jestem początkującym w dziedzinie mikrokontrolerów.
    Zakupiłem sobie zestaw uruchomienieniowy ZL3AVR i zacząłem swoja zabawę.

    I stwierdziłem że coś jest nie tak z jednym portem a mianowicie mowa o porcie C.

    napisałem :):) programik w bascom

    $regfile = "m32def.dat"
    $crystal = 8000000
    
    Config Portc = Output
    
    Do
    
    
    Toggle Portc.0
    waitms 50
    Toggle Portc.1
    waitms 50
    Toggle Portc.2
    waitms 50
    Toggle Portc.3
    waitms 50
    Toggle Portc.4
    waitms 50
    Toggle Portc.5
    waitms 50
    Toggle Portc.6
    waitms 50
    Toggle Portc.7
    waitms 50
    
    Loop




    do kazdego z pinów podłączyłem diody led i na diodach nie mam pięknego wężyka świetlnego.
    otóż
    pc0 - działa poprawnie
    pc1 - działa poprawnie
    pc2 - świeci się ciągłym słabym światełkiem
    pc3 - w ogole nie świeci
    pc4 - świeci się ciągłym słabym światełkiem
    pc5 - świeci się ciągłym słabym światełkiem
    pc6 - działa poprawnie
    pc7 - działa poprawnie.

    co mam na myśli że działa poprawnie.
    otóż widzę że to jest fragment mojego wężyka świetlnego.
    sam początek dwie diody i sam koniec dwie diody bo środek dziwnie się zachowuje.


    dodam że podłączając diody pod inne porty wszystko działa oki czyli wężyk jest cały wyświetlany.



    i tu pytanie początkującego. czy to jest poprawne zachowanie portu C
    czy wcześniej coś źle połączyłem i "popsułem" Atmege32?
  • REKLAMA
  • #2 4808940
    snow
    Poziom 31  
    Posty: 1825
    Pomógł: 178
    Ocena: 201
    Musisz wyłączyć JTAG bo on jest na porcie C - było o tym wiele razy.
  • REKLAMA
  • #3 4809376
    dawid512
    Poziom 32  
    Posty: 1439
    Pomógł: 229
    Ocena: 6
    Popieram kolegę! Jak programujesz przez Bascoma to masz tam taka zakladke "Locks and fuse bits". W niej wybierasz JTAG i ustawiasz "Disabled" potem write FS lub FSH juz nie pamietam dokladnie(ktores bedzie napewno do wybrania) i problem z portem C znika.

    Pozdrawiam Dawid.
  • #4 4810440
    rogeros
    Poziom 13  
    Posty: 135
    Ocena: 1
    posiadam wersję demonstracyjną bascom-avr i niestety nie widzę takiej zakładki. moja wersja to

    
    Compiler version :1.11.8.7
    Compiler build   :1.11.8.7.001
    IDE version      :1.11.8.7
    Serial number    :Serial  DEMO
    Windows OS       :Microsoft Windows XP
    Windows SP       :Dodatek Service Pack 2
    Explorer         :7.0.5730.13
    Company          :
    Owner            :xp
    Windows dir      :C:\WINDOWS
    App data dir     :C:\Documents and Settings\xp\Dane aplikacji
    System dir       :C:\WINDOWS\system32
    
  • #5 4810478
    nsvinc
    Poziom 35  
    Posty: 2870
    Pomógł: 262
    Ocena: 88
    twoja wersja to akurat tak ktora jest najpopularniejsza. Szczególy moge ci udzielić na priv co do tej wersji. A jesli programujesz w systemie to sciągnij sobie "ispprog" wiele lepszy od innych badzewi i dostęp do wszystkich fusebitów
  • REKLAMA
  • #6 4810592
    dawid512
    Poziom 32  
    Posty: 1439
    Pomógł: 229
    Ocena: 6
    Witam.

    Zrób tak:
    podłącz procka do programatora potem otworz w Bascom jakis program, skompiluj go (klawisz F7) potem nacisnij klawisz F4 otwiera Ci sie nowe okienko. Teraz mozesz wrzucic program do procka przy pomocy write flash. Masz tam 3 zakladki w tym jedna o nazwie: "Locks and fuse bits". Przechodzisz na nia szukasz "JTAG" i wybierasz "Disabled" . Nastepnie klikasz write FS lub FSH juz nie pamietam dokladnie(ktores bedzie napewno do wybrania) i problem z portem C znika.

    Pozdrawiam.
  • REKLAMA
  • #7 4811224
    rogeros
    Poziom 13  
    Posty: 135
    Ocena: 1
    i tu sie sprawy komplikują.
    Ponieważ używam "external programmer"
    i podczas programowania pojawia mi się na chwilkę okno
    ms-dos ładowany jest program do procesora i niestety nic nie mogę ustawić.

    być może trzeba coś dopisać do parametrów uruchamiania avrdude

    obecnie mam:
    -p m32 -c usbasp -e -U flash:w:"{FILE}":a

    za pomoc z góry dziękuję.
  • #8 4811313
    dawid512
    Poziom 32  
    Posty: 1439
    Pomógł: 229
    Ocena: 6
    Zawsze możesz sobie zrobić programator Sample Electronics składający się z 3 rezystorów i wtyczki LPT. Dzieki niemu programy możesz wrzucać bezpośrednio z Bascoma i fuse bity przestawiac takze.
  • #9 4811412
    rogeros
    Poziom 13  
    Posty: 135
    Ocena: 1
    niestety mój komputer wyposażony jest tylko w porty USB :(
  • #10 4811439
    dawid512
    Poziom 32  
    Posty: 1439
    Pomógł: 229
    Ocena: 6
    Zobacz czy twój programator zadziała z programem ponyprog. Tam tez wylaczysz JTAGA.
  • #11 4812886
    tajwoj
    Poziom 26  
    Posty: 559
    Pomógł: 106
    Ocena: 102
    Popatrz w dokumentacji mikrokontrolera na rozdział "Memory programing".
    Otwórz to, co nazywasz oknem "ms-dos" i wpisz (wklej) polecenie:
    avrdude -p m32 -c usbasp  -U hfuse:w:0xD9:m

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczy portu C mikrokontrolera w zestawie uruchomieniowym ZL3AVR, gdzie diody LED podłączone do pinów PC2-PC5 świecą nieprawidłowo (słabe światło lub brak świecenia), podczas gdy pozostałe piny działają poprawnie. Przyczyną jest aktywny interfejs JTAG, który blokuje dostęp do części portu C. Rozwiązaniem jest wyłączenie JTAG poprzez ustawienie odpowiednich fuse bitów w mikrokontrolerze. W Bascom AVR można to zrobić w zakładce "Locks and fuse bits" (opcja "JTAG Disabled"), jednak w wersji demonstracyjnej Bascom brak tej funkcji. Alternatywnie można użyć zewnętrznego programatora i narzędzi takich jak avrdude lub ponyprog do zmiany fuse bitów. Przykładowa komenda avrdude do wyłączenia JTAG to: avrdude -p m32 -c usbasp -U hfuse:w:0xD9:m. Problem wynika z domyślnego ustawienia fuse bitów, które należy zmodyfikować, aby port C działał poprawnie i diody LED świeciły zgodnie z oczekiwaniami.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA