| Author |
Message
|
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#1
24 Jul 2010 09:20 Programator pamięci FLASH |
|
|
|
Tym razem chciałbym przedstawić konstrukcję nieskomplikowanego w budowie programatora pamięci FLASH do zastosowań hobbystycznych. W trakcie projektowania postawiony został duży nacisk na maksymalną prostotę budowy programatora przy jednocześnie wygodnej jego obsłudze za pośrednictwem komputera i możliwie największą liczbę obsługiwanych układów. Cały system programowania składa się z urządzenia - programatora i programu komputerowego. Wzorowany jest na komercyjnych konstrukcjach tego typu urządzeń dostępnych obecnie na rynku. Programator podłączany jest do komputera za pomocą portu USB. Na komputerze uruchomiony jest program sterujący jego pracą i stanowiący interfejs użytkownika. Programator jest zasilany w całości z portu USB, nie ma więc potrzeby podłączania dodatkowego zasilacza co z pewnością jest dużą zaletą.
Zastosowanie
Za pomocą programatora możliwe jest programowanie około 100 różnych rodzajów układów pamięci FLASH - około 200 stosując typowy przelicznik używany przez producentów programatorów. Może posłużyć nam on do naprawy płyt głównych w starszych komputerach po źle przeprowadzonej aktualizacji BIOS'u, jak również naprawy wszelkiego rodzaju innych podzespołów komputerowych i nie tylko, gdzie znajdują się kości z firmwarem takich jak na przykład karty graficzne, napędy CD czy tunery. Za pomocą programatora można również zaprogramować nowe, czyste układy pamięci FLASH i zastąpić nimi oryginalne pamięci typu ROM w kartridżach do różnych starszych konsol do gier.
Budowa programatora
Programator posiada 32-pinową podstawkę ZIF do klasycznych obudów DIL32. Dodatkowo opracowane zostały dwa adaptery, rozszerzające możliwości programatora o programowanie układów w obecnie częściej spotykanych obudowach PLCC32 i TSOP32. W związku z powyższym możliwe jest programowanie układów o pojemnościach od 128 do 512 kB. Głównym elementem programatora jest mikrokontroler AVR ATmega16L lub ATmega8535L, który steruje wyprowadzeniami podstawki ZIF programatora. Do mikrokontrolera podłączony jest także układ konwertera USB<->RS-232 FT232RL pozwalający na realizację komunikacji z komputerem. Programator posiada również stabilizator dostarczający napięcia 3,3V dzięki czemu po przełączeniu przełącznikiem napięć możliwe jest także programowanie układów niskonapięciowych (program wskazuje jakie należy ustawić napięcie dla konkretnego układu). Na płytce programatora znajdują się również dwie diody LED - zielona sygnalizuje podłączenie programatora do komputera, a czerwona świeci się, gdy przełącznikiem napięć wybrane jest napięcie 5V. Sygnał zegarowy dla mikrokontrolera pobierany jest bezpośrednio z układu FT232RL, dzięki czemu nie ma potrzeby dołączania rezonatora kwarcowego. Poniżej znajduje się schemat programatora:
Program sterujący
Program sterujący programatorem jest łatwy i wygodny w obsłudze. W centralnej części okna znajduje się log wszystkich wykonanych operacji, a także wyświetlane są różne komunikaty (m.in. o tym jakie należy wybrać napięcie zasilania dla konkretnego układu) i ewentualne błędy. Z lewej strony umieszczone zostały duże przyciski do otwierania i zapisywania plików (obsługiwany jest format binarny oraz format IntelHex), dostępu do edytora bufora programu, wyboru układu z listy obsługiwanych oraz do wywoływania operacji odczytu i programowania. Na górze okna znajduje się pasek menu z dodatkowymi opcjami takimi jak na przykład wybór języka programu (dostępny jest język polski i angielski). Na dole okna wyświetlane są parametry aktualnie wybranego układu pamięci oraz poniżej na pasku statusu wyświetlana jest informacja w postaci tekstowej i graficznej pokazująca obecny stan programatora (podłączony, odłączony, w trakcie transferu danych). Do programu została ponadto dołączona kompletna pomoc, gdzie szczegółowo opisane są wszystkie jego elementy.
Obsługa programatora
Pracę rozpoczynamy od podłączenia programatora do komputera za pomocą typowego kabla USB typu A-B stosowanego do podłączania drukarek, a następnie uruchomienia programu. Programator możemy oczywiście w każdej chwili odłączyć lub podłączyć już po uruchomieniu programu. Jeśli program nie wykryje programatora przełączy się w tryb demonstracyjny. W tym trybie program zachowuje pełną funkcjonalność poza odczytywaniem i programowaniem pamięci. Te czynności są po wywołaniu danej funkcji symulowane, tak aby możliwe było obejrzenie jak wygląda to na prawdę jeszcze przed ewentualną budową programatora.
Następnie należy kliknąć na funkcję wyboru układu i wybrać z listy układ, który chcemy zaprogramować. Program posiada wyszukiwarkę, więc wystarczy wpisać oznaczenie układu. Obsługiwane układy zostały zgrupowane według producentów, a przy każdym poza jego nazwą wyświetlana jest nazwa obudowy oraz rozmiar pamięci. Na tym etapie możemy sprawdzić czy układ, który chcemy zaprogramować jest obsługiwany przez programator. Jeśli konieczne będzie użycie adaptera program wyświetli taką informację po zatwierdzeniu wyboru. Po wykonaniu tych czynności w oknie logu wyświetlona zostanie informacja na jakie napięcie należy przełączyć zasilanie dla układu. Dopiero teraz można ostrożnie włożyć układ do podstawki i ją zamknąć dźwignią - przed należy jednak upewnić się, że układ został prawidłowo zorientowany.
W następnej kolejności możemy odczytać zawartość układu lub go zaprogramować. Po otwarciu pliku z dysku komputera lub odczytaniu danych z układu zawartość znajdzie się w buforze programu. Program sterujący posiada edytor bufora, za pomocą którego możemy wyświetlić lub edytować zawartość każdej komórki pamięci. Dodatkowo możliwe jest wyczyszczenie bufora, wypełnienie go wartościami losowymi, wypełnienie dowolnego fragmentu bufora dowolnym ciągiem znaków lub wartości oraz skopiowanie dowolnego bloku z jednego adresu pod inny.
Aby odczytać układ klikamy na przycisk odczytu. Programator odczyta sygnaturę włożonego układu i jeśli będzie ona zgodna z wybranym w programie układem rozpocznie właściwy odczyt danych z układu. W trakcie odczytu wyświetlany będzie pasek postępu oraz szacowany pozostały czas do zakończenia operacji. Oczywiście za pomocą przycisku anulowania możliwe jest w każdej chwili przerwanie operacji. Po odczytaniu dane znajdą się w buforze programu.
Aby zaprogramować układ klikamy na przycisk programowania. Programator odczyta sygnaturę włożonego układu i jeśli będzie ona zgodna z wybranym w programie układem oraz w buforze będą dane do zaprogramowania w pierwszej fazie skasuje układ, a następnie zaprogramuje go danymi z bufora programu.
Przy pracy w trybie demonstracyjnym nie są symulowane faktyczne czasy odczytu i programowania układów jakie mają miejsce w normalnym trybie z podłączonym programatorem. Przykładowo odczyt układu MBM29F040C (512 kB) trwa około 130 sekund, a kasowanie i programowanie 180 sekund. Nie są to z pewnością czasy, które mogłyby konkurować z komercyjnymi programatorami, ale ze względu na charakter i potencjalne zastosowania tego programatora uważam, że są akceptowalne.
Montaż programatora
W załącznikach do artykułu znajdują się wszystkie materiały potrzebne do wykonania opisywanego programatora. Na początek polecam jednak zapoznać się z programem sterującym, a szczególnie z listą obsługiwanych układów. Mając na uwadze ich ilość oraz możliwości tylko bardzo niewielka część z nich została w praktyce przetestowana z programatorem, ale ze względu na wykorzystywanie przez wszystkie uniwersalnego zestawu poleceń jest wysoce prawdopodobne, że również i te nieprzetestowane będą poprawnie programowane przez programator.
Po zmontowaniu programatora przed włożeniem do podstawki mikrokontrolera należy sprawdzić w pierwszej kolejności poprawność napięć zasilania i skonfigurować układ FT232RL, tak aby na jego pinie 12 (CBUS4) dostępny był sygnał zegarowy o częstotliwości 6 MHz. W tym celu należy pobrać ze strony producenta (Link) program FT_PROG i przestawić opcję dla C4 na CLK6 i zaprogramować zmiany:
Następnie należy za pomocą zewnętrznego programatora ISP wgrać udostępniony wsad do mikrokontrolera i ustawić fusebity w następujący sposób: Fuse High Byte = 0xD1, Fuse Low Byte = 0xA0:
W programatorze możemy użyć jednego z dwóch mikrokontrolerów ATmega16L lub ATmega8535L, w zależności od tego który będzie łatwiej dostępny lub po prostu tańszy. Należy jednak pamiętać, aby użyć wersji mikrokontrolera z oznaczeniem L. Teraz możemy włożyć mikrokontroler do podstawki i ponownie sprawdzić napięcia zasilające.
W następnej kolejności instalujemy na komputerze program sterujący korzystając z instalatora. Program wymaga do działania obecnego na komputerze .NET Framework'a w wersji 2.0. Instalator sprawdzi na początku czy framework jest zainstalowany, a w przypadku jego braku otworzy stronę, z której będzie można go pobrać i zainstalować. Po instalacji programu instalator domyślnie instaluje sterownik FTDI do układu konwertera USB<->RS-232. Jeśli posiadamy już zainstalowany ten sterownik to możemy odznaczyć opcję jego instalacji. Po instalacji oczywiście możliwe będzie późniejsze zainstalowanie sterownika korzystając ze skrótu w menu Start. Tam też umieszczony zostanie skrót do programu i pliku pomocy.
Uwagi końcowe
Ze względu na bardzo uproszczoną konstrukcję programator nie posiada żadnych zabezpieczeń przeciwzwarciowych. Nieprawidłowe włożenie układu lub włożenie układu nie będącego obsługiwaną pamięcią FLASH, w szczególności mającą wyprowadzenia zasilania na innych pinach lub przełączenie na nieprawidłowe napięcie zasilające może skończyć się uszkodzeniem programatora i/lub portu USB komputera. Autor dołożył wszelkich starań, aby system działał stabilnie i niezawodnie, jednak nie gwarantuje, że program jest całkowicie wolny od błędów oraz, że wszystkie znajdujące się na liście układy będą poprawnie odczytywane i programowane przez programator. Należy pamiętać, że niektóre układy mogą mieć aktywowane zabezpieczenia zapobiegające skasowaniu całości lub fragmentu obszaru pamięci (boot block) i nieprawidłowe programowanie nie musi wynikać z błędnego działania programatora.
Cała dokumentacja do budowy programatora jak również program sterujący udostępnione są z zastrzeżeniem do wykorzystywania wyłącznie do celów niekomercyjnych.
Program sterujący można pobrać również z: Link
| Description: |
|
 Download |
