EasyManua.ls Logo

NXP Semiconductors LPC1768 - Page 193

NXP Semiconductors LPC1768
841 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 19 December 2013 193 of 841
NXP Semiconductors
UM10360
Chapter 10: LPC176x/5x Ethernet
After reset, the values of the DMA registers will be zero. During initialization, the device
driver will allocate the descriptor and status array in memory. In this example, an array of
four descriptors is allocated; the array is 4x2x4 bytes and aligned on a 4 byte address
boundary. Since the number of descriptors matches the number of statuses, the status
array consists of four elements; the array is 4x2x4 bytes and aligned on a 8 byte address
boundary. The device driver writes the base address of the descriptor array
(0x2008 10EC) in the RxDescriptor register, and the base address of the status array
(0x2008 11F8) in the RxStatus register. The device driver writes the number of descriptors
and statuses minus 1 (3) in the RxDescriptorNumber register. The descriptors and
statuses in the arrays need not be initialized yet.
After allocating the descriptors, a fragment buffer needs to be allocated for each of the
descriptors. Each fragment buffer can be between 1 byte and 2 k bytes. The base
address of the fragment buffer is stored in the Packet field of the descriptors. The number
of bytes in the fragment buffer is stored in the Size field of the descriptor Control word.
The Interrupt field in the Control word of the descriptor can be set to generate an interrupt
as soon as the descriptor has been filled by the receive process. In this example the
fragment buffers are 8 bytes, so the value of the Size field in the Control word of the
descriptor is set to 7. Note that in this example, the fragment buffers are actually a
Fig 22. Receive Example Memory and Registers
PACKET
0x20081409
RxStatus
0x200811F8
RxDescriptor
0x200810EC
0x200810EC
0x200810F0
0x200810F4
0x200810F8
0x200810FC
0x20081100
0x20081104
0x20081108
0x200811F8
0x
20081200
0x
20081208
0x
20081210
PACKET
0x20081411
PACKET
0x20081419
PACKET
0x20081325
descriptor array
Descriptor 0Descriptor 1Descriptor 2Descriptor 3
descriptor array
fragment buffers
RxProduceIndex
RxConsumeIndex
RxDescriptorNumber = 3
Status 1 Status 0Status 3 Status 2
status array
status array
FRAGMENT 1 BUFFER (8 bytes)
FRAGMENT 0 BUFFER (8 bytes)
FRAGMENT 2 BUFFER (3 bytes)
FRAGMENT 3 BUFFER (8 bytes)
17CONTROL
17CONTROL
17
CONTROL
17
CONTROL
StatusInfo 7
StatusHashCRC
StatusInfo 7
StatusHashCRC
StatusInfo 7
StatusHashCRC
StatusInfo 2
StatusHashCRC
0x20081409
0x20081410
0x20081411
0x20081418
0x20081325
0x2008132C
0x20081419
0x2008141B

Table of Contents

Other manuals for NXP Semiconductors LPC1768

Related product manuals