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

[Rozwiązano] ATtiny4 - nie ustawia portów na wyjście, a może nie programuje się.

dondu 21 Lut 2023 11:04 963 7
REKLAMA
  • #1 20450278
    dondu
    Moderator na urlopie...
    Cześć,

    mam problem z ATtiny4 w wersji 6 pinów zakupionymi w TME.

    Mikrokontroler wyciągnięty z opakowania i przylutowany do płytki testowej.
    Program testowy pinów:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Programuję go SNAP-em przez interfejs TPI.

    ATtiny4 - nie ustawia portów na wyjście, a może nie programuje się.

    Po kliknięciu w Microchip Studio ikonki "Start Without Debugging" komunikaty wyglądają następująco:

    Cytat:
    ------ Build started: Project: ATtiny4-testy, Configuration: Release AVR ------
    Build started.
    Project "ATtiny4-testy.cproj" (default targets):
    Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
    Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Compiler.targets" from project "K:\bogncn\ATtiny4\ATtiny4-testy\ATtiny4-testy\ATtiny4-testy.cproj" (target "Build" depends on it):
    Task "RunCompilerTask"
    Shell Utils Path C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils
    C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils\make.exe all --jobs 8 --output-sync
    make: Nothing to be done for 'all'.
    Done executing task "RunCompilerTask".
    Task "RunOutputFileVerifyTask"
    Program Memory Usage : 56 bytes 10,9 % Full
    Data Memory Usage : 0 bytes 0,0 % Full
    Warning: Memory Usage estimation may not be accurate if there are sections other than .text sections in ELF file
    Done executing task "RunOutputFileVerifyTask".
    Done building target "CoreBuild" in project "ATtiny4-testy.cproj".
    Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
    Target "Build" in file "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Avr.common.targets" from project "K:\bogncn\ATtiny4\ATtiny4-testy\ATtiny4-testy\ATtiny4-testy.cproj" (entry point):
    Done building target "Build" in project "ATtiny4-testy.cproj".
    Done building project "ATtiny4-testy.cproj".

    Build succeeded.
    ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========


    Jak widać powyżej nie zgłasza żadnych problemów, ale piny PB0, PB1 i PB2 nie są ustawione na wyjścia (sprawdzałem zewnętrznym rezystorem pull-up), ani nie mają stanu wysokiego, czyli są w stanie HiZ.

    Aby sprawdzić, czy na pewno SNAP programuje ATtiny4, odłączałem po kolei sygnały DAT, CLK i RESET i próbowałem programować. W takim przypadku IDE oczywiście zgłaszało błąd:

    ATtiny4 - nie ustawia portów na wyjście, a może nie programuje się.

    Zaznaczam, że SNAP spokojnie programuje ATtiny202 ale przez UPDI.

    Jestem w kropce, bo ATtiny4 to pierwszy mój mikrokontroler z interfejsem TPI.
    Coś robię nie tak?

    Dodano po 11 [minuty]:

    Uprościłem ten program do wersji:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    i w pliku .lss jest prawidłowy kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Adresy rejestrów są prawidłowe bo według dokumentacji:
    - DDRB ma adres 0x01
    - PORTB ma adres 0x02

    Wszystko jest więc ok, ale jak pisałem wcześniej piny są w stanie HiZ :(

    Domyślnie mikrokontroler działa na wewnętrznym generatorze 1MHz.
    Jak sprawdzić, czy SNAP go faktycznie programuje?
  • REKLAMA
  • #2 20450580
    Janusz_kk
    Poziom 38  
    dondu napisał:
    Jak sprawdzić, czy SNAP go faktycznie programuje?

    Wejdź w debug sprzętowy, daj pułapkę na 2c i odczytaj rejestry z procka.

    Dodano po 2 [minuty]:

    I jeszcze jedno, spróbuj odczytać program z procka do pliku.
  • REKLAMA
  • #3 20450750
    StaryVirus_e_Wiarus
    Poziom 21  
    Cześć
    Wg mnie to w ogóle nie wykonałeś wgrania programu do ATtiny z Microchip Studio. Trzeba to zrobić z poziomu Menu / Tools / Device Programming.
  • REKLAMA
  • REKLAMA
  • #8 20455356
    dondu
    Moderator na urlopie...
    bart-projects napisał:
    To już chyba gdzieś było. Strona 104 datasheet ->
    Cytat:
    NVM can be programmed at 5V, only.

    Sorki, ale 5 minut po napisaniu postu doczytałem w dokumentacji, zmieniłem na 5V i poszło. Sorki, nie miałem czasu napisać.
    Dzięki panowie pomoc.

    Dla potomnych

    ATtiny4 - nie ustawia portów na wyjście, a może nie programuje się.

    StaryVirus_e_Wiarus napisał:
    Cześć
    Wg mnie to w ogóle nie wykonałeś wgrania programu do ATtiny z Microchip Studio. Trzeba to zrobić z poziomu Menu / Tools / Device Programming.

    Jest zielona ikonka kompilacji i programoania w jednym.
REKLAMA