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

Prosty programator pamięci eeprom I2C na RS-232

Argo van Bass 13 Cze 2013 13:26 14667 18
  • Prosty programator pamięci eeprom I2C na RS-232

    Witam!
    Chciałbym zaprezentować bardzo tani, bardzo prosty, a co najważniejsze kieszonkowy programator pamięci eeprom którego koszt zwrócił się po pierwszym zleceniu!
    Inspiracja pochodzi z (https://www.elektroda.pl/rtvforum/topic125314-0.html).
    Zacznijmy od opisu:
    Jest to programator pamięci eeprom z interfejsem I²C 8bit (8bit sprawdzałem, 16 też powinny działać ale nie nie miałem jak sprawdzić zatem nie potwierdzam) czyli wszystkie popularne pamięci w radiach i niektórych licznikach samochodowych czy w artykułach RTV.
    Według autora tamtego postu działa tylko z serią 24Cxx, lekko zmodernizowany przeze mnie współpracuje też z wieloma innymi układami o podobnych wyprowadzeniach.
    Co wprowadziłem nowego:
    na diodzie LED nie ma możliwości działania bo musi to być dioda szybka!
    zamiast 1N4148 dałem PH4148 (philips podobno najlepszy w tego typu produkcji).
    Ale oczywiście trzeba też jakąś kontrolkę bo co to za programator bez świecidełka zatem wymyśliłem kolor niebieski równolegle włączony do 4148 (zielony czy czerwony to oklepany kolor, na wieś jedzie się z niebieskim!). No i oczywiście zwiększyłem rezystancję z 3,3kΩ na 4k7. Dodałem także wyłącznik pomiędzy wyprowadzenie testowe układu a masę (niektóre kości nie chciały współpracować przy zwartym a niektóre przy rozwartym)
    Schemat podobny do schematu w tamtym artykule:
    Prosty programator pamięci eeprom I2C na RS-232

    Opis sposobu wykonania:

    Na początku obudowa (zaznaczone pola wycięte a raczej wypalone i wywiercone)
    Prosty programator pamięci eeprom I2C na RS-232

    Ponieważ podstawka wspiera się na obudowie co chroni przed wpadnięciem do środka a żeby nie wyciągnąć podstawki po prostu ją zakleiłem od góry to wszystko musiało być składane w obudowie (ja składałem w tzw. pająku) więc byłem zmuszony użyć precyzyjnego, cienkiego drutu do lutownicy, cieniutkiej cyny, dobrego światła i dużo cierpliwości (na drżące ręce proponuję setkę STOCK'a i samo się składa:))
    Wszystkie połączenia wykonane były na twardym przewodzie. Z uwagi na strach przed zwarciem lub uszkodzeniem zalałem wszystko klejem na gorąco dzięki czemu programator stał się idiotoodporny:)
    Zastosowałem w nim gniazdo DB9 żeńskie gdyż zależało mi na korzystaniu z niego bez dodatkowych kabli po prostu wyjmuję z kieszeni i połączam.
    Godzina roboty. Wszelkie crash testy przeszedł pomyślnie. Zatem projekt uznajemy za udany.
    Cennik:
    całość kosztowała mnie 7,70 zł (zwrócił się po pierwszym zleceniu prawie trzykrotnie)
    DIP 8 1 zł
    DB9 2 zł
    obudowa 2 zł
    dwie diody po 1,50 zł
    LED 50 gr
    włącznik 50 gr
    dwa rezystory po 10gr .

    I efekt końcowy:
    Prosty programator pamięci eeprom I2C na RS-232

    Do estetyki można się doczepić ale zależało mi tylko na tym żeby był kieszonkowy, tani i zarabiał na siebie:)
    Proszę o komentarz i pomoc w zbudowaniu jeszcze mniejszego lub tej samej wielkości ale na interfejsie USB.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Specjalizuje się w: elektronika, robotyka
    Argo van Bass napisał 23 postów o ocenie 9, pomógł 0 razy. Mieszka w mieście Porąbka. Jest z nami od 2009 roku.
  • #2
    piotrekcrash
    Poziom 12  
    wg mnie z prostych programatorków najlepiej zmontować sobie SIProg-a.
    Prosta baza plus kilka przystawek i można zaprogramować na prawdę sporo
    pamioęci z wielu rodzin.

    http://www.lancos.com/siprogsch.html
  • #4
    Argo van Bass
    Poziom 10  
    piotrekcrash napisał:
    wg mnie z prostych programatorków najlepiej zmontować sobie SIProg-a.
    Prosta baza plus kilka przystawek i można zaprogramować na prawdę sporo
    pamioęci z wielu rodzin.

    http://www.lancos.com/siprogsch.html


    Tutaj masz rację, jestem w trakcie budowy SPI ale dla µC. Inne
    EEPROM'y zostawię sobie dla kolejnego programatora na USB ponieważ microwire i wiele innych potrzebuje oddzielnego zasilania które mam nadzieję uzyskać z USB.
    No cóż poradzisz powyższy jest niestackowalny ale za to nie wymaga oddzielnego zasilania kostki. SPI też potrzebuje swojego zasilania co ogranicza mnie do stacjonowania z kośćmi i komputerem blisko gniazdka nie nadaje się do projektów plenerowych chyba że z baterią.

    Dodano po 3 [minuty]:

    michail_w napisał:


    dziękować, jednak będę musiał wprowadzić do tego projektu swoje usprawnienia.
  • #5
    Mariano5
    Poziom 11  
    Witam.

    Chyba coś namieszałeś.
    Ten schemat który zamieściłeś zawiera błędy.
  • #6
    Argo van Bass
    Poziom 10  
    Mariano5 napisał:
    Witam.

    Chyba coś namieszałeś.
    Ten schemat który zamieściłeś zawiera błędy.


    Prawda, prawda. Poprawione ( nie było masy)
  • #7
    Mariano5
    Poziom 11  
    Argo van Bass napisał:
    Prawda, prawda. Poprawione ( nie było masy)

    I teraz już uważa że wszystko jest w porządku ?

    A ten przełącznik odnosi się do wszystkich kości EPROM ?
    Kolego, opis twojego projektu jest chaotyczny oraz zawiera małą ilość szczegółów w których pojawiają się podstawowe błędy.
  • #8
    Argo van Bass
    Poziom 10  
    Mariano5 napisał:
    Argo van Bass napisał:
    Prawda, prawda. Poprawione ( nie było masy)

    I teraz już uważa że wszystko jest w porządku ?

    A ten przełącznik odnosi się do wszystkich kości EPROM ?
    Kolego, opis twojego projektu jest chaotyczny oraz zawiera małą ilość szczegółów w których pojawiają się podstawowe błędy.


    Jeżeli uważasz że dalej jest coś źle poinformuj mnie o tym:)

    Dalej, jeżeli będziesz miał zwarty test do masy to kości po prostu nie sczytasz albo nie zaprogramujesz tak samo jak i rozwarty ale na pewno nie uszkodzisz. Ja napisałem że do I²C (8 bitowe sprawdziłem). Microwire, SPI czy IMB nie będą działały na tym układzie na pewno.

    Wymień mi te błędy - jeżeli uznam za stosowne to je poprawię:)
  • #9
    Mariano5
    Poziom 11  
    Argo van Bass napisał:
    Jeżeli uważasz że dalej jest coś źle poinformuj mnie o tym:)

    To Ty jesteś konstruktorem. (autorem tematu)

    Argo van Bass napisał:
    Dalej, jeżeli będziesz miał zwarty test do masy to kości po prostu nie sczytasz albo nie zaprogramujesz tak samo jak i rozwarty ale na pewno nie uszkodzisz. Ja napisałem że do I²C (8 bitowe sprawdziłem). Microwire, SPI czy IMB nie będą działały na tym układzie na pewno.

    Mariano5 napisał:
    A ten przełącznik odnosi się do wszystkich kości EPROM ?

    Czy pin/port oznaczony NC może odpowiadać za blokadę pamięci ?
  • #10
    Argo van Bass
    Poziom 10  
    Mariano5 napisał:
    Czy pin/port oznaczony NC może odpowiadać za blokadę pamięci ?


    Mam tutaj dla Ciebie notę katalogową, przejrzyj ją dokładnie, znajdź w niej port 7, który jest nieużywany to przyznam Ci rację. Na razie się wygłupiasz:) Proponuję złożyć i sprawdzić.

    nota:
    http://cnir.in/datasheet/24C02.pdf
  • #11
    Mariano5
    Poziom 11  
    Argo van Bass napisał:

    Mariano5 napisał:
    Czy pin/port oznaczony NC może odpowiadać za blokadę pamięci ?


    Mam tutaj dla Ciebie notę katalogową, przejrzyj ją dokładnie, znajdź w niej port 7, który jest nieużywany to przyznam Ci rację. Na razie się wygłupiasz:) Proponuję złożyć i sprawdzić.

    nota:
    http://cnir.in/datasheet/24C02.pdf


    A co miał na myśli pisząc to zdanie ?
    Argo van Bass napisał:
    Według autora tamtego postu działa tylko z serią 24Cxx, lekko zmodernizowany przeze mnie współpracuje też z wieloma innymi o podobnych wyprowadzeniach (rzeczywiście 85C82 nie działała przy 3,3kΩ)

    Opis projektu jest po prostu chaotyczny.
  • #12
    Argo van Bass
    Poziom 10  
    Mariano5 napisał:

    Argo van Bass napisał:

    Mariano5 napisał:
    Czy pin/port oznaczony NC może odpowiadać za blokadę pamięci ?


    Mam tutaj dla Ciebie notę katalogową, przejrzyj ją dokładnie, znajdź w niej port 7, który jest nieużywany to przyznam Ci rację. Na razie się wygłupiasz:) Proponuję złożyć i sprawdzić.

    nota:
    http://cnir.in/datasheet/24C02.pdf


    A co miał na myśli pisząc to zdanie ?


    A żeby otworzył i wskazał mi nieużywany port w 24C04/02 bo jak twierdził wcześniej patrząc tylko na 85C82, że reszta eeprom'ów nie używa portu 7.
    Otóż problem tkwi w tym, że autor wcześniejszego postu nie wziął pod uwagę tego iż połowa z obsługiwanych kości będzie miała w porcie 7 blokadę zapisu.
    Jedne kości reagują na masę inne blokują się gdy wyprowadzenie WP zostanie wolne. A jeszcze inne po prostu są w tym miejscu niepodłączone
  • #13
    Mariano5
    Poziom 11  
    Prosił bym o trzymanie się wątku.

    Mariano5 napisał:
    A ten przełącznik odnosi się do wszystkich kości EPROM ?
    Argo van Bass napisał:
    Dalej, jeżeli będziesz miał zwarty test do masy to kości po prostu nie sczytasz albo nie zaprogramujesz tak samo jak i rozwarty ale na pewno nie uszkodzisz. Ja napisałem że do I²C (8 bitowe sprawdziłem). Microwire, SPI czy IMB nie będą działały na tym układzie na pewno.

    Argo van Bass napisał:
    A żeby otworzył i wskazał mi nieużywany port w 24C04/02 bo jak twierdził wcześniej patrząc tylko na 85C82, że reszta eeprom'ów nie używa portu 7.

    Com twierdził wcześniej ?
  • #14
    Argo van Bass
    Poziom 10  
    Pytasz mnie czy nieużywany port może wpłynąć na zabezpieczenie przed zapisem (zakładam, że robiąc Timer sterowany pilotem masz coś niecoś wiadomości podstawowych o pamięciach eeprom i pytasz sarkastycznie).
    Odpowiadam, że nie wszystkie programowane tym programatorem kości mają niepodłączone wyprowadzenie 7. Na potwierdzenie dostajesz notę katalogową 24C04 w której jest napisane że port 7 odpowiada właśnie za blokadę zapisu i jest jednocześnie wyprowadzeniem testowym.
  • #15
    Mariano5
    Poziom 11  
    Otóż własnie to...
    Skoro udzielasz się na forum jako fachowiec, to pewne szczegóły a zwłaszcza te związane z zapisem w EPROM powinieneś zamieścić w opisie. (nie każdy mechanik samochodowy posiada taką wiedzę jak Ty, a na co dzień ma do czynienia z prostymi programatorami)

    Teraz schemat Twojego układu.
    Pomyśl co na pierwszy rzut oka jest zastanawiające ? (ja Ci tego nie podpowiem bo to Ty jesteś konstruktorem, i wiesz lepiej)
  • #16
    Argo van Bass
    Poziom 10  
    Mariano5 napisał:
    Otóż własnie to...

    Tak wiem ucieczka przed swoim błędem.

    O to trzeba pytać normalnie a nie sarkastycznie.
    To jest najprostszy programator jaki kiedykolwiek udało mi się zbudować. Mechanik taki ma do czynienia zarówno z takimi prostymi jak i złożonymi. Liczniki samochodowe są też wykonywane na interfejsie korzystającym z microwire czy IMB, nie mówiąc już o interfejsie OBD. Tak czy siak mechanik ma do czynienia ze złożonymi czytnikami czy programatorami.
    Schemat co prawda nie wygląda profesjonalnie ale wcale nie przeszkadza w wykonaniu programatora:) Prosiłbym kogoś kto ma dostęp do 16 bitowych kości na I2C żeby spróbował złożyć i sprawdzić czy poziomy napięć będą pasowały z moich obliczeń. Innymi słowy sprawdził czy będą działały.
    układy z serii ATT napewno nie będą działać:)
    To jest eeprom (elektrycznie wymazywany programowalny ROM), przez cały czas używasz określenia eprom, które są wymazywane optycznie.
  • #17
    Mariano5
    Poziom 11  
    Skoro wstawiasz do DIY konstrukcję, to wypadało by zamieścić więcej szczegółów. (Bynajmniej w zakresie zmian które wprowadziłeś.)

    - Jak ze stabilnością zasilania pamięci?. (sama dioda zenera nie wystarczy jeśli wyjście TxD jest kluczowane)
    - Jak zrealizowałeś że dioda LED świeci będąc równolegle połączoną z 1N4148 ? (Osobiście nie słyszałem o diodzie niebieskiej która by świeciła przy napięciu 0,7V)
  • #18
    Argo van Bass
    Poziom 10  
    Masz rację, wieczorem opiszę w jaki sposób to zrealizowałem wraz z opisem programu i możliwych problemów podczas korzystania
  • #19
    Argo van Bass
    Poziom 10  
    Proszę o przeniesienie do kosza gdyż nie mam zbytnio czasu opisywać. Później wstawię jeszcze raz z dokładnym opisem.