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

Problem z wyprowadzeniami PortB (PB0 i PB2)

tomek_byd 05 Cze 2009 13:50 2075 14
REKLAMA
  • #1 6618952
    tomek_byd
    Poziom 13  
    Dopiero startuje w temacie mikrokontrolerów z książką "Mikrokontrolery dla początkujących" w ręku więc proszę o wyrozumiałość.
    Napisałem program w BASCOMIe gdzie na początku mam:
    Config Portb = 255 : Portb = &B00000000
    Config Porta = &B11111100 : Porta = &B10000111

    PortB jest podłączony pod linie segmentowych wyświetlaczy, a PortA 3-6 pod tranzystory podające zasilanie na poszczególne wyświetlacze.
    Niestety po uruchomieniu programu nie działa segment A i C czyli PortB.0 i PortB.2. Co może być tego przyczyną? Na specyfikacji widzę że te dwa wyprowadzenia pełnią dodatkowe funkcje XCK/T0 oraz INT2/AIN0 ale przecież nie włączam ich więc wszystko powinno działać.

    Działam na mikrokontrolerze Atmega16 16PU.
  • REKLAMA
  • #2 6619129
    dawid512
    Poziom 32  
    Sprawdź połączenia i pokaż cały program.
  • REKLAMA
  • #3 6619185
    tomek_byd
    Poziom 13  
    W sumie zostawiłem tylko taki kawałek programu. Nic więcej już nie ma w nim i cały czas taki sam efekt. Na pewno jest połączenie pomiędzy nóżką mikrokontrolera, a pinem. Odłączam przewód idący do segmentu A i podłączam pod PortB.1 i zapala się więc połączenia są OK. Problem jest gdzie indziej. Nawet próbowałem na odwrót wpisać do portu B &B00000101 ale nie ma efektu.
    Tak w ogóle to pracuje na module uruchomieniowym Atmega wersja 2 z gotronik.

    Podobny problem mam z portem D ale z pinami 0 i 1. Wgrywam program, odłączam TxD i RxD od FT232 i resetuje go i niestety nie reagują oba piny.

    Jestem początkującym w tej dziedzinie więc mogę popełniać jakiś banalny błąd który dla innych jest oczywistością ale na tym etapie niestety tak jest. Trzeba uczyć się na błędach.
  • #4 6619216
    dawid512
    Poziom 32  
    Cytat:
    Podobny problem mam z portem D ale z pinami 0 i 1. Wgrywam program, odłączam TxD i RxD od FT232 i resetuje go i niestety nie reagują oba piny.
    Do procka masz wgrany bootloader ldatego nie masz dostepu do tych pinów. Co do pinów z portu B spróbuj z najprostszym programem czy w ogóle jest tam wystawiany jakiś stan.
  • #5 6619271
    tomek_byd
    Poziom 13  
    Sprawdziłem multimetrem i na PB.0 mam 3V, na PB.2 mam 0,5V, a na prawidłowo działających PB.1 oraz PB.3-7 mam 0V. Przy zgaszonych prawidłowo działających segmentach mam 4,5V więc te wartości 3V i 0,5V do niczego nie pasują. Ani port nie jest włączony ani wyłączony.

    Napisałem takie coś:
    Config Portb = 255 : Portb = &B11111111
    Config Porta = &B11111100 : Porta = &B10000111
    Do
       Wait 1 : Portb = &B01010101
       Wait 1 : Portb = &B10101010
       Wait 1 : Portb = &B00000000
    loop
    

    Segmenty zapalają się na zmianę ale cały czas tych dwóch brakuje.
  • #6 6619822
    sp3ots
    Poziom 38  
    Witam !
    Wyłącz bit konfiguracyjny JTAG fabrycznie 0, ma być 1 i będzie ok.
    Pozdrawiam. Stefan
  • REKLAMA
  • #7 6619844
    tomek_byd
    Poziom 13  
    A jak to zrobić? Mogę tylko wgrać plik hex przez MegaLoad .NET.
  • #8 6620036
    sp3ots
    Poziom 38  
    Umiem tylko w Bascomie to zrobić.
  • #9 6620100
    tomek_byd
    Poziom 13  
    Ale programowo? Czy poprzez ustawianie fuse bits? Bo ja właśnie pisze swoje programy w Bascomie ale wgrywam skompilowany hex przez MegaLoad.

    Dodano po 16 [minuty]:

    No to są dwa wyjścia albo kupić nową kostkę albo odblokować tą. Niestety obecnie przebywam w miejscu gdzie takie układy są trudno dostępne więc na razie w grę wchodzi druga wersja czyli odblokowanie układu bo ISP nie działa a z tego co tu widzę to JTAG działa. Niestety mam tylko programator usbasp więc pytanie brzmi czy łatwo dało by się zbudować programator JTAG pod lpt lub com bez układów scalonych.
  • REKLAMA
  • #10 6620186
    dawid512
    Poziom 32  
    sp3ots napisał:
    Witam !
    Wyłącz bit konfiguracyjny JTAG fabrycznie 0, ma być 1 i będzie ok.
    Pozdrawiam. Stefan


    JTAG odpowiada za niektóre końcówki PORTU C a nie B!
    Proponuję napisać do producenta aby powiedział Ci jak pozbyć się bootloadera.
  • #11 6620263
    tomek_byd
    Poziom 13  
    Na pewno chciałbym odblokować ISP. Czy są jakieś łatwe możliwości odblokowania go? Posiadam tylko elementy z AVT701-704, płytkę stykową i port com i lpt w kompie. Może coś się da zrobić?
  • #12 6634911
    tomek_byd
    Poziom 13  
    No to kupiłem drugi mikrokontroler i ISP działa. Mam pełne porty A B D ale za to nie mam PC2-PC5. Znalazłem, że to porty od JTAG i chciałem ustawić JTAGEN na 1 w AVR8 Burn-O-Mat v2 ale niestety jest on na czerwono i nie mogę go przełączyć. Czy jest jakaś możliwość za pomocą programatora ISP dokładnie usbasp wyłączyć JTAG? Może zamiast programatora wykorzystać drugą mikrokontroler który mam?
  • Pomocny post
    #13 6635264
    Konto nie istnieje
    Poziom 1  
  • #14 6635414
    tomek_byd
    Poziom 13  
    No to w końcu wszystko działa choć lepiej by było żeby wyłączyć go na stałe.
  • #15 10744057
    darik2
    Poziom 2  
    tomek_byd napisał:
    No to kupiłem drugi mikrokontroler i ISP działa. Mam pełne porty A B D ale za to nie mam PC2-PC5. Znalazłem, że to porty od JTAG i chciałem ustawić JTAGEN na 1 w AVR8 Burn-O-Mat v2 ale niestety jest on na czerwono i nie mogę go przełączyć. Czy jest jakaś możliwość za pomocą programatora ISP dokładnie usbasp wyłączyć JTAG? Może zamiast programatora wykorzystać drugą mikrokontroler który mam?


    Spotkałem się teraz z tym samym problemem i wyczytałem na stronie Mirley. Żeby na stałe wyłaczyć JTAGEN wystarczy wybrać w oknie Fuses w zakładce Mode opcję "expert" i możesz wszystko zmieniać.

    Temat odgrzewany, ale wiecznie aktualny :)
REKLAMA