www.iDNES.cz Zprávy | Sport | Revue | Ekonomika | Finance | Mobil | Technet | Hry | Auto | Reality | Cestování | Zdraví | více
reklama

SPRINTER












ikonka pro Vás

 
   
     
Od:
David Luftner
Datum:
25.10.2004 18:23
Předmět:
Rozsireni Ramky


Rozsireni Ramky:

Tak uz mam prvni krok za sebou:

Mam naprogramovanou Flash romkou sharpa a ram pamet na testovaci desce mimo sharp. Zatim neni zapojeno zadne mapovani ramky ani romky takze z 512k ram pouzivam 64 a z 512k flash 16k. Ale alespon to funguje.

V priloze posilam jak jsem programoval na Sharpu Flash.  


FlashPGM.txt:

Schema:

        /---------------\            /---------------\      
 /----------------\
A06-----|A0 | LS138 |/Q0|     D0-----|D0 | LS273 | Q0|-------|A8 | 29F010 |
D0|-----D0
A07-----|A1 |       |/Q1|     D1-----|D1 |       | Q1|-------|A9 | amd    |
D1|-----D1
A01-----|A2 |       |/Q2|     D2-----|D2 |       | Q2|-------|A10|        |
D2|-----D2
        |   |       |/Q3|     D3-----|D3 |       | Q3|-------|A11|        |
D3|-----D3
        |   |       |/Q4|     D4-----|D4 |       | Q4|-------|A12|        |
D4|-----D4
A02-----|/E0|       |/Q5|     D5-----|D5 |       | Q5|-------|A13|        |
D5|-----D5
A03-----|/E1|       |/Q6|     D6-----|D6 |       | Q6|-------|A14|        |
D6|-----D6
A04-----|E2 |       |/Q7|--\  D7-----|D7 |       | Q7|-------|A15|        |
D7|-----D7
        \---------------/  |    Ucc--|/MR|       |   |  Ucc--|A16|        |  
|
                           |  /------|CP |       |   |  Ucc--|A17|        |  
|
     /---------------------/  |      \---------------/  Ucc--|A18|        |  
|
     |                        |                      A08-----|A0 |       
|/OE|-----/RD
     |	/---------------\     |                      A09-----|A1 |       
|/WR|-----/WR
A00-----|A0 | LS138 |/Q0|-----/                      A10-----|A2 |        |  
|
     \--|A1 |       |/Q1|-----\                      A11-----|A3 |        |  
|
     \--|A2 |       |/Q2|     |                      A12-----|A4 |        |  
|
     |  |   |       |/Q3|     |                      A13-----|A5 |        |  
|
     |  |   |       |/Q4|     |                      A14-----|A6 |        |  
|
     \--|/E0|       |/Q5|     |                      A15-----|A7 |        |  
|
/IORQ---|/E1|       |/Q6|     |                              |   |        |  
|
A05-----|E2 |       |/Q7|     \------------------------------|/CS|        |  
|
        \---------------/                                   
\----------------/



A ROMku jsem naprogramoval. Nasledujici program je pro Flash AMIC 29F040A z GM

;-------------------------------------------------------------------------------
--------------------
; Cteni 16k z Flash 0c000h - 0ffffh na adresy v ram 08000h- 0Bfffh
;-------------------------------------------------------------------------------
--------------------
1200	ld	HL, 0bfffh	21 FF BF	; adresa posledniho bajtu v ram
   3	ld	BC, 0ff31h	01 31 FF	; B = pocitadlo, C = datovy port
   6	xor	A		AF		; A = vyssi bajt adresy Flash +1
   7	dec	A		3D		; vyssi bajt adresy Flash -1
   8	out	(030h), A	D3 30		; posli vyssi bajt adresy Flash
   A	indr			ED BA		; cti 255 bajtu z Flash
   C	ind			ED AA		; cti 1 bajt z Flash
   E	cp	0c0h		FE C0		; cetli jsme naposled?
1210	jr	NZ, 01207h	20 F5		;    ne cti dalsi
   2	ret			C9		; konec

