34 #if defined(USB_DEVICE_ROM_DRIVER)
52 #define AUDIO_MAX_SAMPLE_FREQ 48000
54 #define AUDIO_SPEEP_UP_TRIGGER (audio_buffer_size*5/8)
56 #define AUDIO_NORMAL_SPEED_TRIGGER (audio_buffer_size*3/8)
64 #define AUDIO_MAX_PC 10
83 #if defined(__LPC18XX__ )
90 {0x3F, {0x2D, 0xF7}, {0x02, 0x0B}},
92 {0x3F, {0x40, 0xFF}, {0x01, 0x04}},
96 {0x3F, {0x80, 0xFF}, {0x01, 0x02}},
100 {0x3E, {0xF4, 0xF7}, {0x51, 0x52}},
102 {0x39, {0x62, 0x63}, {0xC3, 0xC5}}
105 #elif defined(__LPC43XX__ )
112 {0x3F, {0x20, 0xC1}, {0x16, 0x89}},
114 {0x3F, {0x1D, 0x83}, {0x38, 0xFD}},
118 {0x3F, {0x3A, 0x83}, {0x55, 0xC0}},
122 {0x3F, {0x74, 0x83}, {0xC9, 0xE3}},
124 {0x3F, {0xD5, 0xDD}, {0x85, 0x8A}}
134 uint16_t x_divide = 0, y_divide_down = 0, y_divide_up = 0;
136 uint32_t err, ErrorOptimal_down = 0xFFFF, ErrorOptimal_up = 0xFFFF;
141 for (N = 64; N > 0; N--) {
143 divider = (((uint64_t)(audio_format->
SampleRate) * 2 * (audio_format->
WordWidth) * 2) << 16) * N / pClk;
144 if (divider < (1 << 16)) {
152 for (y = 255; y > 0; y--) {
154 if (x & (0xFF000000)) {
160 err = (0x10000 - dif);
162 if((x & 0x00FF0000) == 0x00FF0000)
continue;
163 if (err < ErrorOptimal_up ) {
164 ErrorOptimal_up = err;
170 if (err < ErrorOptimal_down) {
171 ErrorOptimal_down = err;
177 x_divide = ((uint64_t)y_divide_up * (audio_format->
SampleRate) * 2 * (audio_format->
WordWidth) * N * 2) / pClk;
179 if (x_divide >= 256) {
185 I2S_Config->
RATEUP.
X = x_divide;
186 I2S_Config->
RATEUP.
Y = y_divide_up;
188 x_divide = ((uint64_t)y_divide_down * (audio_format->
SampleRate) * 2 * (audio_format->
WordWidth) * N * 2) / pClk;
189 if (x_divide >= 256) {
234 NVIC_EnableIRQ(I2S0_IRQn);
237 switch (samplefreq) {
272 I2S_SpeedConfig[I2S_SpeedConfig_index].
RATEDOWN.
Y);
280 NVIC_DisableIRQ(I2S0_IRQn);
286 static bool double_speed =
false;
290 for (i = 0; i < 8 - txlevel; i++) {
308 I2S_SpeedConfig[I2S_SpeedConfig_index].
RATEUP.
Y);
315 I2S_SpeedConfig[I2S_SpeedConfig_index].
RATEDOWN.
Y);
316 double_speed =
false;
355 #if defined(__LPC43XX__ )
361 #if defined(__LPC43XX__ )
368 #if defined(USB_DEVICE_ROM_DRIVER)
373 #if !defined(USB_DEVICE_ROM_DRIVER)
387 #if !defined(USB_DEVICE_ROM_DRIVER)
399 bool ConfigSuccess =
true;
422 const uint8_t EndpointProperty,
424 const uint8_t EndpointControl,
432 switch (EndpointProperty) {
435 if (DataLength !=
NULL) {
450 if (DataLength !=
NULL) {