Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATTINY13 - pierwsze wgranie programu

wilczasty 01 Gru 2012 12:50 1968 18
  • #1 01 Gru 2012 12:50
    wilczasty
    Poziom 19  

    Witajcie!
    Mam problem z wgraniem programu do ATTiny13, jest to nówka sztuka i w tym leży problem. mkAVR Calculator ładnie wykrywa, jednak jak wiadomo darmowa wersja nie obsługuje tiny13.
    ATTINY13 - pierwsze wgranie programu

    Próbowałem różnych programów, eXtreme burner wywala błąd, ze mój plik .hex jest zbyt duży dla mikrokontrolerów AVR.
    SinaProg 2.1 również ładnie odczytuje procesor, gdy próbuje wgrać program wyskakuje błąd:
    ATTINY13 - pierwsze wgranie programu

    Doskonale zdaję sobie sprawę, ze ma być ustawiona zworka SCK, jednak nic to nie daje.
    Jakiś czas temu programowałem świeżą ATTiny2313 za pomocą mkAVRcalculator i nie było żadnego problemu, wszystko działa.

    Chyba, że problem leży w mojej kompilacji? Proszę o ewentualne skompilowanie przez kogoś innego.
    Proszę o pomoc w rozwiązaniu problemu.
    Pozdrawiam.

    0 18
  • Pomocny post
    #2 01 Gru 2012 13:00
    McMonster
    Poziom 32  

    Skoro avrdude twierdzi, że hex jest zbyt duży, to może faktycznie jest zbyt duży? Zobacz sobie:

    Kod: bash
    Zaloguj się, aby zobaczyć kod

    0
  • #3 01 Gru 2012 13:06
    wilczasty
    Poziom 19  

    McMonster napisał:
    Skoro avrdude twierdzi, że hex jest zbyt duży, to może faktycznie jest zbyt duży? Zobacz sobie:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    Jak mam się tym, że tak powiem posłużyć? :D

    Gdy by była taka możliwość prosiłbym kogoś o skompilowanie tego programiku. Powinien od działać i na 100% zmieścić się na tiny13.

    Pozdrawiam!

    0
  • Pomocny post
    #4 01 Gru 2012 13:09
    McMonster
    Poziom 32  

    wilczasty napisał:
    McMonster napisał:
    Skoro avrdude twierdzi, że hex jest zbyt duży, to może faktycznie jest zbyt duży? Zobacz sobie:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    Jak mam się tym, że tak powiem posłużyć? :D (...)

    Otwórz sobie wiersz polecenia (Start > Akcesoria) i użyj tego polecenia, tylko nie zapomnij dać dobrej ścieżki dla pliku hex. Pokaże, ile procent pamięci mikrokontrolera zająłby ten wsad.

    0
  • Pomocny post
    #5 01 Gru 2012 13:18
    pbuhne
    Poziom 14  

    skompilowałem ten program w eclipse i wynik jest taki:

    Device: attiny13

    Program: 918 bytes (89.6% Full)
    (.text + .data + .bootloader)

    Data: 10 bytes (15.6% Full)
    (.data + .bss + .noinit)


    Finished building: sizedummy

    Przy czym tu włączona była optymalizacja -Os, bez niej to zajmowało ponad 4kB

    A czym Ty kompilujesz? Masz włączoną optymalizacje?

    0
  • #6 01 Gru 2012 13:19
    wilczasty
    Poziom 19  

    ATTINY13 - pierwsze wgranie programu

    Coś chyba nie tak. Może AVRstudio źle skompilował plik?

    pbuhne napisał:
    skompilowałem ten program w eclipse i wynik jest taki:

    Device: attiny13

    Program: 918 bytes (89.6% Full)
    (.text + .data + .bootloader)

    Data: 10 bytes (15.6% Full)
    (.data + .bss + .noinit)


    Finished building: sizedummy

    Przy czym tu włączona była optymalizacja -Os, bez niej to zajmowało ponad 4kB

    A czym Ty kompilujesz? Masz włączoną optymalizacje?

    Używam AVRstudio, jednak nic więcej nie ustawiłem.

    Mógłbyś opisać procedurę kompilacji w eclipse?

    pozdrawiam!

    0
  • Pomocny post
    #7 01 Gru 2012 13:24
    pbuhne
    Poziom 14  

    A nie widzisz ze Twój hex ma 13kB ? Ty ten program kompilujesz bez optymalizacji -Os.

    Optimization: Project -> Configuration Options -> Optimization

    z tego co wyczytałem to tam się to ustawia.

    Tego programu sam nie pisałeś? Bo na dzień dobry tam masz ustawione FCPU na 8MHz a chcesz zaprogramować nowy układ który chodzi na 1MHz.

    0
  • #8 01 Gru 2012 13:25
    wilczasty
    Poziom 19  

    pbuhne napisał:
    A nie widzisz ze Twój hex ma 13kB ? Ty ten program kompilujesz bez optymalizacji -Os.

    Jak to mogę ustawić w AVRstudio?

    Pozdrawiam!

    pbuhne napisał:
    A nie widzisz ze Twój hex ma 13kB ? Ty ten program kompilujesz bez optymalizacji -Os.

    Optimization: Project -> Configuration Options -> Optimization

    z tego co wyczytałem to tam się to ustawia.

    Tego programu sam nie pisałeś? Bo na dzień dobry tam masz ustawione FCPU na 8MHz a chcesz zaprogramować nowy układ który chodzi na 1MHz.


    Niestety nigdzie nie widzę opcji gdzie mogę to przestawić.
    Dokładnie tak, nie ja pisałem ten program, jak sobie z tym mogę poradzić?

    0
  • Pomocny post
    #9 01 Gru 2012 13:33
    McMonster
    Poziom 32  

    pbuhne napisał:
    A nie widzisz ze Twój hex ma 13kB ? Ty ten program kompilujesz bez optymalizacji -Os.

    Rozmiar pliku hex nie odpowiada wprost rozmiarowi wsadu w mikrokontrolerze, zwykle jest znacznie. Stąd program avr-size.

    0
  • #10 01 Gru 2012 13:40
    wilczasty
    Poziom 19  

    ATTINY13 - pierwsze wgranie programu

    Coś takiego było domyślnie ustawione. Jest może ktoś w stanie wysłać mi gotowy plik .hex?

    Oraz w jaki sposób wgrać go do świeżego tiny13.

    Pozdrawiam!

    0
  • Pomocny post
    #11 01 Gru 2012 13:44
    pbuhne
    Poziom 14  

    McMonster napisał:
    pbuhne napisał:
    A nie widzisz ze Twój hex ma 13kB ? Ty ten program kompilujesz bez optymalizacji -Os.

    Rozmiar pliku hex nie odpowiada wprost rozmiarowi wsadu w mikrokontrolerze, zwykle jest znacznie. Stąd program avr-size.


    A możliwe jest żeby wsad na 1kB układ miał ponad 13kB ? Pytam poważnie, bo wydawało mi się to sporym przegięciem...

    0
  • #12 01 Gru 2012 13:49
    wilczasty
    Poziom 19  

    Z kompilacją już sobie poradziłem i jest wszystko w porządku.

    Proszę o instrukcje jak wgrać ten hex do nowego tiny13.

    Pozdrawiam!

    ED: Program wgrał się za pomocą eXtreme burnera, jednak nic się nie dzieje, czy to jest wina nie ustawionego oscylatora wewnętrznego? Co w tej sytuacji?

    Wgrałem za pomocą SinaProg i wszystko bardzo ładnie działa!
    Dziękuję za pomoc!

    0
  • #13 01 Gru 2012 14:01
    pbuhne
    Poziom 14  

    Spróbuj przed skompilowaniem zmienić wartość FCPU na 1000000.

    Swoją drogą polecam stronkę Link jest tam mnóstwo informacji dla początkujących, strona szybko się rozwija. Sam z niej korzystam.

    PS. Czasami zdarza się że po zaprogramowaniu układ nie rusza, bo wystąpił jakiś błąd w trakcie wgrywania, trzeba wtedy raz jeszcze zaprogramować.

    0
  • #14 01 Gru 2012 14:24
    wilczasty
    Poziom 19  

    pbuhne napisał:
    Spróbuj przed skompilowaniem zmienić wartość FCPU na 1000000.

    Swoją drogą polecam stronkę Link jest tam mnóstwo informacji dla początkujących, strona szybko się rozwija. Sam z niej korzystam.

    PS. Czasami zdarza się że po zaprogramowaniu układ nie rusza, bo wystąpił jakiś błąd w trakcie wgrywania, trzeba wtedy raz jeszcze zaprogramować.

    Witam, a czy szybsza zmiana kolorów może być spowodowana złym ustawieniem oscylatora wewnętrznego? I jak mogę to sprawdzić.

    0
  • #15 01 Gru 2012 14:42
    pbuhne
    Poziom 14  

    Będą przekłamania gdy rzeczywista częstotliwość będzie inna od tej skompilowanej. Najlepiej jakbyś poszukał jakiegoś kursu na AVRStudio, skoro z niego korzystasz, bo ja akurat na jego temat nic nie wiem. Może tam być gdzieś opcja ustawiania częstotliwości , np w Eclipse ustawia się ją w pluginie, a tam nie wiem.

    Zdeklarowana częstotliwość musi być taka jak ustawiona w procku, bo funkcji z których Twój program korzysta (_delay_ms() i przerwania od timera ) bazują na częstotliwości.

    0
  • #16 01 Gru 2012 19:05
    landy13
    Poziom 29  

    pbuhne napisał:
    Spróbuj przed skompilowaniem zmienić wartość FCPU na 1000000.
    Taktowanie dziewiczej ATtiny13 nie wynosi 1000000. Co więcej bez zewnętrznego generatora nie można takiego ustawić. Chyba że manipulując rejestrem OSCCAL.

    0
  • #17 02 Gru 2012 04:04
    GSM
    Poziom 25  

    pbuhne napisał:
    A możliwe jest żeby wsad na 1kB układ miał ponad 13kB ?

    Średnio na jeża, bardziej w okoliach 2,5 KiB.
    landy13 napisał:
    Taktowanie dziewiczej ATtiny13 nie wynosi 1000000.

    To od razu trzeba było napisać ile wynosi - 1,2 MHz.
    wilczasty ale lepiej nikomu nie wierz przekonaj się sam czytając datasheet. :wink:

    Pozdrawiam,
    GSM

    0
  • #18 02 Gru 2012 11:15
    landy13
    Poziom 29  

    GSM napisał:
    To od razu trzeba było napisać ile wynosi - 1,2 MHz.
    To może od razu napisać gotowca? Niech czyta dokumentację.

    0
  • #19 02 Gru 2012 19:24
    GSM
    Poziom 25  

    landy13 napisał:
    To może od razu napisać gotowca? Niech czyta dokumentację.

    Gdy człowiek ma lepszy dzień to i podejście lepsze i czasami mówi więcej niż powinien, może.

    landy13 napisał:
    Co ma wspólnego wieża z datasheet?

    Bardzo dużo. W wieżach przesiadują mędrcy piszący datasheet-y. :lol: :oops:

    0