;-------------------------------------------------------------------------------
--------------------
; Posli programovaci sequenci do Flash: 5555-AA, 2AAA-55, 5555-(A)
;-------------------------------------------------------------------------------
--------------------
6000	ld	DE, 05555h	11 55 55	; 3 adresa do DE

;-------------------------------------------------------------------------------
--------------------
; Posli programovaci sequenci do Flash: 5555-AA, 2AAA-55, (DE)-(A)
;-------------------------------------------------------------------------------
--------------------
6003	push	DE		D5		; uloz hodnoty
   4	push	AF		F5
   5	ld	DE, 05555h	11 55 55	; 1 adresa
   8	ld	A, 0aah		3E AA		; 1 slovo
   A	call	06017h		CD 17 60	;    posli
   D	ld	DE, 02AAAh	11 AA 2A	; 2 adresa
6010	ld	A, 055h		3E 55		; 2 slovo
   2	call	06017h		CD 17 60	;    posli
   5	pop	AF		F1		; obnov hodnoty
   6    pop     DE		D1

;-------------------------------------------------------------------------------
--------------------
; Posli bajt z 'A' na adresu 'DE' ve Flash
;-------------------------------------------------------------------------------
--------------------
6017	ld	C, 030h		0E 30		; port adresy
   9	out	(C), D		ED 51		; posli adresu
   B	inc	C		0C		; datovy port
   C	ld	B, E		43		; do 'B' dej nizzsi bajt adresy
   D	out	(C), A		ED 79		; posli bajt
   F	ret			C9

;-------------------------------------------------------------------------------
--------------------
; Cti bajt z adresy 'DE' ve Flash do 'A'
;-------------------------------------------------------------------------------
--------------------
6020	ld	C, 030h		0E 30		; port adresy
   2	out	(C), D		ED 51		; posli adresu
   4	inc	C		0C		; datovy port
   5	ld	B, E		43		; do 'B' dej nizzsi bajt adresy
   6	in	A, (C)		ED 78		; cti bajt
   F	ret			C9

;-------------------------------------------------------------------------------
--------------------
; Programuj bajt HL-adresa bajtu v pameti, DE-adresa bajtu ve flash
;-------------------------------------------------------------------------------
--------------------
6029	call	0604eh		CD 4E 60	; reset Flash
   C	call	06020h		CD 20 60	; cti bajt
   F	cp	(HL)		BE		; je shodny?
6030    ret	Z		C8		;    pokud ano nic neprogramuj
   1	push	DE		D5		; schovej adresu
   2	ld	A, 0a0h		3E A0
   4	call	06000h		CD 00 60	; posli 5555-AA, 2AAA-55, 5555-A0
   7	pop	DE		D1		; obnov adresu
   8	ld	A, (HL)		7E		; do A bajt
   9    call	06017h		CD 17 60	;    a posli
   C	and	080h		E6 80		; orizni na 7 bit
   E	ld	C, A		4F		;    a uloz do C
   F	push	BC		C5
6040	call	06020h		CD 20 60	; cti bajt
   3    pop	BC		C1
   4	ld	B, A		47		; uloz precteny bajt do B
   5    and	080h		E6 80		; orizni na 7 bit
   7	cp	C		B9		; shoduje se?
   8	jr	Z, 0604eh	28 04		;    ano konec (reset Flash)
   A	bit	5, B		CB 68		; je konec programovani?
   C	jr	NZ, 0603fh	20 F1		;    ne testuj dal

;-------------------------------------------------------------------------------
--------------------
; Reset Flash
;-------------------------------------------------------------------------------
--------------------
604E	ld	A, 0f0h		3E F0
6050	out	(031h), A	D3 31
   2	ret			C9

