Witam serdecznie
Zwracam sie do was z nastepujacym problemem. Pod procesor PIC18F8722 podczepilem pamiec flash A29800 w trybie "Byte Write Mode". W ww. procesorze sa dostepne predefiniowane polecenia sluzace do obslugi zewnetrznych pamieci, chodzi tu glownie o TBLRD* oraz TBLWT*
Napisalem krotki programik a asemblerze, ktory zapisuje jakas wartosc pod wskazany adres flasha a nastepnie stara sie ja odczytac. Program ten wyglada mniej wiecej tak (na razie nie bede wklejal calego kodu):
- do TBLPTR laduje adres 0x20000
- do TABLAT laduje np. 0xAB
- zapis z uzyciem TBLWT*+
- do TBLPTR laduje adres 0x20000
- odczyt z uzyciem TBLRD*+
- z TABLAT odczytuje moje dane
w wyniku tych operacji uzyskuje zawsze odczyt wartosci 0xFFFF.
Wszystkie rejestry biorace udzial w operacja i/o na flashu sa ustawione na pewno odpowiednio tj. MEMCON=0 a bity konfiguracyjne procesora na 'Extended Microcontroller mode'.
Obecnie uzywam kompilatora CCS dla PIC18. Dostepne sa w nim dodatkowo gotowe procedury zapisu/odczytu z zewnetrznych pamieci flash. Chodzi tu o procedury: setup_external_memory(); write_external_memory(); read_external_memory(); Jednak uzycie powyzszych powoduje identycznie odczyt zawsze 0xFFFF.
Czy ktos bylby tak mily i podpowiedzial o czym moglem zapomniec ?
z wyrazami szacunku Dariusz Borowski