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

Jak zaprogramować AT90S2313 za pomocą AVRDUDE i AVR8_Burn-O-Mat?

NewElektro 03 Kwi 2012 19:30 2548 18
REKLAMA
  • #1 10753362
    NewElektro
    Poziom 19  
    Witam dopiero zaczynam zabawę z Mikrokontrolerami także z góry proszę o wyrozumiałość.
    Zrobiłem potrzebny programator który programuję większość procesorów Firmy AVR.
    Na początek wybrałem gotowca z tej strony jest to termometr http://forum.mikrokontrolery.net/viewtopic.php?t=165
    moje pytanie dotyczy jakiego programu użyć do zaprogramowania czytałem troszkę o tym i najprostszy wydał mi się AVRDUDE z nakładką AVR8_Burn-O-Mat_2_1_2 tylko w nim nie ma procka który jest w spisie potrzebny elementów do zrobienia projektu w/w tzn. AT90S2313 a czytając na forach ludzi tym programem spokojnie programują ten układ tylko jak ??
  • REKLAMA
  • Pomocny post
    #2 10753509
    mirekk36
    Poziom 42  
    Nie ma procka AT90S2313 ponieważ to jest na dzisiaj wykopalisko archeologiczne z epoki głębokiej kredy jurajskiej...... Weź nawet nie szukaj tej skamieniałości, bo podejrzewam, że jak się uprzesz to znajdziesz ale zapłacisz za nią jak za zboże.

    Dzisiejszy odpowiednik tego procesora to ATtiny2313 .... i to na nim zrób taki projekt
  • #3 10753533
    NewElektro
    Poziom 19  
    mirekk36 napisał:
    Nie ma procka AT90S2313 ponieważ to jest na dzisiaj wykopalisko archeologiczne z epoki głębokiej kredy jurajskiej...... Weź nawet nie szukaj tej skamieniałości, bo podejrzewam, że jak się uprzesz to znajdziesz ale zapłacisz za nią jak za zboże.

    Dzisiejszy odpowiednik tego procesora to ATtiny2313 .... i to na nim zrób taki projekt



    rozumiem ze ten układ ma identyczne wyprowadzenia co AT90S2313 i zaprogramowanie układu ATtiny2313 nie będzie większym problemem porównywając jego poprzednika ??
  • Pomocny post
    #4 10753653
    piotrva
    VIP Zasłużony dla elektroda
    Problemem nie będzie, ale wsad trzeba przekompilować.
  • #5 10753801
    NewElektro
    Poziom 19  
    piotrva napisał:
    Problemem nie będzie, ale wsad trzeba przekompilować.



    Czyli w tym momencie nie mogę skorzystać z gotowego napisanego programu ??

    Dodano po 37 [minuty]:

    [quote="NewElektro"]
    piotrva napisał:
    Problemem nie będzie, ale wsad trzeba przekompilować.



    Czyli w tym momencie nie mogę skorzystać z gotowego napisanego programu ??[/quo


    Witam
    $regfile = "ATtiny2313.dat"
    $crystal = 4000000
    czy te zmiany początkowo wpisując w program wystarcza na zmiana kontrolera na attiny ??
  • Pomocny post
    #6 10754039
    arktik1
    Poziom 27  
    "czy te zmiany początkowo wpisując w program wystarcza na zmiana kontrolera na attiny ??"
    Tak.
  • REKLAMA
  • Pomocny post
    #7 10754347
    piotrva
    VIP Zasłużony dla elektroda
    Tak, właśnie to jest przekompilowanie. Gdybyś miał sam wsad hex lub bin to wtedy mogłyby być kłopoty, ale jeśli jest dostęp do źródeł to w tym przypadku taka zmiana w 100% powinna wystarczyć.
  • #8 10755217
    NewElektro
    Poziom 19  
    piotrva napisał:
    Tak, właśnie to jest przekompilowanie. Gdybyś miał sam wsad hex lub bin to wtedy mogłyby być kłopoty, ale jeśli jest dostęp do źródeł to w tym przypadku taka zmiana w 100% powinna wystarczyć.


    Witam posiadam dwa rodzaje wsadu do procka jeden to plik hex drugi to plik bas
    rozumiem że ten drugi plik udostępnia kod źródłowy i można go w dowolny sposób edytować i tam dopisać zmiany??
  • #9 10755243
    mirekk36
    Poziom 42  
    NewElektro napisał:

    Witam posiadam dwa rodzaje wsadu do procka jeden to plik hex drugi to plik bas
    rozumiem że ten drugi plik udostępnia kod źródłowy i można go w dowolny sposób edytować i tam dopisać zmiany?? Dobrze to rozumiem ??


    Tam w kodzie programu praktycznie nic nie będziesz musiał zmieniać w tym BAS. Jedyne co to nagłówek nazwy mikrokontrolera i puścić kompilację - to wszystko - wtedy Bascom po kompilacji zrobi ci nowy plik HEX, a to będzie już nowy wsad który trzeba wgrać do procka ;)
  • #10 10755461
    NewElektro
    Poziom 19  
    mirekk36 napisał:
    NewElektro napisał:

    Witam posiadam dwa rodzaje wsadu do procka jeden to plik hex drugi to plik bas
    rozumiem że ten drugi plik udostępnia kod źródłowy i można go w dowolny sposób edytować i tam dopisać zmiany?? Dobrze to rozumiem ??


    Tam w kodzie programu praktycznie nic nie będziesz musiał zmieniać w tym BAS. Jedyne co to nagłówek nazwy mikrokontrolera i puścić kompilację - to wszystko - wtedy Bascom po kompilacji zrobi ci nowy plik HEX, a to będzie już nowy wsad który trzeba wgrać do procka ;)


    Czyli tak to ma wyglądać ?? teraz puścić komplikacje i będę miał plik hex pod attiny

    $regfile = "ATtiny2313.dat"
    $crystal = 4000000


    Config Portb = Output
    Config Portd = Output
    Portb = 255
    Portd = 127
    Dim Zmienna As Byte
    Dim Liczba As Byte
    Dim Jednosci As Byte
    Dim Dziesiatki As Byte
    Dim Temp As Byte
    Dim 1cyfra As Byte
    Dim 2cyfra As Byte
    Dim A As Byte
    Dim Odczyt(2) As Byte
    Dim T As Integer
    Portd.0 = 1
    Portd.1 = 0

    Config 1wire = Portd.0
    Liczba = 77

    Do
    1wreset : 1wwrite &HCC : 1wwrite &HBE 'polecenie odczytu DS18x20
    Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty - temperaturę
    T = Odczyt(2) ' starszy bajt temperatury
    Shift T , Left , 8 'przesuń w lewo o 8 miejsc
    T = T + Odczyt(1) 'w zmiennej Integer jest dziwna "ułamkowa" wartość
    Shift T , Right , 4 'zamiast dzielić przez 16 przesuń w prawo
    ' Shift T , Right , 1 'dla kostek DS18S20, DS1820 przesuń o 1 bit



    1wreset ' dopiero teraz daj polecenie konwersji:
    1wwrite &HCC 'polecenie SKIP ROM, bo pojedyncza kostka
    1wwrite &H44 ' dokonaj konwersji - zmierz temperaturę
    'po cyklu pracy poczekaj
    Liczba = T
    Gosub Wyswietlanie
    Loop

    Wyswietlanie:
    Portd.1 = 1
    Gosub Oblicz
    For A = 0 To 125
    Dziesiatki:
    If Dziesiatki = 0 Then
    Portd.6 = 1
    Goto Jednosci
    End If
    Portb = 1cyfra
    Portd.6 = 0
    Waitms 3
    Jednosci:
    Portb = 2cyfra
    Portd.6 = 1
    Portb.0 = 0
    Waitms 3
    Next A
    A = 0
    Portd.1 = 0
    Return


    Oblicz:
    Temp = Makebcd(liczba)
    Jednosci = Temp And &B00001111
    Shift Temp , Right , 4
    Dziesiatki = Temp

    1cyfra = Lookup(dziesiatki , Tabela)
    2cyfra = Lookup(jednosci , Tabela)

    'Dziesiatki = Liczba / 10
    'Jednosci = Dziesiatki * 10
    'Jednosci = Liczba - jednosci

    Return


    End
    Tabela:
    Data 3 , 111 , 133 , 37 , 105 , 49 , 17 , 99 , 1 , 33
  • Pomocny post
    #11 10755490
    mirekk36
    Poziom 42  
    $regfile = "ATtiny2313.dat"

    nie pamiętam czy taki jest nagłówek dla tego procka w bascomie a nie np tiny2313.dat albo tn2313.dat

    sprawdź to sobie sam ..... przecież to już nie problem mając bascoma

    a potem kompilacja i masz HEX'a - no przecież już o tym pisałem

    aha tylko jeszcze jedno - trzeba przestawić panie kochany fusebity w procku ATtiny2313 np na zewn kwarc jeśli z takiego korzystasz. No ale w tym celu to możesz wziąć darmowy dla swojego procka program MkAvrCalculator i w zakładace:

    "Fusy uproszczone"

    ustawić zewn. kwarc
  • REKLAMA
  • #12 10755613
    NewElektro
    Poziom 19  
    Oj widzę że nie jest to takie proste jak się wydawało jak mam skomplikować ten plik bas na hex programem Bascom AVR ??
  • Pomocny post
    #13 10756392
    piotrva
    VIP Zasłużony dla elektroda
    Normalnie, klikając przycisk Compile (chyba skrótem jest F7)...
  • Pomocny post
    #14 10756891
    arktik1
    Poziom 27  
    "skomplikować ten plik bas na hex programem Bascom AVR ?? "
    Tak, musisz mieć BASCOMa, chociaż by demo.
    Jeśli nie chcesz przestawiać FUSE to zamiast $crystal = 4000000, napisz $crystal = 1000000.
  • #15 10764503
    NewElektro
    Poziom 19  
    Witam zmieniłem program do programowania na mkAVRCalculator tylko teraz moje pytanie jak ustawić te fusebity ??
    Nie wiem czy dobrze myślę proszę was o pomoc

    Fusy Manualne:
    CKDIV8 1
    CKOUT 1
    SUT1 0
    SUT0 1
    CKSEL3 1
    CKSEL2 1
    CKSEL1 0
    CKSELO 1

    i przy programowaniu zaznaczyć rodzaj pamięci FLASH i podać plik hex. i następnie zaznaczyć również FUSEBITY ??
  • Pomocny post
    #16 10764533
    mirekk36
    Poziom 42  
    A po co ty jakoś tak dziwnie rozpisujesz sobie bitowo te fusebity - skoro w MkAvrCalculator masz zakładkę "FUSY UPROSZCZONE" i po co się męczyć ???? Zaglądałeś do tej zakładki ???

    A jak będziesz już programował - to oddzielnie zaprogramuj fuski a dopiero potem zaprogramuj flash
  • REKLAMA
  • #17 10764631
    NewElektro
    Poziom 19  
    [quote="mirekk36"]A po co ty jakoś tak dziwnie rozpisujesz sobie bitowo te fusebity - skoro w MkAvrCalculator masz zakładkę "FUSY UPROSZCZONE" i po co się męczyć ???? Zaglądałeś do tej zakładki ???

    A jak będziesz już programował - to oddzielnie zaprogramuj fuski a dopiero potem zaprogramuj flash[/quot

    Faktycznie dziękuje za poradę mam jeszcze jedno pytanko fusebity oraz program hex pakować wszystko do pamięci flash ??
    Oczywiście jak daje na zewnętrzny kwarc to wewnętrzny podział zegara przez 8 odznaczyć??
  • Pomocny post
    #18 10765214
    mirekk36
    Poziom 42  
    Hej hej - no ale ty zaglądałeś do tego programu ? Jak to fusy do flash ???? masz tam przecież oddzielne ptaszki - do programowania fusów, flasha, eeproma i lockbitów

    A podział przez 8 możesz odznaczyć albo nie jak uważasz ? .... to co nie wiesz jaką częstotliwością będziesz taktował procka czy jak ?

    Przecież jak dasz jakiś kwarc i nie odznaczysz CKDIV8 to ta częstotliwość podzieli się przez 8 - o to ci chodzi ?
  • #19 10770811
    NewElektro
    Poziom 19  
    Wszystkim bardzo dziękuję za pomoc :)
REKLAMA