Pokrewne
menu      BIG BIG problema
menu      problem z wyświetlaniem strony, wyświetla się skrypt zamiast strony
menu      Problem z serwerem RPS, serwer nie odpowiada
menu      MS Vista Business: Ubuntu Desktop 8.04 RPS przez NX Client Desktop Edition [Problem]
menu      Problem z instalacją Quick.Cms/Quick.Cart na 60gp
menu      głośniki 7.1 i Vista problem - brak dźwieku w bocznych głośnikach
menu      problem wyboru zasilania dla laptopa DELL (zasilacz samochodowy)
menu      Problem z mysql ERROR 2002 (HY000): Can't connect to local MySQL server through...
menu      Problem z FTP 530 Sorry, the maximum number of allowed clients (16) are already conne
menu      Samsung DVD-VR350 problem z kolorami, wszystko czarno-biale nawet MENU :(
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • chude.opx.pl
  • DataFlash Atmela - problem przy uruchomieniu





    Rogher - 15-08-2006 19:29
    DataFlash Atmela - problem przy uruchomieniu
      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\) - 15-08-2006 19:30

      > 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




    Rogher - 15-08-2006 19:30

      > 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




    Marek P. - 15-08-2006 19:30

      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





    Rogher - 15-08-2006 19:30

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




    Kosma - 15-08-2006 19:30

      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




    Rogher - 15-08-2006 19:30

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




    Marek P. - 15-08-2006 19:30

      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




    Rogher - 15-08-2006 19:30

      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




    Rogher - 15-08-2006 19:30

     
    >>
    >>
    > 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\) - 15-08-2006 19:30

      > 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 - 15-08-2006 19:30

      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
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com