| Filename: |
flproglite_v01.00_firmware.zip |
| Contents: |
|
| Filesize: |
7.57 KB |
| Punkty: |
1 = 0.00 for transfer + 1 for the user (set manually) |
| Description: |
|
 Download |
| Filename: |
lista_ukladow.txt |
| Contents: |
|
| Filesize: |
5.08 KB |
| Punkty: |
0 |
| Description: |
|
 Download |
| Filename: |
programator_pcb.zip |
| Contents: |
|
| Filesize: |
49.9 KB |
| Punkty: |
0 |
| Description: |
|
 Download |
| Filename: |
flproglite_setup.exe |
| Contents: |
|
| Filesize: |
2.82 MB |
| Punkty: |
0 |
|
|
| Back to top |
|
 |
piotrva Poziom 22

Joined: 22 Apr 2008 Posts: 2163 Location: Kraków
|
#2
24 Jul 2010 15:10 Re: Programator pamięci FLASH |
|
|
|
Bardzo ładnie wykonany projekt i przede wszystkim praktyczny.
Mam takie pytania:
gdzie na płytce masz ten ftdi, bo na zdjęciach nie widać...
nawet gdyby ftdi nie dostarczał sygnału zegarowego to z tego co wiem atmegi mają wbudowany oscylator 8MHz, więc i tak nie trzeba by było podpinać kwarcu
i tak trochę na boku, bo mam dosyć spore problemy z pamięcią AM29F010A/AM29F040A. Pomimo, że wysyłam komendy zgodnie z karta katalogową nic nie mogę do żadnej z nich zapisać - przy odczycie dostaję zawsze FF... Byłbym bardzo wdzięczny za przedstawienie listy kroków potrzebnych do zaprogramowania układziku
|
|
| Back to top |
|
 |
