(2 głosujących) Układ służy do zapisywania danych w pamięci szeregowej eeprom typu AT24Cxx z wykorzystaniem portu szeregowego komputera PC. W podstawowej wersji można programować pamięci od AT24C32 do AT24C1024. Gdyby zaszła potrzeba można rozbudować program tego urządzenia o procedury zawarte tutaj. Urządzenie działa w oparciu o mikrokontroler ATTINY2313 dzięki czemu może komunikować się z komputerem wykorzystując prosty interfejs zbudowany na dwóch tranzystorach. Do komunikacji z programatorem można wykorzystać dowolną aplikację mogącą wysyłać liczby binarne na port RS-232, albo nawet skrypt powłoki. (pod linux'em).
Działanie:Schemat ideowy programatora przedstawia poniższy rysunek: Sercem programatora jest mikrokontroler U1 (AT90S2313 lub ATTINY2313) wraz z rezonatorem kwarcowym X1 (4MHz) i dwoma kondensatorami C1 (33pF) i C2 (33pF). Tranzystory T1 (BC557) i T2 (BC547) wraz z rezystorami R1 - R3 (10k) stanowią prosty interfejs RS232. Układ U3 (AT24C256) to pamięć eeprom 256kbit. Jest ona podłączona do magistrali I2C zdefiniowanej na wyprowadzeniach PD.5 i PD.6 procesora. Rezystory R13 (3,3k) i R14 (3,3k) podciągają magistralę do plusa zasilania. Kondensator C3 (47uF) filtruje napięcie zasilające. Dioda D1 wraz z rezystorem R12 (330R) ograniczającym jej prąd stanowi kontrolkę zasilania. Element prog to złącze programujące. Rezystory R5 - R8 (330R) stanowią dodatkowe zabezpieczenie mikrokontrolera podczas programowania. Diody D2 i D3 wraz z rezystorami R9 - R11 (330R) sygnalizują stan urządzenia. Złącze Com1 (DB9F) zapewnia kontakt z płytą główną komputera PC. Budowa:Urządzenie można zbudować na dostępnej tutaj płytce drukowanej. Rysunek w odbiciu lustrzanym można ściągnąć tutaj. Montaż układu nie jest skomplikowany, należy go rozpocząć od wlutowania jednej zworki. Kolejność pozostałych elementów jest dowolna za wyjątkiem R13, który musi być wlutowany przed podstawką na mikrokontroler. Pod pamięć eeprom konieczna jest podstawka, najlepiej precyzyjna. Diodę dwukolorową D2 (trzy nóżki, wspólna anoda) można zastąpić dwunóżkową (dwukolorowa z przeciwsobnym połączeniem struktur świecących) lutując ją w dwa skrajne wyprowadzenia w miejscu diody trójnóżkowej. Zamiast rezystora R9 w takim wypadku należy zastosować zworę. Do zasilania programatora wygodnie jest wykorzystać port USB. Układ podłączony jest do komputera za pomocą kabla DB9F-DB9M (Przedłużka do portu com) lub wpięty bezpośrednio do płyty głównej. Pomocą przy konstrukcji może okazać się schemat montażowy dostępny tutaj. Wykaz Elementów:1x Listwa Gold Pin 1x2 1x Złącze szufladkowe na goldpin 1x8 1x DB9F do druku 8x 330R 2x 33pF 1x Rezonator Kwarcowy 4MHz Programowanie:Mikrokontroler do sterownika został zaprogramowany w wersji demo programu BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej: '************* Konfiguracja uC ***************** '*********************************************** $regfile = "Attiny2313.dat" $crystal = 10000000 $baud = 19200 Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B11111111 : Portd = &B11111111 Config Scl = Portd.5 Config Sda = Portd.6 I2cinit '********** Konfiguracja uC Koniec ************ '****************** Zmienne ******************* '*********************************************** Dim Rw As Byte Dim Adres As Word Dim Dana As Byte 'pomocnicze Dim Adr As Byte , Adr2 As Byte , Adr3 As Byte '************* Zmienne Koniec **************** '************** Petla glowna ****************** '*********************************************** Do Portb.2 = 0 Inputbin Rw Portb.2 = 1 If Rw = 49 Then 'zapis '*********************** 'czerw Portb.0 = 1 Portb.1 = 0 Do Portb.2 = 0 Inputbin Adr , Adr2 , Dana 'czeka na 3 bajty Adres = Adr * 256 Adres = Adres + Adr2 Portb.2 = 1 If Adres < 32768 Then Gosub Zapis_24c256 Printbin Dana Else Portb.0 = 1 Portb.1 = 1 If Adres = 60000 Then Exit Do 'taka liczba powoduje wyjscie z trybu zapisu End If Waitms 2 Loop '*********************** End If If Rw = 50 Then 'odczyt '*********************** 'ziel Portb.0 = 0 Portb.1 = 1 Do Portb.2 = 0 Inputbin Adr , Adr2 'czeka na 2 bajty Adres = Adr * 256 Adres = Adres + Adr2 Portb.2 = 1 If Adres < 32768 Then Gosub Odczyt_24c256 Printbin Dana Else Portb.0 = 1 Portb.1 = 1 '234, 96 If Adres = 60000 Then Exit Do 'taka liczba powoduje wyjscie z trybu czytania End If Waitms 2 Loop '*********************** End If Loop End '************ Petla glowna Koniec ************** '************************************************ 'zapisuje dana 0-255 do jednej z 32768 8-bitowych 'w pamieci 24c256 'uzywanie: 'adres = cos 'dana = cos 'gosub ZAPIS_24C256 '************************************************ '************************************************ Zapis_24c256: 'obliczanie msb i lsb adresu Adr2 = Adres / 256 Adr3 = Adres Mod 256 I2cstart I2cwbyte 160 I2cwbyte Adr2 I2cwbyte Adr3 I2cwbyte Dana I2cstop Return '************************************************ '************************************************ Odczyt_24c256: 'obliczanie msb i lsb adresu Adr2 = Adres / 256 Adr3 = Adres Mod 256 I2cstart I2cwbyte 160 I2cwbyte Adr2 I2cwbyte Adr3 I2cstart I2cwbyte 161 I2crbyte Dana , Nack I2cstop Return '************************************************ '************************************************ Obsługa i Komunikacja:Płytka komunikuje się z komputerem PC za pomocą interfejsu RS-232 z wykorzystaniem dowolnego programu mogącego wysyłać i odbierać liczby binarne przez port szeregowy. Aplikacja sterująca powinna mieć ustawione następujące parametry transmisji: Bity na Sekundę = 19200 Po włączeniu zasilania programator jest w stanie czuwania, co sygnalizowane jest świeceniem diody D3. Wysyłając na port RS-232 liczbę 49 wprowadzamy urządzenie w tryb zapisu, co sygnalizowane jest świecenie czerwonej struktury LED w diodzie D2. Wysłanie liczby 50 przełącza programator w tryb odczytu danych. Sygnalizowane jest to świeceniem zielonej struktury w diodzie D2. W trybie zapisu układ czeka na aż w buforze mikrokontrolera pojawią się 3 bajty danych (Adr1, Adr2, Dana). Odebranie danych sygnalizowane jest przygaszeniem diody D3 na czas ok 2ms. Następnie dana jest zapisywana do pamięci EEPROM pod Adresem Adr1 * 256 + Adr2 oraz wysyłana do komputera w celu potwierdzenia poprawności transmisji przez port szeregowy. Wyjścia z trybu zapisu można dokonać wysyłając bajty Adr1 = 234, Adr2 = 96 (czyli adres 60000) oraz dowolną daną (zostanie ona zignorowana) W trybie odczytu uklad czeka na dwa bajty adresu (Adr1, Adr2) a następnie wysyła na port RS-232 odczytaną z pamięci EEPROM daną posiadającą adres Adr1 * 256 + Adr2. Odebranie bajtów sygnalizowane jest przygaszeniem diody D3 na czas ok 2ms. Wyjścia z trybu odczytu można dokonać wysyłając bajty Adr1 = 234, Adr2 = 96 (czyli adres 60000) Zdjęcia Projektu:
|
|||||||||||||||||||||
Czy można zaprogramować tym
Czy można zaprogramować tym 24W04?
Re: EEprom
Może dało by radę ale trzeba zmienić oprogramowanie bo w pierwowzorze miało to programować AT24C256
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
A znasz się na tym i umiałbyś
A znasz się na tym i umiałbyś to zrobić? Ja to dopiero 1 technikum i nie zajmujemy się cyfrówką :p Zresztą nie wiem czy wyprowadzenia by się zgadzały. A to 24W04 różni się coś od 24C04? :p
Re: EEprom
Znam się bo to w końcu mój układ :) Wyprowadzenia możesz sobie porównać na podstawie kart katalogowych obu układów. Poza tym pamięć 24W04 to prawie to samo co 24C04, ta pierwsza ma sprzętową kontrolę zapisu ale nie powinno to stanowić problemu. Spróbuj zrozumieć procedurę zapisu i odczytu. Opisałem to dokładnie http://mirley.firlej.org/zapis_odczyt_pamieci_at24cxx Poprostu trzeba je zamienić i trochę zmienić kod. Wiele osób prosi mnie o ciągłe zmiany swoich projektów ale ze względu na ograniczony czas, nie zawsze mogę coś zrobić
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Ale jeśli wyprowadzenia się
Ale jeśli wyprowadzenia się zgadzają ,to mogę wykonać ten programator od strony sprzętowej? A potem dopisać program czy muszę coś zmienić na płytce?
Re: Programator
Wyprowadzenia są ok wiec możesz składać układ.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam Moje pytanie może się
Witam
Moje pytanie może się głupie trochę wydawać, ale mianowicie, to czy przez złącze Prog zachodzi programowanie pamięci eeprom, czy poprostu służy ono tylko do zaprogramowania ATtiny2313?
Są ludzie i parapety, ale żeby klamką się urodzić to jest sztuka.
Re: Programator EEPROM
Przez złącze prog programuje sie tylko tiny2313. Programowanie EEPROM następuje za pomocą mikrokontrolera. Odbiera on dane poprzez port RS232 (kolejne bajty) i zapisuje je do pamięci EEPROM. Podobnie z odczytem tylko w drugą stronę.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Czy musi być tutaj rezonator
Czy musi być tutaj rezonator 4Mhz? Nie może być innego?
Re: Programator EEPROM
Może być dowolny rezonator... szczególnie że tak twoim mikrokontrolerem będzie attiny23113 a nie stary 90s2313. W mojej wersji zastosowałem później 10MHz, ale raczej układ na dowolnym kwarcu pójdzie. Polecam dać kwarc 16MHz aby nie było problemu z szybkością zapisu i problemów przy prędkości RS232, bo nie wszystkie kwarce się nadają dla wszystkich prędkości
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Jednak kupiłem ten 4MHZ
Jednak kupiłem ten 4MHZ ,tylko nie mam złącza Dsub9 ,ale to nie twój problem jakoś się zrobi :P
PS: Mam pytanie takie z jednej strony do tego projektu ,ale pasuje do wszystkich, bowiem jeszcze się nie zbyt wtajemniczyłem w programowanie i mianowicie chodzi o to jak wgrać plik hex przez Burn-o-mat?
Skopiować te "cyferki" czy jak? Poprostu myślałem ,że to będzie plik o roszerzeniu hex. Nie wiem rozjaśnisz mi o co chodzi?
Przepraszam dopiero zaczynam przygodę z mikrokontorlerami itp.
Re: Programator EEPROM
Czytałeś artykuł u mnie na stronie "Jak zaprogramować pierwszy AVR", jeśli nie to poszukaj w "Artykuły różne", tam znajdziesz jak wgrać program w bascomie.
Plik hex który masz wgrać do mikrokontrolera to poprostu plik.hex (zapomnij o kopiowaniu cyferek) z rozszerzeniem hex. W burn-o-macie wgrywasz go po prostu poprzez wybranie w okienku i kliknięcie write, ale ja bym na twoim miejscu ograniczył się do bascoma. Bascom otwiera jeszcze pliki bas z kodem źródłowym, który po kompilacji robi plik hex i bin, oba te pliki zawierają program wynikowy strawny dla procesora.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Jeśli 4 MHz to czemu nie na wewnętrznym RC ?
Owszem , powyżej 8MHz to trzeba na zewnętrznym kwarcu. Czyżby wewnętrzny rezonator RC na 4 MHz był mało stabilny? Trzeba korzystać z zewnętrznego kwarca 4MHz ?
Drugie pytanie : Jeśli mamy kabel USB - COM to ten programator będzie działał? Jakim programem pod Windowsa XP należy się posłużyć ? Istnieje takowy czy jedynie Linux ?? Dzięki za odpowiedź
Re: Programator
4Mhz musi być bo bez kwarca procesor nie będzie działał (ten który niegdyś zastosowałem). Potem dopiero zmieniłem na attiny i teraz polecał bym włączyć 8MHz wewnętrzny kwarc. Co do obsługi to dowolny program co jest wstanie bezpośrednie bajty na port wysyłać. Może być Rs232Tester z mojej strony, dorobiłem ostatnio blokowe wpisywanie danych zamiast po bajcie. Zasady komunikacji opisałem wyżej. Może być też skrypt w języku Python, ostatnio coraz częściej do czegoś używam tego języka i polecam (ActivePython +PySerial). Python działa oczywiście pod Windowsem też
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Czy mógłbyś...
Witaj!
Mam do Ciebie małą prośbę. Mógłbyś w tym PDF gdzie jest 6 płytek do termotransferu dodać skalę wielkości? No wiesz, te dwie proste 3cm krechy ;)? Bo ja niestety niemam drukarki i wszystko muszę drukować w bibliotece, gdzie wszystko się pomniejsza do 96%, potem idę do punktu ksero, gdzie mi to powiększą do dobrego rozmiaru właśnie dzięki tej skali :)
Więc jakbyś znalał chwilę wolnego, to będę Ci bardzo wdzięczny.
Re: Programator
Skala została dodana jednak za bardzo z tym kombinujesz.... dodatkowe ksero pogarsza jakość wydruku. Jeśli masz dostęp do drukarki laserowej to wyłącz skalowanie wydruku w adobe reader, bo prawdopodobnie wybrana jest opcja "dopasuj do obszaru zadruku"
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
programowanie po linii SDL SCL
Czy jest możliwość takim programatorem odczyt i zapis pamięci wlutowanej w układzie wykorzystując tylko linie SDL SCL i GND
Re; Programator EEPROM
Tak jest to możliwe.... podstawka jest tutaj jako dodatek i można ją pominąć
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam i chylę czoła pięknej
Witam i chylę czoła pięknej pracy
Widzę że możliwy jest zapis/odczyt pamięci o adresie A1-0 i A2-0 - czy byłby duży problem aby obsługiwać pamięci o innych adresach (np przy starcie program sprawdzałby pod jakim adresem jest pamięć) ? Ważne to jest przy wlutowanej pamięci i na stałe przypisanym adresie np. w tonerach drukarki f-my Samsung (każdy kolor ma inny adres). Kiedyś szukałem programator o takich właściwościach i się poddałem - skończyło się na lutowaniu tak aby każda pamięć miała adres 00
Re: Programator
Tak żeby sam odczytywał adres to chyba się nie da.... musisz znać adresy układów które podpinasz. Można by było zrobić tak że na starcie wysyłasz adres pamięci razem z informacją czy chcesz czytać czy pisać i wtedy wszystkie pamięci mogły by być na jednej magistrali. Zakładam że skoro ma to być w drukarce to każda będzie miała tak samo
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Programator EEPROM
Czy możesz podać kod dla pamięci 24C32 właśnie złożyłem twój programator i chciałbym wpisać kod do attiny 2313 też fajnie by było jak pisałeś ostatnio "że na starcie wysyła adres pamięci z informacją czy odczytać czy zapisać"
Re: EEPROM
Procedura zapisu 32 jest taka sam jak dla 256, na początku dodał bym jeszcze zmienna A typu byte i dopisał:
bezpośrednio po odczycie czy ma być zapis czy odczyt. Potem w linijkach
zamianił bym 160 na A i tam gdzie jest 161 wpisał bym do zmiennej jakiejś pomocniczej A+1 i to wysłał zamiast 160.
Teraz na starcie będzie trzeba wysłać 49 lub 50 w zależności czy się czyta czy zapisuje do eeprom i zaraz po tym trzeba będzie wysłać adres bazowy kostki czyli w najprostszym przypadku 160
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Programator EEPROM
Możesz to sprawdzić i poprawić bo nie wszystko dobrze zrozumiałe :(
Re: EEPROM
Jeszcze tutaj
dał bym najpierw:
Gdzie B jest pomocniczą zmienna typu byte
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Coś nie tak po kompilacji
Coś nie tak po kompilacji wyskakuje Error w linii 129 i 130 Bascom AVR ver. 2.0.5.0
Re: Programator
ostatnia procedura ma wyglądać tak:
to chyba logiczne że jak dodajesz dwie linijki
to trzeba skasować:
a poza ty nie zadeklarowałeś zmiennej na początku. Potrzebne jest jeszcze
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam. Wszędzie szukam choćby
Witam. Wszędzie szukam choćby jakiejś szczątkowej informacji na temat obsługi pamięci NAND. Chodzi mi tylko o przykład zapisu jednej komórki adresu i podobny przykład odczytu. W tych pamięciach wszelkie dane latają po 8bitowej szynie danych a do kontroli używa się /CE /WE /RE CLE ALE /WP RY/`BY. Zagłębiałem się w datasheet pamięci TC58DVG02A1FT00 ale oprócz opisu wyprowadzeń nie znalazłem nic co by mi jasno wyjasniło jak się zapisuje i odczytuje. Może coś źle patrzę ? Proszę o pomoc. Moim celem jest finalnie zrobienie programatora bit-po-bicie na Atmega + wyświetlacz 16x2 + klawisze 4x4.Klawisze i wyświetlacz , to akurat prosto w Bascomie opisane. Także proszę o pomoc w naświetleniu mi nieco o NAND. Dziękuję.
RE: Pamięc
Niestety w tej kwestii nie pomogę..... nigdy się tym nie zajmowałem i sam by musiał się nauczyć.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
No a choćby nakierować czy
No a choćby nakierować czy dobrze odczytuję diagram odczytu i zapisu/programowania ? Temat zawarty na elektrodzie http://www.elektroda.pl/rtvforum/viewtopic.php?t=2052415&highlight= . Jak widać sporo tam opisałem, ale wolałbym zasięgnąc opini kogoś kto różne układy składa , programuje i co ważne :) działa mu to. :) pozdrawiam.
Re: pamięci
jak już mówiłem dokładnie budowy pamięci nie znam ale po diagramie przebiegów widać chyba wszystko. Na starcie opuszczasz CE na masę i chwile po tym sygnał CLE podnosi się. na magistrali powinien znajdowac się rozkaz CMD. Zbocze na WE wpisuje CMD (trzeba sprawdzić czy narastające czy opadające) do odpowiedniego rejestru. Sygnał CLE opada i ustawiany jest ALE bo następny bedzie wpisywany adres. Na magistrali wejściowej pojawiają się kolejne bajty adresu i zbocza na WE wpisują je do odpowiedniego rejestru. Wtedy WR zostaje na VDD a na magistrali mamy kolejne bajty, które odczytujemy zboczem RE. Przy odczycie jak widzę nie ma na końcu rozkazu potwierdzenia natomiast przy zapisie powinieneś na końcu znowu ustawić CLE i wpisac rozkaz który powinien znaleźć się wcześniej na magistrali wejściowej
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Dopisałem wedle info. Dzięki!
Dzięki ! Dopisałem :) Faktycznie , w diagramie jest to H10 . SupeR ! Rewelacja.
Pytanie
czy ten układ można przerobić na USB? Nie posiadam starego komputera, wydaje mi sie że USB jest częściej stosowane ;)
Przekopałem sporo stron aż natrafiłem tutaj, wszędzie indziej są oferty kupna całego modułu, ja jednak wolałbym zrobić go sam :)
Jeżeli znajdzie Pan chwilkę, bardzo bym prosił o rozpatrzenie tej proźby.
Z góry dziękuje :)
Pozdrawiam. Mateusz
Re: USB
Zrobienie tego na usb wcale nie jest takie proste, w bascomie nie da się tego raczej sensownie napisać więc trzeba to zrobić w C. Pomyśl raczej o przejściówce USB-RS232, która tworzy w systemie wirtulany port com.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
USB
To ma być konwerter USB czy zwykła przejściówka ?
Re: Konwerter
Konwerter, układ aktywny. Nie istnieje coś takiego jak zwykła przejściówka. Najlepiej poszukaj coś na układzie FTDI FT232. Wtedy napewno będzie działać
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
równoległe połączenie 2-ch pamięci(zapis i odczyt)
Najmocniej przepraszam za moje pytanie!
Mój problem to - odczyt programu z kasety magnetofonowej przez interfejs, a następnie zapis w pamięciach 24C256 i 24C512 z uwagi na wielkość(ok.715K) W opisanych sposobach odczytu przez RS232 pokazał Pan zawsze jedną pamięć - natomiast ,jak to się ma w przypadku użycia dwóch i więcej połączonych równolegle pamięciach. Czy pokazany przez Pana program do zapisu i odczytu pamięci jest taki sam, zarówno dla jednej ,jak i więcej pamięci .Jeżeli jest iaczej to prosiłbym o sprostowanie.Przedstawiony przez Pana programator do zapisu i odczytu pamięci , mogę wykorzystać w swoim przypadku do zapisu i odczytu wielu pamięci(wbudowanie do przedstawionego programatora dodatkowych podstawek pod pamięć).Proszę o wyrozumiałość -przekopałem trochę internetu i nie doszukałem się informacji na nurtujący mnie temat.
Pozdrawiam mozart!
Re: EEPROM
Da się podłączyć więcej pamięci, z tym że trzeba zadbać o inny adres kaźej z pamięci. W karcie katalogowej opisane są piny zewnętrzne zmieniające adres pamięci. Ja zwarłem piny A0 i A1 do masy co zaowocowało adresem do zapisu = 160 i do odczytu 161.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
eeprom
W przypadku połączenia więcej układów pamięci, to - w/g odpowiedzi rozumiem , że należy dokonać zwarcia A0 i A1 w obu pamięciach , (t.j w pamięci .256 i .512 piny A0iA1 należy zewrzeć do masy)-czy tak?.
Re: Adresy
Otwórz karty katalogowe obu pamięci i zobacz jakie ma adresy w zależności od ustawień linii adresowych. Adresy muszą być różne aby dało się odczytać obie pamięci podłączone na jednej magistrali
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Różnice w 24Cxx a 93Cxx....
Witam!
Mam pytanie co do odczytu i zapisu pamięci szeregowych 93Cxx.
Wiem że trzeba je podłączyć nieco inaczej niż 24Cxx gdyż DI i DO są oddzielnie więc najlepiej użyć sprzętowego SPI podłączając tak :(SCK)-CLK ,(/SS)-CS ,(MISO)-DO , (MOSI)-DI a ORG układu najlepiej podłączyć do GND by wymusić 8bitową charakterystykę pamięci. I teraz takie moje pytanie : jak się obsługuje taką pamięć po SPI ? Nieco o tym jest w Elektronice Praktycznej 11/2005 (artykuł p.Marcina Wiązania) dostępnej online w PDF.
Tam jest tak jakby kto chciał softwareowo zrobić (w krokach , rysunek 13 i rysunek 14):
dla odczytu : DI = 1 , CS = 1 , SK=1 , SK=0 , SK=1, SK=0 ,DI=0 , SK=1, i teraz DI=0 trzymamy (jednocześnie zmieniając SK=0 SK=1 tyle razy ile jest adresów w pamięci) , po czym na DO pojawia się 0 (wcześniej była wysoka impedanacja) i od tego momentu odczytujemy kolejne dane (po sekwencjach SK=0,SK=1) aż do D0 czyli ostatniej komóreczki pamięci. Wygląda na to że te pamięci 93Cxx to się odczytuje całą zawartością na raz? To nie można tak jak w 24Cxx pojedynczy adres ? Dziwne. Jak to odczytać nie wszystko_na_raz ?
Dobrze rozumuję ?
No , ok. Załóżmy że tak to się dzieje. To jak teraz taki łańcuch zapisać bezpośrednio do 24Cxx ?
Re: EEPROM
Przeczytaj najpier pdf od tej pamięci. Normalnie przeciez można przeczytać dowolną komórkę pamięci. organizacja jest trochę inna bo zapisuje się 16 bitowe dane. Wysyłasz adres po SPI i po wysłaniu adresu na wyjściu pojawiają się bity D15.....D0 wartości pod tym adresem. Zapis podobnie. Wszystko jest narysowane w karcie katalogowej
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Spojrzałem jeszcze raz i widzę :)
Odczyt 93lc46 może wyglądać tak : CS=1 , SK zmienia się z 0 na 1 przy każdym bicie ,więc na DO 110 (binarnie 3cykle SK) teraz binarnie adres jaki chcemy odczytać w wersji 8/16 bitowej zależnej od ORG , po czym następuje "zero" na DO i wraz z taktami zegara "wyłazi" nam dana spod tego adresu?
Oczywiście na koniec CS=0
To tak jakbym chciał softwareowo to napisać. Ale jak będzie wyglądał kod w BASCOM dla SPI ?
Według tego : http://avrhelp.mcselec.com/index.html?config_spi.htm
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 128 , Noss = 1
Spiinit ?
Jak ustawić i co by zapisywać z prędkością adekwatną do możliwości układu ?
Re; SPi
Mało używałem SPI i a jak już coś to sobie sam napisałem prostą procedurkę. niemniej jednak w konfiguracji musisz przede wszystkim ustawić Clockrate czyli podzielnik. Przez ile zegar spi będzie podzielony w stosunku do zegara systemowego, Polarity ustala czy linia zegara w stanie spoczynku jest 0 czy 1. Wszystko dokładnie opisane jest w helpie do bascoma
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.