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

[EVB 4.3]Mikrokontroler nie wykonuje poleceń.

Qujon28 05 Gru 2010 17:14 2225 9
REKLAMA
  • #1 8830052
    Qujon28
    Poziom 2  
    Jest to mój pierwszy post, więc wszystkich witam. ostatnio zakupiłem zestaw EVB 4.3 .4, z procesorem ATMEGA 32. Płytkę kupiłem do nauki programowania BASCOM. Mam jednak problem -jest to chyba najprostszy program jaki może być:

    $regfile = "m32def.dat"                                     'najpierw określamy typ proca
    $crystal = 1000000                                          'definiujemy z jakim taktowaniem będzie pracował
    
    
    Config Portd = Output                                       'pprt d jako wyjścia
           Portd = &B1111111                                    'wszędzie stan spoczynkowy-1



    Do wyjścia D.0 podłączyłem diodę LED, miała ona po prostu się świecić, lecz po zaprogramowaniu dioda dwa razy miga i nic. Podłączam kabelek do Buzzera-działa. o wgraniu "zaawansowanych programów", np. jeśli S wciśnięty, włącz buzzer, program nie reaguje, tylko ciągle wysyła napięcie do głośniczka. Proszę o pomoc. Pozdrawiam.

    Proszę poprawić tytuł - regulamin p.11.1
    [zumek]
  • REKLAMA
  • #2 8830335
    naelektryzowany
    Poziom 17  
    Dioda led nie ma prawa się świecić gdyż zaświecasz ją stanem niskim (ściągasz do gnd) czyli stan 0, a w programie masz 1. Buzzer działa bo uruchamiasz go stanem wysokim - 1.
  • #3 8830405
    Qujon28
    Poziom 2  
    Poprawiłem program i teraz w części stanu początkowego, zamiast jedynek, dałem &B0000000, lecz nic to nie zmieniło- Buzzer działa, dioda nie. Najdziwniejsze jest to, że podczas programowania dioda na chwilkę się zapala i gaśnie (podczas porgramowania, podłączona jest do pind.0)

    //EDIT: To samo, przy 8 zerach i 7, jest ten sam problem.
  • REKLAMA
  • #4 8830418
    naelektryzowany
    Poziom 17  
    wpisz osiem 0 bo port d ma 8 pinów - &B00000000. I na samym końcu wpisz End (zakończenie programu)

    Dodano po 33 [minuty]:

    A spróbuj tego kodu(z szybko migającą diodą) :
    $regfile = "m32def.dat"
    $crystal = 1000000
    
    Config Portd = &B11111111 : Portd = &B11111111
    
    do
    	waitms 100
    	toggle portd.0
    loop
    
    end


    Masz poprawnie ustawione fuse bity? Spróbuj użyć taktowania z zewnętrznego kwarcu. Czy bascom nie pokazuje błędów po wgraniu programu? Spróbuj użyć innego portu/pinu.
  • #5 8831645
    Qujon28
    Poziom 2  
    Więc tak: Twój program działa, jednak nie na portach D.
    Cytat:
    wpisz osiem 0 bo port d ma 8 pinów - &B00000000.

    Tego nie jestem pewien, gdyż w większości przykładów programów występuje 7 portów/pinów. Podobnie jest na schemacie:Link

    Wracając do tematu: Kiedy program instalowałem na porty D, występowało napięcie na pinie 0 (zasila buzzer), zaś 1-6 "przyjmowało" jako masa (dioda się świeciła).
  • #6 8831717
    naelektryzowany
    Poziom 17  
    Qujon28 napisał:

    Cytat:
    wpisz osiem 0 bo port d ma 8 pinów - &B00000000.

    Tego nie jestem pewien, gdyż w większości przykładów programów występuje 7 portów/pinów.


    Przyjrzyj się. Porty są numerowany od zera PD.0 -PD.7 czyli jest ich razem 8 PD.7 Jest w drugim rzędzie...może to cię zmyliło. Sprawdź, czy jest połączenie między nogą atmegi a diodą led, lub ustaw czas zamiast 100ms np. 2sekundy i sprawdź miernikiem, czy pokazuje się napięcie między nogą a napięciem zasilania +5.
  • REKLAMA
  • #7 8832197
    elektrofil
    Poziom 17  
    Proponuje spojrzeć na schemat.
    Piny PD.0 i PD.1 są podłączone na stałe do ft232rl.
    Akurat PD.0 jest podłączony do wyjścia FT232 jest to niezbyt mądry pomysł aby walczyć ze stanami logicznymi wymuszanymi z w.w. układu.

    I żeby nie było, posiadam identyczną EVB w tej konfiguracji FT232 pracuje jako port szeregowy, a nie tylko jako programator podłączany na chwilę.
    według mnie niedopatrzeniem konstruktora jest niezastosowanie zworek do rozłączenia linii RXD i TXD. akurat mi bardzo to by się przydało, szczególnie gdy nie potrzebuje rs232 a wykorzystuje wszystkie piny mikrokontrolera.
  • REKLAMA
  • #8 8834433
    piotrva
    VIP Zasłużony dla elektroda
    tak, kolega elektrofil ma w zupełności racje. spróbuj, czy to samo będzie gdy zasilisz układ z zewnętrznego zasilacza 12V (przy rozwartej zworce usb-vcc).
    jeśli to nie pomoże to po prostu korzystaj z innych pinów.
    Pozostaję w stałym kontakcie z autorem płytki i zasugeruję mu wprowadzenie tej i kilku innych zmian, które stwarzają problemy.
  • #9 8836406
    elektrofil
    Poziom 17  
    Przy zasilaniu zewnętrznym problem z "zajętością" tych linii znika.
    Jeżeli nie jest włączone zasilanie FT232 JTAG pokazuje "raczej stan niski" czyli przeważnie jest stan niski, z skłonnościami do pojawienia bardzo rzadko stanu wysokiego (piny "teoretycznie wiszą w powietrzu") .
    Jak ponoć ogólnie wiadomo, nie pozostawia się niepodłączonych pinów, a na pinach wyjściowych włącza się podciąganie...teoretycznie:)

    jeżeli chodzi o tę płytkę (4.3 v4) jednak brakuje na stałe podłączonych LED'ów do sygnalizacji kierunku transmisji układu ft232 i zworek do rozłączenia RxD i TxD. gdyby były wyprowadzone dodatkowo można by posiadać konwerter USB->RS485 (czasami się przydaje)
  • #10 8837989
    naelektryzowany
    Poziom 17  
    Macie rację panowie. Nie mam tej płytki, wiedziałem, że ma konwerter rs-usb ale byłem pewien, że nie są one podłączone na stałe. To rzeczywiście może (a prawie na pewno jest) źródłem problemu.
REKLAMA