mlody_elektronik Poziom 21

Joined: 10 Apr 2005 Posts: 1206
|
#3
24 Jul 2010 16:33 Re: Programator pamięci FLASH |
|
|
|
piotrva, FTDI siedzi od spodu płytki w wersji SMD ;)
|
|
| Back to top |
|
 |
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#4
24 Jul 2010 17:14 Re: Programator pamięci FLASH |
|
|
|
Owszem mają wewnętrzny oscylator RC, ale jego stabilność jest wątpliwa do tego zastosowania, poza tym to tylko jedna ścieżka więcej. ;) Przebiegi czasowe sygnałów dla zapisu są opisane w dokumentacji pamięci i po prostu trzeba tak sterować wyprowadzeniami, żeby spełnić wszystkie zawarte tam wymagania i zachować odpowiednią ich kolejność.
|
|
| Back to top |
|
 |
HUGO Poziom 15

Joined: 16 Mar 2003 Posts: 200 Location: Szczecin
|
#5
24 Jul 2010 18:45 Re: Programator pamięci FLASH |
|
|
|
Witam
Projekt według mnie jak najbardziej trafiony i tak trzymać mam pytanie czy będziesz go rozwijał ? , ja już postanowiłem zbudować sobie tą wersje gdyż czasami trafia do mnie jakaś "zabita" płyta główna.
Pozdrawiam
Andrzej
|
|
| Back to top |
|
 |
Google

|
#
24 Jul 2010 18:45 |
|
|
|
|
|
| Back to top |
|
 |
Pituś Bajtuś Poziom 20

Joined: 11 Feb 2005 Posts: 823 Location: Żabieniec
|
#6
24 Jul 2010 20:27 Re: Programator pamięci FLASH |
|
|
|
Czy jest szansa na PCB w PDF? Bo z bitmapy mam problem z dobraniem proporcji odpowiednich do wydruku.
|
|
| Back to top |
|
 |
omicronNs Poziom 18

Joined: 24 Jul 2009 Posts: 541 Location: Nowy Sącz
|
#7
24 Jul 2010 20:31 Re: Programator pamięci FLASH |
|
|
|
Pituś wydrukuj w skali 100% zmierz jakiś odcinek na druku, teraz znając wymaganą długość odcinka możesz obliczyć jakim procentem tego obrazu ma być ten odpowiedni. A przeskalować można w paincie.
|
|
| Back to top |
|
 |
11111olo Poziom 24

Joined: 21 Mar 2007 Posts: 5760 Location: z opolskiego ;)
|
#8
25 Jul 2010 18:23 Re: Programator pamięci FLASH |
|
|
|
Czy będzie można programować "mniejsze" pamięci jak choćby 2764?
|
|
| Back to top |
|
 |
Tomekddd Poziom 19

Joined: 02 Jun 2006 Posts: 634 Location: Turbia
|
#9
25 Jul 2010 19:49 Re: Programator pamięci FLASH |
|
|
|
Rozumiem że pamięci programuje się tak jakby przez zwykłą komunikację mikrokontrolera z daną pamiecią w jakimś urządzeniu?
Zastanawiam się czy w taki sam sposób nie można zaprogramować innego mikrokontrolera?
|
|
| Back to top |
|
 |
11111olo Poziom 24

Joined: 21 Mar 2007 Posts: 5760 Location: z opolskiego ;)
|
#10
25 Jul 2010 20:35 Re: Programator pamięci FLASH |
|
|
|
Można. W końcu dużo programatorów jest opartych na mikrokotrolerach.
|
|
| Back to top |
|
 |
Tomekddd Poziom 19

Joined: 02 Jun 2006 Posts: 634 Location: Turbia
|
#11
25 Jul 2010 20:58 Re: Programator pamięci FLASH |
|
|
|
A gdzie moge znaleźć coś na ten temat? chodzi mi pod jakim hasłem szukać. Od dawna planuję budowę uniwersalnego programatora ale nie bardzo wiem jak on miałby działać szczególnie z tym programowaniem drugiego okładu przez wyjścia pierwszego
|
|
| Back to top |
|
 |
michal.bedzin Poziom 10

Joined: 08 Mar 2008 Posts: 54 Location: Będzin
|
#12
26 Jul 2010 00:31 Re: Programator pamięci FLASH |
|
|
|
Programator na pewno przydatny. Mam tylko dwa pytania. Jak z programowaniem flash'y w 8051? Oraz dlaczego dokładasz dodatkowy stabilizator 3.3V skoro jest on zintegrowany w FT232.
|
|
| Back to top |
|
 |
HUGO Poziom 15

Joined: 16 Mar 2003 Posts: 200 Location: Szczecin
|
#13
26 Jul 2010 00:46 Re: Programator pamięci FLASH |
|
|
|
Według mnie jest po to ten stabilizator aby można było zasilać Flashe które wymagają 3,3V na schemacie jest przełącznik
pozdrawiam
Andrzej
|
|
| Back to top |
|
 |
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#14
26 Jul 2010 10:20 Re: Programator pamięci FLASH |
|
|
|
Większość programów graficznych ma możliwość wydruku obrazka podając jego wymiary jakie ma mieć na papierze, więc nie trzeba nawet nic skalować.
Programowanie pamięci 27xx jest problematyczne, ponieważ wymagają one podniesienia napięcia zasilającego podczas programowania o trochę ponad 1V, a na dodatek trzeba dostarczyć jeszcze napięcie programowania (kilkanaście V) co oczywiście skomplikowałoby całą konstrukcję, a od początku miała ona być jak najprostsza. Poza tym układy są w obudowach o różnych ilościach wyprowadzeń, co wymaga konieczności przełączania zasilania na konkretne nóżki. Idąc dalej tym tokiem dojdziemy w końcu do programatora uniwersalnego, który będzie drogi i skomplikowany.
Uważam, że budowa kolejnego programatora do mikrokontrolerów, do którego jest już z pewnością niejeden programator trochę mija się z celem. W przypadku pamięci FLASH szukając jakiejś sensowniejszej, ale nadal budżetowej konstrukcji dojdziemy i tak w końcu do sławnego Willema, na temat którego już niejeden post napisano. ;)
Rzut okiem na specyfikację układu FT232R wyjaśni, że ten stabilizator ma małą wydajność prądową w porównaniu do zewnętrznego stabilizatora nawet w obudowie TO-92. :)
|
|
| Back to top |
|
 |
Google

|
#
26 Jul 2010 10:20 |
|
|
|
|
|
| Back to top |
|
 |
Szymon Tarnowski Poziom 19

Joined: 31 Oct 2008 Posts: 630
|
#15
26 Jul 2010 17:27 Re: Programator pamięci FLASH |
|
|
|
Bardzo ładna konstrukcja ale, ja bym zrobił zamiast przełącznika jakiś przekaźnik sterowany programowo z procesora.
Ja mam tylko taką wątpliwość po co taki programator? Pamięci FLASH spotyka się stosunkowo rzadko w urządzeniach, a jeśli spotyka to rozpiętość typów i producentów jest spora. Za 400zł można kupić nowy gotowy programator (a za 300zl pewnie już używany) który ma znacznie większą listę obsługiwanych układów.
Uwaga kolegów co do stabilizatora może być słuszna, ja bym się zastanawiał jaki prąd jest wpisany w deskryptorach USB, może być konieczna dodatkowa pamięć EEPROM do FT232 żeby zapisać konfigurację z większym prądem.
|
|
| Back to top |
|
 |
ziomal155 Poziom 15

Joined: 18 Dec 2005 Posts: 213 Location: lodz
|
#16
26 Jul 2010 23:51 Re: Programator pamięci FLASH |
|
|
|
| Szymon Tarnowski wrote: |
Bardzo ładna konstrukcja ale, ja bym zrobił zamiast przełącznika jakiś przekaźnik sterowany programowo z procesora.
Ja mam tylko taką wątpliwość po co taki programator? Pamięci FLASH spotyka się stosunkowo rzadko w urządzeniach, a jeśli spotyka to rozpiętość typów i producentów jest spora. Za 400zł można kupić nowy gotowy programator (a za 300zl pewnie już używany) który ma znacznie większą listę obsługiwanych układów.
Uwaga kolegów co do stabilizatora może być słuszna, ja bym się zastanawiał jaki prąd jest wpisany w deskryptorach USB, może być konieczna dodatkowa pamięć EEPROM do FT232 żeby zapisać konfigurację z większym prądem. |
Domyślam się że jest tam FT232"R" który to pamięć ma w środku i nie potrzebuje już żadnych zewnętrznych elementów.
|
|
| Back to top |
|
 |
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#17
27 Jul 2010 08:56 Re: Programator pamięci FLASH |
|
|
|
Tak. Widać go na schemacie. Nie ma potrzeby modyfikowania domyślnej wartości prądu w deskryptorze ponieważ żaden z obsługiwanych układów przy zapisie razem z mikrokontrolerem nie powinien pobierać więcej niż 90-100mA. Nawet stabilizator 3,3V ma wewnętrzne ograniczenie do 100mA.
|
|
| Back to top |
|
 |
