Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Przeróbka biblioteki dedykowanej dla AT89C2051 na ATTiny2313

MiSiEk# 29 Maj 2010 13:59 3972 19
  • #1 29 Maj 2010 13:59
    MiSiEk#
    Poziom 20  

    Witam serdecznie.

    Mam problem z zaprogramowaniem procesora AT2313, mianowicie wszystkie tematy są stare i w sumie nigdzie nie otrzymałem odpoowiedzi dlaczego nie programuje. Dlatego pomyślałem że można by przerobić program na ATTiny2313, jednak pojawia się problem ponieważ program korzysta z biblioteki dodatkowej (w załączniku). Cała sprawa w tym czy da się ową bibliotekę przerobić abym mógł skopilowac z nią program na Attiny2313.
    Jeżeli jest taka możliwość, to czy osoba zaawansowana podjęzła by się tkiego zadania?.
    Ewentualnie jakieś wskazówki co do progamowania At89c2051 :)

  • #2 30 Maj 2010 10:25
    ZbeeGin
    Poziom 38  

    MiSiEk# napisał:
    Mam problem z zaprogramowaniem procesora AT2313, mianowicie wszystkie tematy są stare i w sumie nigdzie nie otrzymałem odpoowiedzi dlaczego nie programuje.

    Czegoś tu nie rozumiem. Nie potrafisz zaprogramować procesora AT90S2313 ale potrafisz ATTiny2313? Przecież to prawie te same procesory, a sposób programowania się nie zmienił!
    Jak chcesz sobie bezproblemowo zaprogramować AT89S2051 to najlepiej skorzystać z programatora Willem i przystawki MCS51. Oczywiście jak masz sprawny i standardowy LPT w komputerze.


    MiSiEk# napisał:
    Dlatego pomyślałem że można by przerobić program na ATTiny2313, jednak pojawia się problem ponieważ program korzysta z biblioteki dodatkowej (w załączniku). Cała sprawa w tym czy da się ową bibliotekę przerobić abym mógł skopilowac z nią program na Attiny2313.

    Pewnie, że się da przerobić. Ale czy będzie działać właściwie? ATTiny2313 działa przecież parę razy szybciej niż AT90S2051.

  • #3 30 Maj 2010 10:32
    MiSiEk#
    Poziom 20  

    Przepraszam ale napisałem głupote ;) Oczywiście chodzi o to że biblioteka jest po AT89C2051, wiadomo zaprogramować jest trudno... Chodziło mi o to by przerobić biblioteke pod attiny2313 do którego mam programator.

    Ewentualnie mógłbym wykorzystać jeszcze 89S2051, tylko czy plik skompilowany pod procek "C" można wgrać do "S", czy trzeba na nowo kompilować z jakąś przeróbą.
    Pozdrawiam.

  • #4 30 Maj 2010 10:59
    ZbeeGin
    Poziom 38  

    MiSiEk# napisał:
    Ewentualnie mógłbym wykorzystać jeszcze 89S2051, tylko czy plik skompilowany pod procek "C" można wgrać do "S", czy trzeba na nowo kompilować z jakąś przeróbą.

    Najbezpieczniej byłoby skompilować na nowo program. BASCOM 8051 w wersji DEMO ci wystarczy by to zrobić.
    Gdy oryginalny wsad nie buszuje po rejestrach w niewłaściwy sposób to możesz bezpośrednio wgrać go do S-ki. I to będzie działać. Nota migracyjna nie zawiera jakiś szczególnych przeciwwskazań.

  • #5 30 Maj 2010 11:27
    MiSiEk#
    Poziom 20  

    OK, ale jeszcze mam pytanie odnośnie tej biblioteki.
    Zrobiłem to co mogłem czyli pozmieniałe nazewnictwo portów na AVR, jednak przy kompilacji w BASCOM AVR wykazuje błędy. min. niezidentyfikowane wstawki asemblera. Czy jest jakaś prosta metoda aby Bascom AVR przyjął tą bibliotekę. Nie ukrywam że zależało by mi aby uruchomić te bibliotekę z ATTINY2313 :)
    Pozdrawiam.

  • #6 30 Maj 2010 11:39
    atom1477
    Poziom 43  

    Assembler '51 jest zupełnie inny niż assembler AVR.
    Zmiana nazewnictwa portów to może 1% rzeczy które trzeba zrobić żeby to przerobić z '51 na AVR.

  • #7 30 Maj 2010 11:44
    MiSiEk#
    Poziom 20  

    Czyli gra niewart świeczki, rozumiem.
    Spróbuje zatem zaadoptować program do 89S2051, dzięki isp jest to dość łatwa sprawa.
    Dziękuje za wyjaśnienia.

  • #8 30 Maj 2010 12:08
    Przemo1268
    Poziom 19  

    Budujesz wyświetlacz do radia oplowskiego? Może prościej będzie samemu napisać program do obsługi magistrali TID. Kiedyś pisałem taki program, korzystałem z gotowego opisu. Ogólnie jest to podobne do I2C więc nie powinno być problemu. Opis protokołu znajduje się tutaj - niestety w języku niemieckim. Mam nawet gotowe programy pod AVR jeden w BASCOM drugi w C. Programy pisałem kilka lat temu więc za dużo już z nich nie pamiętam a jakość i czytelność kodu tragiczna (początki programowania :D), ale jak chcesz to mogę je podesłać na PW.
    Pozdrawiam

  • #9 30 Maj 2010 12:33
    MiSiEk#
    Poziom 20  

    Bardzo proszę, jeśli możesz to byłbym wdzięczny o przesłanie :)
    Szczególnie zależało by mi na tym programiku w bascomie na avr, masz też może schemat podłączenia ?

  • #10 30 Maj 2010 18:56
    ZbeeGin
    Poziom 38  

    Hmmm. Zacząłem przerabiać tą bibliotekę na wersję przeznaczoną dla AVR. Będą dwa problemy, albo nawet trzy w przeprowadzeniu tego. Pierwszy to opóźnienia programowe jakie tam występują. Musiałbym znać jakie będzie taktowanie procesora AVR by móc tą procedurę przerobić, tak aby zachować czasy. Drugi to nieco udziwnione rozwiązane ustawianie parzystości danych. W 8051 można skorzystać ze sprzętu (znacznik) czego AVRek już sam nie robi. Trzeci problem w sumie najważniejszy, to swoboda z korzystania z rejestrów. Niestety dokumentacja BASCOM AVR jest w tym bardzo skąpa, a to co sam przeanalizowałem to zaledwie ułamek tego co powinno się wiedzieć podczas tworzenia bibliotek.

    Dlatego mogę tą bibliotekę poprawić, na podstawie posiadanej wiedzy, ale nie gwarantuję, że będzie w 100% działać poprawnie.

  • #11 30 Maj 2010 19:09
    MiSiEk#
    Poziom 20  

    @Przemo1268, Dzięki za zainteresowanie, ale ja chciałem sterować wyświetlacze TID w oplu a twoje materiały dotyczą chyba dorobienia wyświetlacza 2x16 znaków do fabrycznego radia.

    Co do taktowania procesora to w kodzie który wykorzystuje bibliotekę jest kwarc ustawiaony na 12MHZ.

    W załączniku program który wykorzystuje bibliotekę.

  • #12 30 Maj 2010 20:20
    Przemo1268
    Poziom 19  

    W tym pdf do którego podałem adres jest właśnie opis protokołu komunikacji z wyświetlaczem, czyli to co potrzebujesz. Moim zdaniem szybciej będzie Ci napisać własny sterownik niż bawić się przerabianiem biblioteki pisanej w asemblerze. Pierwsze co musisz wykonać, aby uruchomić wyświetlacz jest PowerOnTest opisany dosyć dokładnie na 2 stronie pdf-u. Później już tylko I2C z drobną modyfikacją (linia MRQ) - myślę że gotowe funkcje obsługi I2C bascoma wystarczą. Na stronie trzeciej masz opis krok po kroku jak wysłać dane do wyświetlacza (po uprzednim POT). Musisz jeszcze zwrócić uwagę na typ Twojego wyświetlacza: 8-znakowy ma adres 0x4A, 10-znakowy natomiast 0x4D. Wyświetlacz 8-znakowy ma dwa bajty statusowe (ikony), a 10-znakowy ma 3 bajty. Kolejność transmisji jest następująca:
    <I2C_START> <ADRES_WYSWIETLACZA> <2 lub 3 bajty statusowe> <8 lub 10 bajtow danych do wyswietlenia> <I2C STOP>
    Musisz tylko dorobić sterowanie linią mrq, resztą zajmie się bascom.

  • #13 31 Maj 2010 14:04
    ZbeeGin
    Poziom 38  

    Biblioteka i program po przeróbkach. Nie wiem czy coś z tego będzie, bo nie mam teraz zbyt dużo czasu na w miarę dokładną symulację tego.

  • #14 07 Cze 2010 18:50
    MiSiEk#
    Poziom 20  

    Witam,
    Dziękuje za przeróbkę, zorganizowałem wszystkie potrzebne rzeczy, wziąłem się do kompilacji, jednak jeszcze wykrywa 4 błedy (pokazane na obrazku).
    Czy u Ciebie ten program się kompilował?
    Jest szansa na poprawienie tego błedu, aby program się kompilował?
    Acha co do kwarcu to zadefiniowany jest inny niż w oryginale tj. 10MHz mam rozumieć że takiego trzeba użyć.
    Pozdrawiam.

  • Pomocny post
    #15 07 Cze 2010 19:45
    ZbeeGin
    Poziom 38  

    U mnie bez przeszkód. Ale jak widać używam aktualizowanego na bieżąco BASCOM-a AVR.
    Przeróbka biblioteki dedykowanej dla AT89C2051 na ATTiny2313

    Kwarc w zasadzie możesz sobie ustawić jaki chcesz. W procedurze Czekaj jest nieudokumentowane makro, które będzie rozwinięte podczas kompilacji i wstawi tam odpowiednią ilość NOPów, albo pętlę opóźniającą, by uzyskać podane opóźnienie.

  • #16 07 Cze 2010 21:37
    MiSiEk#
    Poziom 20  

    Witam ponownie :)

    Faktycznie w wersji 1.11.9.8 kompilacja przebiega bezbłędnie :) Program się skompilował, attiny zaprogramowany na dniach będę testował czy zadziała.
    W kodzie programu zmieniłem kwarc na 12MHz (tak jak było w oryginalnym projekcie).
    Mam jeszcze pytanie bardzie techniczne, mianowicie tu jest schemat oryginału:
    http://pu.i.wp.pl/k,MTA0MDQ3MTIsMTE5NjE3,f,schematv3.JPG
    Czy kondensatory kwarcu pozostawić bez zmian czy dać 22pF i jak jest z nogą RESET w procku? Podłączać przez rezystor do masy i przez kondensator do plusa?
    Dziękuje za zaangażowanie i pomoc.

  • #17 07 Cze 2010 21:41
    atom1477
    Poziom 43  

    Wstaw 22p.
    A RESETu albo nie podłączaj, albo podłącz odwrotnie. To znaczy rezystorem do VCC a kondensatorem do GND. Rezystor 4,7k a kondensator 100nF.

  • #18 12 Cze 2010 00:25
    MiSiEk#
    Poziom 20  

    Witam ponownie.

    Dziś dostałem wyświetlacz TID do testów "na stole" żeby ciągle nie chodzić do auta...
    Złożyłem prowizorycznie układ na ATtiny2313 i układ działa :) Wreszczie udało się sterować tidem przez AVR'ke. Dodam jeszcze że kombinowałem z 89S2051 ale za chiny nie mogłem uruchomić...

    Chciałbym podziękować przedewszystkim użytkownikowi: ZbeeGin, który podjął się przeportowanie biblioteki obsługującej wyświetlacz.
    Chciałbym również podziękować userowi atom1477 za informacji dot. podłączenia ATtiny oraz reszcie userów którzy zainteresowali się tematem.

    W załącznik daje pełen "zestaw" do sterowania TID'em przez ATTiny2313.

    Pozdrawiam serdecznie.

  • #19 29 Lip 2010 03:32
    su_inmortalidad
    Poziom 2  

    Jaki ten nasz świat mały :D:D:D
    Szukam całą noc rozwiązania na TIDa.
    Znalazłem na 89C2051 i byłem posikany ze szczescia :D
    Ale jak zaprogramować przez USB? nie ma takich programatorów.
    No to przesiadka na attiny. Ale jak zmodyfikować program.

    A tu proszę!!! Elektroda działa :D daliście mi gotowca!

    DZIĘKUJĘ!!!!!!!!!!!!!!!!

  • #20 15 Lut 2017 11:52
    Octaver
    Poziom 2  

    @MiSiEk# Kod nie został jeszcze ukończony? Kod nie działa

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME