DataFlash Atmela - problem przy uruchomieniu
Masz problem? Zapytaj na forum elektroda.pl
From: Rogher <rogher_at_nospam_wp.pl>
Subject: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 10:36:32 +0200
Cześć,
Już ponad tydzień siedzę nad problemem i utknąłem. Może pomożecie.
W systemie jest PIC18F2420 i DataFlash AT45DB011.
Mam problem z zapisem do MainPage'a jakichkolwiek danych.
Co działa:
1) czytam status - działa
2) zapis do bufora SRAM - działa
3) odczyt z bufora SRAM - działa
4) zapis do MainPage a następnie odczyt z MainPage - zwraca tylko FF-y.
Co zabawne - Robię tak:
1) Załadowanie strony nr x do bufora SRAM
2) Zapis nowych danych do bufora
3) zaprogramowanie bufora SRAM do Flash'a
W międzyczasie podglądam sobie timingi i podczas zapisu do Flash'a układ
nawet jest busy przez 15ms czyli jakby programował.
A robię mu potem odczyt a on mi zwraca FF'y. Dla pewności już 1mln razy
sprawdziłem że WP jest podciągnięty do +3V.
Dla chętnych pomocy mogę wrzucić zrzuty z analizatora na priva.
Może ktoś wie co jeszcze może być nie tak.
dzięki i pozdrawiam
Rogher
From: "Paweł \(0\)" <apcom_at_nospam_interia.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 11:02:14 +0200
Już ponad tydzień siedzę nad problemem i utknąłem. Może pomożecie.
W systemie jest PIC18F2420 i DataFlash AT45DB011.
Mam problem z zapisem do MainPage'a jakichkolwiek danych.
Może ktoś wie co jeszcze może być nie tak.
Pokaż co dokładnie wysyłasz w SPI przy nie działających
rozkazach.
Miałem jakiś czas temu podobne problemy, ale nie pamiętam
jak je rozwiązałem :-) Nie wiem czy czasem nie chodziło o to że pomyliłem
rozkazy gdzie należy wysyłać 4 a gdzie 1 dodatkowy bajt pomiędzy
rozkazem a danymi
pozdr
From: Rogher <rogher_at_nospam_wp.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 12:03:52 +0200
Miałem jakiś czas temu podobne problemy, ale nie pamiętam
jak je rozwiązałem :-) Nie wiem czy czasem nie chodziło o to że pomyliłem
rozkazy gdzie należy wysyłać 4 a gdzie 1 dodatkowy bajt pomiędzy
rozkazem a danymi
pozdr
Leci tak (wykrzyknik to jeden kompletny rozkaz z argumentami):
Jeszcze 1 komentarz: 0x33 - to u mnie don't care bits
//sprawdza STATUS i flagę BUSY
1! (CS: 1->0), 0xD7, (czeka na READY), (CS: 0->1)
//MainMemoryToBuffer
2! (CS: 1->0), 0x53, 0x00, 0x00, 0x33, (CS: 0->1)
//STATUS
3! (CS: 1->0), 0xD7, (CS: 0->1)
//BufferWrite
4! (CS: 1->0), 0x84, 0x33, 0x00, 0x00, 'T', 'O', 'M', 'A', 'S', 'Z',
(CS: 0->1)
//STATUS
5! (CS: 1->0), 0xD7, (CS: 0->1)
//BufferToMainMemoryWithBuiltErase
6! (CS: 1->0), 0x83, 0x00, 0x00, 0x33, (CS: 0->1)
//STATUS
7! (CS: 1->0), 0xD7, (tu czeka 15,7ms aż BUSY zostanie skasowane), (CS:
0->1)
i teraz odczyt:
//ContinousArrayRead
8! (CS: 1->0), 0xE8, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x33,
(i teraz DATAFLASH przełącza SDO z 0->1, i puszczam kolejne 10 paczek
impulsów na SCK. Odczyt na linii SDO daje 10 razy 0xFF, (CS: 0->1)
KONIEC.
Dzięki za podejście do tematu
Rogher
From: "Paweł \(0\)" <apcom_at_nospam_interia.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Wed, 26 Jul 2006 08:44:23 +0200
i teraz odczyt:
//ContinousArrayRead
8! (CS: 1->0), 0xE8, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x33,
(i teraz DATAFLASH przełącza SDO z 0->1, i puszczam kolejne 10 paczek
impulsów na SCK. Odczyt na linii SDO daje 10 razy 0xFF, (CS: 0->1)
A spróbuj odczytać flasha do bufora (0x52, 0xD2), a potem odczytać
bufor.
może tak:
zapis do bufora
odczyt z bufora (żeby sobie potwierdzić co tam siedzi)
odczyt flash do bufora
odczyt z bufora
jak tu będzie miał FFy to znaczy że może nie działa zapis do flash
jak będzie ok to odczyt bezpośrednio z flasha nie działa
spróbuj też zapisu poprzez 0x82
pozdr
From: "Marek P." <marco999_at_nospam_vp.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 14:01:25 +0200
Użytkownik Rogher napisał:
Cześć,
Już ponad tydzień siedzę nad problemem i utknąłem. Może pomożecie.
W systemie jest PIC18F2420 i DataFlash AT45DB011.
Mam problem z zapisem do MainPage'a jakichkolwiek danych.
Co działa:
1) czytam status - działa
2) zapis do bufora SRAM - działa
3) odczyt z bufora SRAM - działa
4) zapis do MainPage a następnie odczyt z MainPage - zwraca tylko FF-y.
Co zabawne - Robię tak:
1) Załadowanie strony nr x do bufora SRAM
2) Zapis nowych danych do bufora
3) zaprogramowanie bufora SRAM do Flash'a
W międzyczasie podglądam sobie timingi i podczas zapisu do Flash'a układ
nawet jest busy przez 15ms czyli jakby programował.
A robię mu potem odczyt a on mi zwraca FF'y. Dla pewności już 1mln razy
sprawdziłem że WP jest podciągnięty do +3V.
Dla chętnych pomocy mogę wrzucić zrzuty z analizatora na priva.
Może ktoś wie co jeszcze może być nie tak.
dzięki i pozdrawiam
Rogher
Witam,
Dobry "hint" na DF to dobry elektrolit/tantal na nogach zasilania.
Często gdy magazyn energii jest za daleko, rozkazy zapisu/kasowania
Flasha są błędne. Przećwiczone wiele razy. Już zastanawiałem się kiedyś,
czy nie zrobić DF+tantal jako 1 element biblioteczny ;)
Marek
From: Rogher <rogher_at_nospam_wp.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 14:06:35 +0200
Witam,
Dobry "hint" na DF to dobry elektrolit/tantal na nogach zasilania.
Często gdy magazyn energii jest za daleko, rozkazy zapisu/kasowania
Flasha są błędne. Przećwiczone wiele razy. Już zastanawiałem się kiedyś,
czy nie zrobić DF+tantal jako 1 element biblioteczny ;)
Marek
Już sprawdzam....
Rogher
From: Kosma <kosmam.SPAMMERS_at_nospam_GO.TO.HELL.op.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 14:33:10 +0200
Marek P. wrote:
Dobry "hint" na DF to dobry elektrolit/tantal na nogach zasilania.
Często gdy magazyn energii jest za daleko, rozkazy zapisu/kasowania
Flasha są błędne. Przećwiczone wiele razy. Już zastanawiałem się kiedyś,
czy nie zrobić DF+tantal jako 1 element biblioteczny ;)
Ja miałem podobne problemy z AT89C2051. Tak często zapominałem o
odsprzęganiu zasilania lizaczkiem 100n, że zacząłęm przylutowywać
kondensatory od góry do nóg zasilania procka. Wygląda to śmiesznie, ale
działa niezawodnie... bo nie muszę pamiętać o kondensatorze.
W ogóle te kondensatorki powinny być zintegrowane. :P
Kosma
From: Rogher <rogher_at_nospam_wp.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 14:34:01 +0200
Witam,
Dobry "hint" na DF to dobry elektrolit/tantal na nogach zasilania.
Często gdy magazyn energii jest za daleko, rozkazy zapisu/kasowania
Flasha są błędne. Przećwiczone wiele razy. Już zastanawiałem się kiedyś,
czy nie zrobić DF+tantal jako 1 element biblioteczny ;)
Marek
Niestety, nie pomogło.
Wstawiłem najbliżej jak się dało tantala 22u + 100u (niskoimpedancyjny)
+ 1000u (jakiś zwykły). Bez zmian.
A wcześniej też podejrzewałem jakiś problem może od tej strony i
podłączyłem oscyloskop do zasilania DataFlash'a. Nie udało mi się jednak
zarejestrować żadnego skoku. Także to chyba nie o to chodzi...
Ale do dalszych prób - kondensatory te zostawiam :)
Rogher
From: "Marek P." <marco999_at_nospam_vp.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 14:37:35 +0200
Użytkownik Rogher napisał:
Witam,
Dobry "hint" na DF to dobry elektrolit/tantal na nogach zasilania.
Często gdy magazyn energii jest za daleko, rozkazy zapisu/kasowania
Flasha są błędne. Przećwiczone wiele razy. Już zastanawiałem się
kiedyś, czy nie zrobić DF+tantal jako 1 element biblioteczny ;)
Marek
Niestety, nie pomogło.
Wstawiłem najbliżej jak się dało tantala 22u + 100u (niskoimpedancyjny)
+ 1000u (jakiś zwykły). Bez zmian.
A wcześniej też podejrzewałem jakiś problem może od tej strony i
podłączyłem oscyloskop do zasilania DataFlash'a. Nie udało mi się jednak
zarejestrować żadnego skoku. Także to chyba nie o to chodzi...
Ale do dalszych prób - kondensatory te zostawiam :)
Rogher
Piszesz w C?
Jesli chcesz podeśle Ci sprawdzone procedurki. Ja oczwiscie mam na AVRki
, ale to juz przerobisz sobie.
Marek
From: Rogher <rogher_at_nospam_wp.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Tue, 25 Jul 2006 14:42:12 +0200
Marek P. napisał(a):
Użytkownik Rogher napisał:
Witam,
Dobry "hint" na DF to dobry elektrolit/tantal na nogach zasilania.
Często gdy magazyn energii jest za daleko, rozkazy zapisu/kasowania
Flasha są błędne. Przećwiczone wiele razy. Już zastanawiałem się
kiedyś, czy nie zrobić DF+tantal jako 1 element biblioteczny ;)
Marek
Niestety, nie pomogło.
Wstawiłem najbliżej jak się dało tantala 22u + 100u
(niskoimpedancyjny) + 1000u (jakiś zwykły). Bez zmian.
A wcześniej też podejrzewałem jakiś problem może od tej strony i
podłączyłem oscyloskop do zasilania DataFlash'a. Nie udało mi się
jednak zarejestrować żadnego skoku. Także to chyba nie o to chodzi...
Ale do dalszych prób - kondensatory te zostawiam :)
Rogher
Piszesz w C?
Jesli chcesz podeśle Ci sprawdzone procedurki. Ja oczwiscie mam na AVRki
, ale to juz przerobisz sobie.
Marek
Tak, w C. Jeżeli możesz to podrzuć - może podratuje.
dzięki
From: Rogher <rogher_at_nospam_wp.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Wed, 26 Jul 2006 06:52:31 +0200
Piszesz w C?
Jesli chcesz podeśle Ci sprawdzone procedurki. Ja oczwiscie mam na AVRki
, ale to juz przerobisz sobie.
Marek
Witam,
Temat cały czas aktualny. Porównałem procedurki od Marka ze swoimi. Mam
właściwie identyczne. A kod już jest tak prosty że prostszy nie może
być. Tymbardziej że mam podgląd na analizatorze i widzę co idzie
faktycznie po SPI.
Co jeszcze może być powodem że nie chce programować Main Memory?
(przypominam, że do buforów SRAM zapisuje i odczytuje z nich)
A może jest jakiś hint aby odczytać z MainPage'a. Może zapisało a nie
mogę odczytać???
Proszę o wsparcie a ja w międzyczasie mam jeszcze 1 pomysł. Zmajstruję
programator A. Dybkowskiego i podejrzę na analizatorze jak wygląda zapis
i odczyt czegoś co działa.
A może WriteProtect jest na stałe zablokowany mimo pina podwieszonego???
Zdażyło się kiedyś komuś?
pozdrawiam
Rogher
From: Rogher <rogher_at_nospam_wp.pl>
Subject: Re: DataFlash Atmela - problem przy uruchomieniu
Date: Wed, 26 Jul 2006 13:08:01 +0200
Witam,
Na chwilę obecną wylutowałem DataFlasha z PCB podłączyłem go na pająku
do portu LPT (wg opisu A. Dybkowskiego, lecz bez buforów 74LVC244),
zasiliłem 3,3V, podłączyłem kondensatory na zasilaniu (22u tantal + 100u
niskoimp. + 1000u) i odpaliłem ISPProg'a.
linie WP i RST podłączyłem twardo do 3,3V.
1. Czyta sygnaturę poprawnie.
2. Próba zapisu kończy się WriteError ("powinno być 0x54 a jest 0xFF").
Podejrzałem sobie timingi z programatora - identyko jak u mnie i u Marka P.
Stawiam na uszkodzoną kość, co objawia się brakiem możliwości zapisu do
MainMemory (lub odczytu z niej). Zamówiłem nowe kości. Dam znać jak
dostanę i przetestuję.
Rogher