Pituś Bajtuś Poziom 20

Joined: 11 Feb 2005 Posts: 823 Location: Żabieniec
|
#18
27 Jul 2010 18:08 Re: Programator pamięci FLASH |
|
|
|
Zmontowałem programator (co prawda nie na płytce docelowej) i nie bardzo chce się dogadać z pamiecią AM29F010B :
| Quote: |
19:02:06: Selected chip: AM29F010B (DIP32), size 128 KB
19:02:06: Switch supply voltage to 5 V before inserting chip!
19:02:07: Programmer is connected
19:02:13: Reading chip
19:02:14: Communication error!
19:02:14: Error code: 04h
|
Co oznacza ten kod błędu?
EDIT:
OK, problem rozwiązany - pomimo że program "wykrył" podłaczony programator to w rzeczywistości wykrył tylko FTDI, troche to mylące było.
|
|
| Back to top |
|
 |
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#19
28 Jul 2010 16:20 Re: Programator pamięci FLASH |
|
|
|
Najlepiej obserwować ikonę na pasku stanu w prawym dolnym rogu okna programu. Jeśli widnieje tam czerwony znak zapytania to znaczy, że program wykrył podłączone urządzenie, ale jeszcze nie "dogadał się" z mikrokontrolerem. Jeśli ten znak jest widoczny dłużej niż 2-3 sekundy to może oznaczać to problem z programatorem.
|
|
| Back to top |
|
 |
11111olo Poziom 24

Joined: 21 Mar 2007 Posts: 5760 Location: z opolskiego ;)
|
#20
30 Jul 2010 18:02 Re: Programator pamięci FLASH |
|
|
|
Czy można zamiast FTDI podłączyć się przez MAX232 do portu COM?
|
|
| Back to top |
|
 |
bodzio667 Poziom 15

Joined: 12 Sep 2005 Posts: 264 Location: CK
|
#21
30 Jul 2010 23:34 Re: Programator pamięci FLASH |
|
|
|
Mam pytanie do autora tego świetnego programatora, od dawna próbowałem coś takiego zbudować. Przeznaczeniem było programowanie uszkodzonej np. podczas upgrade Bios, lecz nie udało mi sie nic wymodzić co by działało. Tobie widzę że wyszło świetnie.
Tylko dlaczego jest ograniczenie co do pojemności układów Flash ?
Przecież obecnie stosowane układy znacznie przewyższają możliwości programatora...
Mam ogromną prośbę o udostępnienie kodu źródłowego. A nie tylko pików wynikowych... Oczywiście jeśli to nie taka wielka tajemnica. Jeśli nie na forum to na PW. Może się czegoś nauczę z analizy kodu, bardzo bym prosił.
Mam też propozycję nowej funkcji oprogramowania sterującego. W pamięci Flash BIOS'u komputerowego istnieje pewien obszar początkowych sektorów który jest zwany identyfikatorem kości. Dzięki niemu programy do upgrade Biosu wiedzą z jakimi kościami mają do czynienia. Przykładem jest tu np. uniflasher choć on jest rozwijany od wielu lat i ma funkcje w której można na "sztywno" ustawić typ kości ręcznie. To i tak nie zmienia faktu że przydała by się funkcja naprawcza do takiego sektora, by go było można odbudować lub wgrać na czystego flacha. Przydałby się również podział na boot block w podglądzie zawartości pamięci.
Oczywiście moje uwagi kierowane są w stronę konkretnego przeznaczenia kości flash lecz akurat tu są najczęściej spotykane.
Pozdrawiam.
:D
|
|
| Back to top |
|
 |
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#22
31 Jul 2010 09:37 Re: Programator pamięci FLASH |
|
|
|
Podłączenie się do komputera przez port RS-232 nie jest możliwe, chociażby z tego względu że prędkość komunikacji jest większa niż oferuje typowy port szeregowy. Poza tym robiąc komunikację przez port szeregowy konieczne byłoby dołączanie zewnętrznego zasilacza, czego bardzo chciałem uniknąć. Oczywiście możnaby zasilanie dostarczać z wolnego portu USB, ale skoro mamy wolny port USB to po co podłączać się jeszcze do portu szeregowego, których w obecnie produkowanych notebookach już w zasadzie nie ma, a i w zwykłych stacjonarnych komputerach już się nie instaluje więcej niż jeden. Biorąc pod uwagę dostępność i cenę układu FT232RL uważam, że nie ma sensu robić programatora na port szeregowy.
Ograniczenie pojemności układów wynika z prostego faktu - ilości dostępnych nóżek linii adresowej pamięci. W 32-pinowej obudowie starcza ich tylko na zaadresowanie obszaru o pojemności do 512 KB. Z kolei układy o pojemnościach mniejszych niż 128 KB (są wyjątki 64 KB) są po prostu produkowane w obudowach mniejszych, lub też mają gdzie indziej wyprowadzone linie zasilające. Kodów źródłowych niestety nie udostępniam. Programator przed każdą operacją odczytuje sygnaturę układu czyli wspomniany "identyfikator kości". Obsługa i wydzielanie obszarów boot block to dodatkowa komplikacja, której chciałem uniknąć. Zawsze można odczytać cały flash i zmian dokonać tylko w określonym obszarze korzystając z zewnętrznego edytora do plików binarnych, a potem z powrotem zaprogramować całość.
|
|
| Back to top |
|
 |