;-------------------------------------------------------------------------------
--------------------
; Sektor Erase
;-------------------------------------------------------------------------------
--------------------
6053	call	0604eh		CD 4E 60	; reset Flash
   6	push	DE		D5
   7	ld	A, 080h		3E 80
   9	call	06000h		CD 00 60	; posli 5555-AA, 2AAA-55, 5555-80
   C	pop	DE		D1
   D	ld	A, 030h		3E 30
   F	call	06003h		CD 03 60	; posli 5555-AA, 2AAA-55, (DE)-30
6062	ld	B, 0		06 00		; chvili cekej
   4    ex	(SP), HL	E3		;    kdyz necekala tak mi Flashka nahodne
   5	djnz	06064h		10 FD		;    kolabovala v nasledujici operaci
   7	call	06020h		CD 20 60	; cti bajt
   A	rlca			07		; je 7 bit v jednicce
   B    jr	NC, 06062h	30 F5		;    kdyz ne tak cekej
   D	jr	0604eh		18 DF		; a udelej reset

;-------------------------------------------------------------------------------
--------------------
; HLAVNI PROGRAM - 16k z ram 02000h- 05fffh do Flash 0c000h - 0ffffh
;-------------------------------------------------------------------------------
--------------------
; kontrola
606F	call	0604eh		CD 4E 60	; reset Flash
6072	ld	HL, 02000h	21 00 20	; adresa v pameti
   5	ld	DE, 0c000h	11 00 C0	; adresa Flash
   8	ld	C, 0		0E 00		; stav kontroly 1=nutnost programovat
   A	push	BC		C5
   B	call	06020h		CD 20 60	; cti bajt
   E	pop	BC		C1
   F	cp	(HL)		BE		; je to shodne?
6080	jr	Z, 06089h	28 07		;    pokud ano tak dalsi bajt
   2	and	(HL)		A6		; test zda je mozno Flash programovat
   3    cp	(HL)		BE		;    nebo je nutno nejdrive
   4	call	NZ, 06053h	C4 53 60	;    sektor vymazat
   7	ld	C, 1		0E 01		; stav kontroly - nutno programovat
   9	inc	HL		23
   A	inc	DE		13
   B	ld	A, D		7A		; jeste mame
   C	or	A		B7		;    dalsi bajt?
   D	jr	NZ, 0607ah	20 EB		;    ano tak dalsi
   F	dec	C		0D		; je nutno Flash programovat?
6090	ret	NZ		C0		;    kdyz ne tak konec
; programovani
6091	ld	HL, 02000h	21 00 20	; adresa v pameti
   4	ld	DE, 0c000h	11 00 C0	; adresa Flash
   7	call	06029h		CD 29 60	; programuj bajt
   A	inc	HL		23
   B	inc	DE		13
   C	ld	A, D		7A		; jeste mame
   D	or	A		B7		;    dalsi bajt?
   E	jr	NZ, 06097h	20 F7		;    ano tak dalsi
; kontrola naprogramovani
60A0	ld	HL, 01fffh	21 FF 1F	; adresa v pameti -1
   3	ld	DE, 0bfffh	11 FF BF	; adresa Flash -1
   6	inc	HL		23
   7	inc	DE		13
   8	ld	A, D		7A		; jeste mame
   9	or	A		B7		;    dalsi bajt?
   A	ret	Z		C8		;    ne konec
   B	call	06020h		CD 20 60	; cti bajt
   E	cp	(HL)		BE		; shoduji se?
   F	jr	Z, 060a6	28 F5		;    ano testuj dalsi
60B1	call	03c3		CD C3 03	; vypis bajt z Flash
   4	call	0ch		CD 0C 00	; vypis mezeru
   7	call	03bah		CD BA 03	; vypis adresu pameti
   A	call	0ch		CD 0C 00	; vypis mezeru
   D	ld	A, (HL)		7E
   E	jp	03c3h		C3 C3 03	; vypis bajt z pameti

   
     

 

(c) 2002, MAFRA a.s.
Všechna práva vyhrazena. Společnost MAFRA a.s. nenese jakoukoliv zodpovědnost
za obsah rozesílaných příspěvků, nesou ji výlučně jejich autoři. Autoři jsou povinni respektovat pravidla