Creative SB0350 Hardware Programming Guide - Page 51
Creative SB0350 Manual
View all Creative SB0350 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 51 highlights
3-22 Digitized Sound I/O Programming 8. Set the DSP block transfer size. outp(wSBCBaseAddx+0xC, 0x48) outp(wSBCBaseAddx+0xC, wBlkSize.LowByte) outp(wSBCBaseAddx+0xC, wBlkSize.HighByte) wBlkSize is one less than the actual transfer size. 9. Send an I/O command to start high-speed single-cycle DMA mode transfer. outp(wSBCBaseAddx+0xC, bCommand) bCommand is one of the following: bCommand 99h 91h Description 8-bit PCM high-speed input 8-bit PCM high-speed output Upon receiving an interrupt from the DSP, the following steps should be done in the interrupt service routine: 1. 2. Program the DMA controller for subsequent block. Set the DSP block size and program the DSP for the next block. At the end of data transfer: 1. Restore the filter status. a. b. For stereo input: outp(wSBCBaseAddx+0x4, 0xC) outp(wSBCBaseAddx+0x5, bInputFilter) For stereo output: outp(wSBCBaseAddx+0x4, 0xE) outp(wSBCBaseAddx+0x5, bOutputFilter) 2. Set the hardware to mono mode. a. b. For stereo input: outp(wSBCBaseAddx+0xC, 0xA0) For stereo output: outp(wSBCBaseAddx+0x4, 0xE) bTmp = inp(wSBCBaseAddx+0x5) outp(wSBCBaseAddx+0x5, (bTmp & 0xFD)) 3. 4. 5. Turn off the DAC speaker. outp(wSBCBaseAddx+0xC, 0xD3) Disable the interrupt used. Restore the original interrupt service routine. During high-speed DMA mode data I/O, the DSP will not accept any commands. Hence, to stop data transfer before the end of a block, send the reset DSP command.