bodzio667 Poziom 15

Joined: 12 Sep 2005 Posts: 264 Location: CK
|
#23
31 Jul 2010 23:39 Re: Programator pamięci FLASH |
|
|
|
Nie myślałeś o zastosowaniu innego typu procesora ?? z większą ilością portów i/o ?
Widzę że wykorzystałeś wszystkie wyprowadzenia uC :D
Może jakiś zewnętrzny demultiplekser rozwiązałby problem małej ilości wyprowadzeń adresujących ?? bo 512kb to stanowczo za mało. Programator może by zaprogramował kostkę BIOS z starego PC ale już z nowym nie da rady, a obecnie stosowane pamięci znacznie przekraczają 512kb... dajmy na to kość PM49FL004T-33JCE - ----- 2 Mbit / 4 Mbit 3.3 Volt-only Firmware Hub/LPC Flash Memory
Sorry ale jak widzisz nie zawsze ograniczenie kosztów idzie dobrze w parze z funkcjonalnością...
Pomysł świetny bardzo mi się podoba lecz co by tu zrobić by programować większe pamięci dodanie już jednego wyjścia adresującego znacznie zwiększa przestrzeń adresową...
jeśli możesz to oświeć nas jak przeliczyć ile jest potrzebne pinów adresowych by zaadresować konkretna wielkość w pamięci, bo nie za bardzo kumam jak to obliczyć. a może wykorzystać inny uC np. z rodziny XMEGA ? :D
|
|
| Back to top |
|
 |
sepako Poziom 12

Joined: 30 Jun 2005 Posts: 80 Location: 98-332
|
#24
03 Aug 2010 17:18 Re: Programator pamięci FLASH |
|
|
|
Istnieje możliwość programowania pamięci typu 49FL002/4/8 w trybie FWH wykorzystując jedynie 5 pinów, pytanie czy komuś udało się to już zrobić?
|
|
| Back to top |
|
 |
Google

|
#
03 Aug 2010 17:18 |
|
|
|
|
|
| Back to top |
|
 |
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#25
04 Aug 2010 09:57 Re: Programator pamięci FLASH |
|
|
|
Oczywiście można zastosować mikrokontroler z większą liczbą wyprowadzeń w obudowie SMD, ale jak przypadkiem uszkodzimy go to potem może być kłopotliwa ewentualna wymiana. Jeśli chodzi o stosowanie demultiplekserów to trzeba pamiętać, że potrzebujemy portów wejście/wyjście, co dodatkowo może skomplikować taki demultiplekser. Nie są to jednak problemy, których nie można pokonać. Głównym czynnikiem wydaje mi się jest różnorodność pamięci powyżej 512 KB zarówno jeśli chodzi o rodzaje obudów jak i rozkłady wyprowadzeń. Ponadto niektóre pamięci powyżej 512 KB mogą pracować zarówno w trybie 8-bitowym jak i 16-bitowym, co nie ułatwia sprawy. Natomiast co do ilości wyprowadzeń adresowych sprawa jest banalna - pamięć 512 KB (524288 bajtów), czyli 2^19, a więc potrzebujemy 19 linii adresowych. Do tego należy doliczyć 2 piny do zasilania plus 8 pinów - dane I/O i z 32-pinowej obudowy zostają 3 piny wykorzystywane do sterowania. Wszystko to widać na rysunkach w notach katalogowych układów pamięci. Te obliczenia nie przydadzą się jednak w przypadku pamięci LPC/FW HUB, ponieważ tam linie adresowe trzeba multipleksować.
Do programowania pamięci LPC/FW HUB wydaje mi się lepiej jest postarać się wykorzystać tryb A/A Mux, który będzie dużo szybszy i mniej skomplikowany niż tryb FWH.
|
|
| Back to top |
|
 |
