Kto programował Flasha AM29F...

Mar 22, 2005 13 Replies

Potrzebuje kontaktu z osobą która zapisywała dane do tego Flasha z zewnętrznego układu mikroprocesorowego ( nie chodzi mi o programatory uniwersalne, bo w tym mi działa pamięć). Dzieki z góry...



Użytkownik snipped-for-privacy@neostrada.pl napisał:

Programowalem ja w systemie z procesora. Co nie gra ?

Adam

Użytkownik "Górski Adam" <gorskia@____wp.pl> napisał w wiadomości news:d1phj9$1rf$ snipped-for-privacy@nemesis.news.tpi.pl...

O fajnie, bo mam ogólnie problem z zapisem i wyczyszczeniem tej pamięci. W programatorze uniwersalnym chodzi ok, ale sterując mikrokontrolerem nie łyka mi sekwencji do zapisu(czy też do skasowania).

1.Czy do zapisu danej w trybie word (#BYTE-HIGH) używasz tej sekwencji: addr/data = 555/AA , 2AA/55, 555/A0, PA/PD, bo nie wiem czy nie ma błedu w manualu? 2.Czy resetujesz pamięć przed zapisem? 3.Czy tok rozumowania zapisywania tej pamięci jest oki? ;początek set_HIGH #CE (na początku ustawiam je na HIGH) set_HIGH #OE set_HIGH #WE ;zapis(word mode) address 555 data AA set_LOW #CE set_LOW #WE set_HIGH #WE set_HIGH #CE

address 2AA data 55 set_LOW #CE set_LOW #WE set_HIGH #WE set_HIGH #CE

address 555 data A0 set_LOW #CE set_LOW #WE set_HIGH #WE set_HIGH #CE

address PA data PD set_LOW #CE set_LOW #WE set_HIGH #WE set_HIGH #CE Czy robisz podobnie? Czy za każdym razem robisz tak jak powyżej czy #CE mozna trzymać cały czas wysoko na poczatku programu #CE- high?

  1. Czy są jeszcze jakieś warunki które trzeba spełnić by zapisać daną do komórki?
  2. Czy można zapisać pojedyncza daną do jednej komórki czy trzeba zapisaywać cały sektor?
  3. Jak mozesz to wklej mi kawałek swojego programu związanego z zapisem danych do tej kośći? Ja to robie w asemblerze ale powinienem dojść mniejwiecej w innych jezykach?

Troche sie mecze z ta pamiecią i byłby oograomnie wdzieczny za pomoc. Dzieki z góry...

Użytkownik snipped-for-privacy@neostrada.pl napisał:

........................

1.Jaki procesor ? 2.Jak podłączona pamięć flash? Jedna kostka ? dostęp 8,16,32 bitowy ?

Bez tego nie da rady.

Adam

Użytkownik snipped-for-privacy@neostrada.pl napisał:

Dokładnie. unsigned int BDM_Flash_Write_16(unsigned int Address,unsigned short Data) { unsigned short data=0; BDM_Write_Memory_16(0x555<<1,0x00AA); BDM_Write_Memory_16(0x2AA<<1,0x0055); BDM_Write_Memory_16(0x555<<1,0x00A0); BDM_Write_Memory_16(Address,Data); if (BDM_Flash_Pool(Address,Data)==BDM_ERROR) return BDM_ERROR; BDM_Read_Memory_16(Address,&data); if (Data==data) return BDM_SUCCESS; return BDM_ERROR; }

Tylko ja u siebie musiałem przesunąć o jeden bit adres bo miałem adresy podpięte od A1 bo organizacja 16 bitów. I pewnie Ty masz z tym problem.

Nie

Normalny cykl dostępu do pamięci. Ja używam CE,OE,WE.

Normalny cykl dostępu do pamięci. Jak w dokumentacji.

Nie.

Podział na sektory bardziej dotyczy kasowania. Zapisać można dowolna ilosc.

jak wyżej.

E no coś ty ?

Adam

Użytkownik "Górski Adam" <gorskia@____wp.pl> napisał w wiadomości news:d1r9v8$3p8$ snipped-for-privacy@nemesis.news.tpi.pl...

  1. Mam MSP430F149, Texasa
  2. Mam jedną kość i ustawiłem ją w tryb word,czyli 16bitów, natomiast połączenia to mam nastepujące: A0 - P2.0 (port I/O 2) lsb A1 - P2.1 . . A7 - P2.7 A8 - P3.0 . . A15 - P3.7 A16 - P1.7 msb D0 - P4.0 lsb \ . \ . \ D15- P5.7 msb \dane #RESET+#BYTE are connected to Vcc-5V #RY/BY pin podłączony do Vcc przez 5kohm

e.g.Wystawiając adres 555 : (lsb...msb = P2.0...P3.7) P2=55h P3=05h Powinno być ok. Niby nie skomplikowane a nie chodzi:(

Użytkownik "Górski Adam" <gorskia@____wp.pl> napisał w wiadomości news:d1rcsf$169$ snipped-for-privacy@nemesis.news.tpi.pl...

[cut]

Ja u siebie podpiołem adresy zaczynając od A0 i to jest najmłodszy bit adresu. Własnie mnie coś olśniło... czy jesli mam ustawione na #BYTE-high, czyli pracuje w trybie word 16bitow, to musze podpiąć najmłodszy adres do A1, a nie tak jak u mnie A0?? I wtedy przy przesunietym połączeniu wystawiać te adresy 555..2AA..itd??

Użytkownik snipped-for-privacy@neostrada.pl napisał:

Ja bym proponował podłączyc reset do resetu systemowego lub zrobic go programowo. Kosc moze byc w dziwnym stanie.

Adam

Nie, A0 u mnie jest podpiete do A1 procesora. Ale to tylko moj przypadek

Adam

Użytkownik "Górski Adam" <gorskia@____wp.pl> napisał w wiadomości news:d1rplf$c7c$ snipped-for-privacy@nemesis.news.tpi.pl...

Ale twoj A1 procesora traktujesz jako najmłodszy bit, i poczawszy od tego bitu wystawiasz adresy w procku 555..2AA..?

Użytkownik snipped-for-privacy@neostrada.pl napisał:

Bo mam fizycznie podpiete A1 procesora do A0 po stronie flasha - jest to zwiazane z procesorem a nie z flashem. W twoim przypadku powinno byc bez tego shiftowania.

Adam

Użytkownik snipped-for-privacy@neostrada.pl napisał:

Udało sie ?

Adam

Użytkownik "Górski Adam" <gorskia@____wp.pl> napisał w wiadomości news:d1s2k6$k8a$ snipped-for-privacy@nemesis.news.tpi.pl...

Jeszcze nie:( nie mam pojęcia co robie źle, niby to jest prose, a jednak:(

Użytkownik snipped-for-privacy@neostrada.pl napisał:

Moj numer GG : 2346707 Lub skype : gorskia

Bede okolo 20:00 - 21:00 dostepny. Problem jest na pewno trywialny. Jezeli kolega chce mozemy podyskutowac nad rozwiazaniem.

Adam

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required