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.

ATMega 8515 - ustawienie fusbitów w Bascom

Marek K80 03 Lut 2016 21:49 963 14
  • #1 03 Lut 2016 21:49
    Marek K80
    Poziom 9  

    Witam, moja prośba tyczy ATMegi 8515 i kwarcu 4Mhz
    Chcę ustawić fusbity dla ATmegi8515 aby obsługiwała zewnętrzny kwarc 4MHz. Korzystam z Bascom-a i programatora Sample Electronics - uC podpięty pod LPT.
    Moje pytanie sprowadza się do tego jak się mają poszczególne bity rejestrów wymienionych w dokumentacji, które dla ułatwienia zebrałem w poniższym linku:
    http://www.labster.cba.pl/fusbityATmega8515.htm
    mają się do bitów wymienionych w Bascomie - A987 (na samym dole linka)

    Wg dokumentacji powinienem ustawić (dla zewnętrznego kwarcu 4Mhz):
    CKSEL3..1=111, CKOPT=1 tabela numer 3
    w tabeli 4 dla kwarcu
    CKSEL0=1
    SUT1..0=01 Crystal Oscillator BOD enabled
    SUT1..0=10 Crystal Oscillator, fast rising power
    SUT1..0=11 Crystal Oscillator, slowly rising power
    natomiast w tabeli 5 prócz powyższych dla kwarcu jest stosowane również SUT1..0=00

    W Bascomie powinno być ustawione A987:
    1010: Crystal Oscillator, slowly rising power
    1011: Crystal Oscillator, fast rising power
    1100: Crystal Oscillator, BOD enabled
    czyli w bascomie bity A987 to bity SUT1..0 + bit najstarszy bit decydujący o źródle taktowania, nie widzę bitów CKSEL3..1?

    Czy wybierając, którąś opcję z Bascomu (trzech powyższych) nie zablokuje sobie uC - w ogóle, którą z trzech powinienem wybrać? Po wybraniu "Write FS"?

    0 14
  • #2 03 Lut 2016 23:15
    373522
    Użytkownik usunął konto  
  • #4 04 Lut 2016 13:04
    373522
    Użytkownik usunął konto  
  • #5 04 Lut 2016 19:08
    Marek K80
    Poziom 9  

    Odpuściłem sobie ustawienie fusbitów w Bascomie (mimo, iż te rozbieżności mnie nadal nurtują)
    Zainstalowałem AVR8-Burn-O-Mat w wersji 2.1.1 (2009/03/07) oraz podłączyłem do niego avrdude w wersji 6.0.1 i wersję 6.2 i w obydwóch przypadkach nie ma Bascom Sample Programming cable tak jak na zrzutach ekranowych kolega niveasoft ukazał.

    Mam rozumieć że powinienem zainstalować pakiet Giveio (który notabene jest w pakiecie pod linuksa)
    Krzaczy mi się instalacja tego pakietu

    Code:

    Copying the driver to the windows directory
    target file: \giveio.sys
    Liczba skopiowanych plik˘w:         1.
    Remove a running service if needed...
    Installing Windows NT/2k/XP driver: giveio
    installing giveio from \giveio.sys... ok.
    starting giveio... start failed (status 2):
    Nie można odnaleźć określonego pliku.


    ERROR: Installation of giveio failed

    Używam Windows XP Prof.
    Powoli nie mam głowy do tego
    Spróbuje rozpracować co za błąd może być w procedurze

    0
  • #6 04 Lut 2016 19:16
    373522
    Użytkownik usunął konto  
  • #7 04 Lut 2016 19:43
    Marek K80
    Poziom 9  

    Spójrz proszę:
    http://www.labster.cba.pl/AVR8_Burn-O-Mat_v2.htm
    rozumiem, że masz na myśli Config od Avrdude
    co do Giveio, siedzę na koncie administratora windowsa xp
    Oczywiście uruchamiałem Burn-O-Mat nie raz, spróbuje jeszcze przeresetować komputer.
    W usługach Windowsa nie umiem znaleźć usługi Giveio

    0
  • #8 04 Lut 2016 20:11
    373522
    Użytkownik usunął konto  
  • #9 04 Lut 2016 22:43
    Marek K80
    Poziom 9  

    failed
    a więc przekopiowałem nawet "mkAVR Calculator 1.1.0 build 64" do folderu tam gdzie avrdude jest (c:\avrdude)

    to wywala mkAVRCalculator po zrobieniu Check connected AVR w konsoli:

    Code:

    avrdude.exe: AVR device not responding
    avrdude.exe: initialization failed, rc=-1
    avrdude.exe: AVR device initialized and ready to accept instructions
    avrdude.exe: Device signature = 0x000000
    avrdude.exe: Yikes!  Invalid device signature.
    avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07

    avrdude.exe done.  Thank you.

    obok przycisku pisze AVRDUDE error!

    w swoim poście pisałeś, iż aby to zadziałało trzeba zainstalować Giveio, u mnie to skończyło się nie powodzeniem
    chyba zacznę kleić jakieś STK200

    0
  • Pomocny post
    #10 04 Lut 2016 22:54
    373522
    Użytkownik usunął konto  
  • #11 04 Lut 2016 23:07
    Marek K80
    Poziom 9  

    jestem na laptopie ze sprzętowym portem wpiętym w PCMCIA - LPT1 w menadżerze urządzeń, lecz wysokim adresem bazowym (brak możliwości zmiany) FFD8
    Nigdy nie miałem z tym adapterem kłopotów np. w Bascomie
    Czyżby nie typowy adres bazowy blokował uruchomienie usługi Giveio
    Będę próbował na komputerze stacjonarnym...
    Dziękuję za podpowiedzi

    te pliki remove i status mam

    0
  • #12 05 Lut 2016 07:41
    emarcus
    Poziom 35  

    Marek K80 napisał:
    Witam, moja prośba tyczy ATMegi 8515 i kwarcu 4Mhz
    Chcę ustawić fusbity dla ATmegi8515 aby obsługiwała zewnętrzny kwarc 4MHz. Korzystam z Bascom-a i programatora Sample Electronics - uC podpięty pod LPT.
    Moje pytanie sprowadza się do tego jak się mają poszczególne bity rejestrów wymienionych w dokumentacji, które dla ułatwienia zebrałem w poniższym linku:
    http://www.labster.cba.pl/fusbityATmega8515.htm
    mają się do bitów wymienionych w Bascomie - A987 (na samym dole linka)

    Wg dokumentacji powinienem ustawić (dla zewnętrznego kwarcu 4Mhz):
    CKSEL3..1=111, CKOPT=1 tabela numer 3
    w tabeli 4 dla kwarcu
    CKSEL0=1
    SUT1..0=01 Crystal Oscillator BOD enabled
    SUT1..0=10 Crystal Oscillator, fast rising power
    SUT1..0=11 Crystal Oscillator, slowly rising power
    natomiast w tabeli 5 prócz powyższych dla kwarcu jest stosowane również SUT1..0=00

    W Bascomie powinno być ustawione A987:
    1010: Crystal Oscillator, slowly rising power
    1011: Crystal Oscillator, fast rising power
    1100: Crystal Oscillator, BOD enabled


    To nie jest zupełnie tak jak piszesz.
    Fusebity processora możesz ustawiac, jeżeli nie w setkach, to w dziesątkach dostępnych różnych programów, w większości darmowych, a także w Bascom -Demo.
    Jeżeli nie miałeś dotychczas problemu z Bascom i programatorem 'Sample cable' ,to nie widzę powodu jego zmiany na STK200. Ten ostatni jest to samo z nieco innym pinout.
    Wzorując sie na przytoczonej wyżej stronie też możesz określic poprawnie wymagane fusebity, lecz jest tam zbyt dużo tabel i jezeli nie bardzo orientujesz się w tej dziedzinie, łatwo jest popaśc w niepewnośc i ustawic błędnie fusebity.
    Dużo lepsza strona jest:
    http://www.engbedded.com/fusecalc/
    Dla twojego rezonatora kwarcowego 4MHz winieneś wybrac:
    CKSEL =1111 ; SUT=11 - ostatnia pozycja z otwieranej listy
    (External Crystal/Resonator High Freq.;..)

    Cytat:

    czyli w bascomie bity A987 to bity SUT1..0 + bit najstarszy bit decydujący o źródle taktowania, nie widzę bitów CKSEL3..1?

    Czy wybierając, którąś opcję z Bascomu (trzech powyższych) nie zablokuje sobie uC - w ogóle, którą z trzech powinienem wybrać? Po wybraniu "Write FS"?


    Bity SUT to: Start-Up -Time; patrz datasheet ich znaczenie i funkcja (nie mają wpływu na taktowanie processora).

    Otwierając w Bascom okno programowania/odczytu fusebitów;
    kliknij na linę: Fusebit A987 - ukaże się strzałka do rozwinięcia listy możliwych opcji, włącznie z okresloną wartościa CKSEL3...1 oraz SUT (poczatkowa grupa cyfr dla wybranej opcji).
    ATMega 8515 - ustawienie fusbitów w Bascom

    Nie masz w zasadzie potrzeby ustawiania bitu CKOPT, który byłby potrzebny dla rezonatora 16MHz, albo pracy ukladu w środowisku o mocnych zakłóceniach, niemniej jednak to twój wybór.

    e marcus

    0
  • #13 05 Lut 2016 19:27
    Marek K80
    Poziom 9  

    Cytat:
    Fusebit A987 - ukaże się strzałka do rozwinięcia listy możliwych opcji, włącznie z okresloną wartościa CKSEL3...1 oraz SUT

    w Bascomie Fusebit A987 to cztery bity, ja muszę zmienić trzy bity CKSEL3..1 ustawić w nich jedynki, czwarty bit w A987 jest nie istotny bo jest bitem SUT?
    Bit A - to bit CKSEL3
    Bit 9 - to bit CKSEL2
    Bit 8 - to bit CKSEL1
    Bit 7 - to bit SUT
    zgadza się? myślałem że zamiast bitu SUT zawarty jest tam bit CKSEL0
    ponadto wg dokumentacji są dwa bity SUT - 1..0 czyli CKSEL3..1+SUT=5 bitów
    a nie 4 (A987)
    Cytat:
    Dla twojego rezonatora kwarcowego 4MHz winieneś wybrac:
    CKSEL =1111 ; SUT=11 - ostatnia pozycja z otwieranej listy

    jeśli tak bym ustawił bity w Bascomie (A987=1111) to widnieje opis Ceramic resonator, BOD enabled na liście rozwijanej
    Stąd nie mam odwagi wysłać te fusbity do uC, to się poprostu nie zgadza
    Operację spróbuję zrobić za pomocą mkAVRCalculator lecz za pomocą innego komputera

    0
  • Pomocny post
    #14 05 Lut 2016 22:51
    emarcus
    Poziom 35  

    [quote="Marek K80"]

    Cytat:


    w Bascomie Fusebit A987 to cztery bity, ja muszę zmienić trzy bity CKSEL3..1 ustawić w nich jedynki, czwarty bit w A987 jest nie istotny bo jest bitem SUT?
    Bit A - to bit CKSEL3
    Bit 9 - to bit CKSEL2
    Bit 8 - to bit CKSEL1
    Bit 7 - to bit SUT
    zgadza się?


    Nie , nie zgadza się...
    W Bascom, czy innym środowisku fusebitami odpowiedzialnymi za taktowanie processora (clock) są 4 bity CKSEK3...0 , a nie trzy i wszystkie cztery winny byc odpowidnio ustawione. Nie ma znaczenia jakim programem robisz tą zmianę. Mozesz to zrobic w avrdude, gdzie nie wybierasz nic z graficznej nakładki (bo jej nie ma), a podajesz wyliczone wartości w formacie hex dla hfuse i lfuse w których są już zawarte wszystkie inne ustawienia włącznie z SUT i BOD, etc.
    Wracając do okna ustawień fusebitów dla 'sample programmer':
    Cytat:

    jeśli tak bym ustawił bity w Bascomie (A987=1111) to widnieje opis Ceramic resonator, BOD enabled na liście rozwijanej...

    wiec je tak ustaw; a SUT ustawisz dwie linie wyżej 'fusebits KL' w sumie będziesz miał sześc bitów; cztery dla taktowania i dwa a SUT.
    Nic więcej nie potrzebujesz ustawiac/zmieniac w odniesieniu do fabrycznego ustawienia.
    Ala pewności i weryfikacji możesz określic sam sumaryczne wartości dla 'hfuse' i 'lfuse' czytając je z tabeli na strony internetowej podanej w poprzednim poście (engbeded), lub wylicz je samemu -wyjatkowo prosta procedura:
    -otwórz datasheet na str:???
    Memory Programming - znajdź tabelę:Fuse High Byte
    przyjmij że kolejnośc wierszy nie jest tu przypadkowa!!!
    Jest ona uporządkowana wg kolejności znaczenia bitów ; ostatnia kolumna (z prawej strony zawiera wartości bitów (1 lub 0). Wpisując je w tej samej kolejności do windowsowego kalkulatora (bin mode) i kliknieciu na hex masz gotową wartośc dla tego bajtu.
    Podobnie to zrobisz dla Table 84. Fuse Low Byte...
    Te sumaryczne wartości znajdziesz analogicznie w tabeli ze str. internetowej 'engbeded', jak tez w Bascom 'sample programmer'. Podobnie też zmienią sie ich wartości w MKAvrKalculator.

    e marcus

    0
  • #15 06 Lut 2016 20:19
    Marek K80
    Poziom 9  

    Reasumując bitom Bascoma A987 odpowiadają wprost bity CKSEL3..0, czyli A-3, 9-2, 8-1, 7-0?
    dla CKSEL=1111 odpowiada w Bascomie A987=1111 a to, że jest błędny opis w Bascomie zły opis dla takich wartości bitów (1111) Ceramic resonator, BOD enabled nie należy się przejmować tylko tak bity wysłać.
    Uruchomiłem komputer stacjonarny - udało mi się na nim uruchomić usługę giveio (podejrzewam, że laptopie jej nie uruchomiłem z powodu nie standardowego portu bazowego). Uruchomiłem mkAVRCalculator z podłączonym avrdude, udało mi się odczytać fusbity (po Bascom Sample Electronics programmer), odczytałem fusbity:
    LOW: E1 HIGH:D9 i za pomocą zakładki Fuse - features:
    ATMega 8515 - ustawienie fusbitów w Bascom
    odhaczając wszystkie CKSEL co daje 1111 (logika odwrotna)
    powoduje automatyczną identyfikację układu taktującego w zakładce Fuse - features:
    ATMega 8515 - ustawienie fusbitów w Bascom
    co daje ostatecznie następujące fusbity do wysłania w hex:
    LOW: EF HIGH:D9
    ATMega 8515 - ustawienie fusbitów w Bascom
    wysłanie ich zakończyło się powodzeniem (multipleksowane wyświetlacze LED przestały mi migać)
    Dziękuję wszystkim za zaangażowanie w udzielaniu mi podpowiedzi

    0