DariuszEE Poziom 16

Joined: 08 Feb 2003 Posts: 301 Location: Głosków
|
#26
05 Sep 2010 11:36 Re: Programator pamięci FLASH |
|
|
|
Witam
Na marginesie napiszę że bardzo ładnie zaprojektowany układ
Ale mam jedno pytanie
czy przewidujesz dopisanie obsługi programowania
24cxx
25cxx
46cxx
no i Epromów
Układ jest praktycznie dostosowany
Trzeba by dodać tylko małą przetwornicę sterowaną 2 stanami logicznymi
Dającą 12,5V i 21V i dołożyć klucze na tranzystorach
Co Prawda na procesorze nie masz już wolnych linii , ale masz nie wykorzystane linie sterujące RS232 więc można je wykorzystać , no i nie trzeba by było przerabiać programu procesora , można dołożyć obsługę 8bitowej I/O np. PCF8574 na I2c odsługiwanej w tle na DTR i RTS , CTS w tle
Jeżeli o to chodzi to mogę taki układ zaprojektować gdybyś chciał
Obsługa EPROM-ów by się przydała bo można je stosować do BARDZO wielu rzeczy nie związanych z typowym zastosowaniem a każdy z nas ma pewnie pełną szufladę takich staroci
tak dla przykładu powiem że EPROM-y jak i pamięci FLASH czy EEPROM-y można używać do generatorów jako dekodery i wielu innych rozwiązań
|
|
| Back to top |
|
 |
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#27
08 Sep 2010 21:19 Re: Programator pamięci FLASH |
|
|
|
Na chwilę obecną nie przewiduję dopisywania obsługi wymienionych serii układów pamięci. Myślę, że lepszym sposobem na rozwiązanie braku wolnych linii byłoby po prostu poszukanie odpowiedniejszego mikrokontrolera z większą ilością wyprowadzeń. Jednak od samego początku nie miał to być uniwersalny programator do wszystkich możliwych pamięci. Napisanie programu i algorytmu programowania pamięci, a także opracowanie i zaimplementowanie protokołu komunikacji pochłonęło mnóstwo czasu. Wydawać się może, że od strony sprzętowej rozbudowa byłaby prosta, ale od strony programowej wymagałoby to jeszcze wielu godzin pracy. Idąc tą drogą należałoby w końcu zadać sobie pytanie czy opłaca się udostępniać materiały do budowy takiego programatora za darmo...
|
|
| Back to top |
|
 |
mog123 Poziom 14

Joined: 01 Dec 2006 Posts: 179
|
#28
20 Oct 2010 19:28 Re: Programator pamięci FLASH |
|
|
|
wybacz że odświeżam tak stary temat, ale co zrobić w przypadku gdy flproglite ciągle mi wyrzuca że nie mam zainstalowanego sterownika USB? Mimo iz zaznaczyłem jego instalacje przy instalowaniu softu.
|
|
| Back to top |
|
 |
Chroost Poziom 13

Joined: 18 Jan 2003 Posts: 124
|
#29
20 Oct 2010 19:54 Re: Programator pamięci FLASH |
|
|
|
Instalator sterownika tak na prawdę tylko kopiuje i rejestruje pliki. Dopiero w trakcie pierwszego podłączenia na danym porcie USB te sterowniki są instalowane. Program będzie wyświetlał komunikat o braku sterownika FTDI dopóki nie zostanie po raz pierwszy poprawnie podłączony programator. Jeśli mimo to nadal jest ten komunikat może być tak, że układ konwertera jest uszkodzony lub źle przylutowany, miał wcześniej zmienione numery VID/PID lub nie ma poprawnego połączenia między gniazdem portu USB, a pinami USBDP i USBDM.
|
|
| Back to top |
|
 |
mog123 Poziom 14

Joined: 01 Dec 2006 Posts: 179
|
#30
21 Oct 2010 20:40 Re: Programator pamięci FLASH |
|
|
|
no nie łaczyłem jeszcze, ale dzięki za informację ;)
|
|
| Back to top |
|
 |