Datasheet

PIC24FJ256GB210 FAMILY
DS39975A-page 70 2010 Microchip Technology Inc.
4.2.5.2 Data Write into EDS Space
In order to write data to EDS space, such as in EDS
reads, an Address Pointer is set up by loading the
required EDS page number into the DSWPAG register
and assigning the offset address to one of the W regis-
ters. Once the above assignment is done, then the
EDS window is enabled by setting bit 15 of the working
register, assigned with the offset address, and the
accessed location can be written.
Figure 4-2 illustrates how the EDS space address is
generated for write operations.
FIGURE 4-6: EDS ADDRESS GENERATION FOR WRITE OPERATIONS
When the MSb of EA is ‘1’, the lower 9 bits of DSWPAG
are concatenated to the lower 15 bits of EA to form a
24-bit EDS address for write operations. Example 4-2
shows how to write a byte, word and double-word to
EDS.
EXAMPLE 4-2: EDS WRITE CODE IN ASSEMBLY
DSWPAG Reg
Select
Wn
8
15 Bits9 Bits
24-Bit EA
Wn<0> is Byte Select
1
0
; Set the EDS page where the data to be written
mov #0x0002 , w0
mov w0 , DSWPAG ;page 2 is selected for write
mov #0x0800 , w1 ;select the location (0x800) to be written
bset w1 , #15 ;set the MSB of the base address, enable EDS mode
;Write a byte to the selected location
mov #0x00A5 , w2
mov #0x003C , w3
mov.b w2 , [w1++] ;write Low byte
mov.b w3 , [w1++] ;write High byte
;Write a word to the selected location
mov #0x1234 , w2 ;
mov w2 , [w1] ;
;Write a Double - word to the selected location
mov #0x1122 , w2
mov #0x4455 , w3
mov.d w2 , [w1] ;2 EDS writes