RTV forum PL | NewsGroups PL

Zapis do MainPage w DataFlash AT45DB011 z PIC18F2420 - co może być nie tak?

DataFlash Atmela - problem przy uruchomieniu

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Zapis do MainPage w DataFlash AT45DB011 z PIC18F2420 - co może być nie tak?

Rogher
Guest

Tue Jul 25, 2006 8:36 am   



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

Paweł (0)
Guest

Tue Jul 25, 2006 9:02 am   



Quote:
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 Smile 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

Rogher
Guest

Tue Jul 25, 2006 10:03 am   



Quote:
Miałem jakiś czas temu podobne problemy, ale nie pamiętam
jak je rozwiązałem Smile 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

Marek P.
Guest

Tue Jul 25, 2006 12:01 pm   



Użytkownik Rogher napisał:
Quote:
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 Wink
Marek

Rogher
Guest

Tue Jul 25, 2006 12:06 pm   



Quote:

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 Wink
Marek

Już sprawdzam....

Rogher

Kosma
Guest

Tue Jul 25, 2006 12:33 pm   



Marek P. wrote:
Quote:
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 Wink

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

Rogher
Guest

Tue Jul 25, 2006 12:34 pm   



Quote:

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 Wink
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

Marek P.
Guest

Tue Jul 25, 2006 12:37 pm   



Użytkownik Rogher napisał:

Quote:

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 Wink
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

Rogher
Guest

Tue Jul 25, 2006 12:42 pm   



Marek P. napisał(a):
Quote:
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 Wink
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

Rogher
Guest

Wed Jul 26, 2006 4:52 am   



Quote:


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

Paweł (0)
Guest

Wed Jul 26, 2006 6:44 am   



Quote:
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

Rogher
Guest

Wed Jul 26, 2006 11:08 am   



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

elektroda NewsGroups Forum Index - Elektronika Polska - Zapis do MainPage w DataFlash AT45DB011 z PIC18F2420 - co może być nie tak?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map