Creative SB0350 Hardware Programming Guide - Page 34

Creative SB0350 Manual

Page 34 highlights

Digitized Sound I/O Programming 3-5 Single-cycle DMA Mode In single-cycle DMA mode digitized sound I/O transfer, the DSP is programmed to make one transfer only. The DSP will generate an interrupt to signal the application at the end of the transfer. Due to DMA constraints, the digitized sound data transfer cannot straddle a 64 KB physical page boundary. Thus, to transfer digitized sound data that reside across a 64 KB physical page boundary, it has to be divided into sub-blocks within a physical page boundary. Each sub-block must not straddle the physical page boundary and may be of different sizes (but not more than 64 KB each). The DMA controller and DSP are then programmed to transfer the data sub-block by sub-block. At the end of a sub-block transfer, the DSP will generate an interrupt to the application. On receiving the interrupt, the application reprograms the DMA controller and DSP with the size of the subsequent sub-block. All sub-blocks are transferred until the data is exhausted. Under single-cycle DMA mode, 8-bit unsigned PCM, 16-bit signed PCM, and ADPCM compressed data transfers are supported. Auto-initialize DMA Mode In auto-initialize DMA mode digitized sound I/O transfer, the DMA controller and DSP need only be programmed once with the block transfer size for the transfer to begin. When the DMA controller's transfer count "rolls over" from zero to FFFF hex, the DMA controller will automatically reload the transfer address and count. The DSP will generate interrupts to the application at constant intervals, according to the programmed block transfer size. Usually, the double-buffering method is used for auto-initialize DMA mode transfer. The application allocates a stationary DMA buffer which must not straddle a 64 KB physical page boundary. The DSP block transfer size is then set to half of the DMA buffer size. After every DSP block size transfer, the DSP will generate an interrupt. On receiving the interrupt, the application can then transfer data to/from (depending on playback/recording) that half of the DMA buffer whose data has just been transferred.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141

Digitized Sound I/O Programming
3-5
Single-cycle DMA Mode
In single-cycle DMA mode digitized sound I/O transfer, the DSP is programmed to
make one transfer only.
The DSP will generate an interrupt to signal the application
at the end of the transfer.
Due to DMA constraints, the digitized sound data transfer cannot straddle a 64 KB
physical page boundary.
Thus, to transfer digitized sound data that reside across a 64
KB physical page boundary, it has to be divided into sub-blocks within a physical
page boundary.
Each sub-block must not straddle the physical page boundary and
may be of different sizes (but not more than 64 KB each).
The DMA controller and
DSP are then programmed to transfer the data sub-block by sub-block.
At the end of
a sub-block transfer, the DSP will generate an interrupt to the application.
On
receiving the interrupt, the application reprograms the DMA controller and DSP with
the size of the subsequent sub-block.
All sub-blocks are transferred until the data is
exhausted.
Under single-cycle DMA mode, 8-bit unsigned PCM, 16-bit signed PCM, and
ADPCM compressed data transfers are supported.
Auto-initialize DMA Mode
In auto-initialize DMA mode digitized sound I/O transfer, the DMA controller and
DSP need only be programmed once with the block transfer size for the transfer to
begin.
When the DMA controller's transfer count "rolls over" from zero to FFFF hex,
the DMA controller will automatically reload the transfer address and count.
The
DSP will generate interrupts to the application at constant intervals, according to the
programmed block transfer size.
Usually, the
double-buffering
method is used for auto-initialize DMA mode transfer.
The application allocates a stationary DMA buffer which must not straddle a 64 KB
physical page boundary.
The DSP block transfer size is then set to half of the DMA
buffer size.
After every DSP block size transfer, the DSP will generate an interrupt.
On receiving the interrupt, the application can then transfer data to/from (depending
on playback/recording) that half of the DMA buffer whose data has just been
transferred.