LibDriver VS1053B
Loading...
Searching...
No Matches
driver_vs1053b_play_test.c
Go to the documentation of this file.
1
36
38#include <stdlib.h>
39
40static vs1053b_handle_t gs_handle;
41static volatile uint8_t gs_flag = 0;
42
49static void a_callback(uint8_t type, uint32_t cur_pos)
50{
51 uint8_t res;
52
53 switch (type)
54 {
56 {
57 break;
58 }
60 {
61 break;
62 }
64 {
65 gs_flag = 1;
66 vs1053b_interface_debug_print("vs1053b: irq play end with %d.\n", cur_pos);
67
68 break;
69 }
71 {
72 break;
73 }
75 {
76 break;
77 }
79 {
80 break;
81 }
83 {
84 break;
85 }
87 {
88 uint16_t decode_time;
89 uint16_t dat0;
90 uint16_t dat1;
91 uint16_t rate;
92 vs1053b_channel_t channel;
94
95 /* get decode time */
96 res = vs1053b_get_decode_time(&gs_handle, &decode_time);
97 if (res == 0)
98 {
99 vs1053b_interface_debug_print("\nvs1053b: play time is %02d:%02d:%02d.\n",
100 (decode_time % 86400) / 3600, (decode_time % 3600) / 60, decode_time % 60);
101 }
102
103 /* get byte rate */
104 res = vs1053b_get_byte_rate(&gs_handle, &rate);
105 if (res == 0)
106 {
107 vs1053b_interface_debug_print("vs1053b: byte rate is %d bytes/sec.\n", rate);
108 }
109
110 /* get sample rate */
111 res = vs1053b_get_sample_rate(&gs_handle, &rate, &channel);
112 if (res == 0)
113 {
114 vs1053b_interface_debug_print("vs1053b: sample rate is %dHz, channel is %d.\n", rate, (uint8_t)(channel + 1));
115 }
116
117 /* get hdata */
118 res = vs1053b_get_hdata(&gs_handle, &dat0, &dat1);
119 if (res == 0)
120 {
121 /* parse info */
122 (void)vs1053b_parse_info(&gs_handle, dat0, dat1, &info);
123 vs1053b_interface_debug_print("vs1053b: format is %s, rate is %0.0fkbps.\n", info.format_name, info.kbps);
124 }
125
126 break;
127 }
128 default :
129 {
130 vs1053b_interface_debug_print("vs1053b: unknown type.\n");
131
132 break;
133 }
134 }
135}
136
145uint8_t vs1053b_play_test(char *path)
146{
147 uint8_t res;
148 uint8_t reg;
149 uint16_t clk;
150 vs1053b_info_t info;
151
152 /* link interface function */
174 DRIVER_VS1053B_LINK_RECEIVE_CALLBACK(&gs_handle, a_callback);
175
176 /* get information */
177 res = vs1053b_info(&info);
178 if (res != 0)
179 {
180 vs1053b_interface_debug_print("vs1053b: get info failed.\n");
181
182 return 1;
183 }
184 else
185 {
186 /* print chip info */
187 vs1053b_interface_debug_print("vs1053b: chip is %s.\n", info.chip_name);
188 vs1053b_interface_debug_print("vs1053b: manufacturer is %s.\n", info.manufacturer_name);
189 vs1053b_interface_debug_print("vs1053b: interface is %s.\n", info.interface);
190 vs1053b_interface_debug_print("vs1053b: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
191 vs1053b_interface_debug_print("vs1053b: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
192 vs1053b_interface_debug_print("vs1053b: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
193 vs1053b_interface_debug_print("vs1053b: max current is %0.2fmA.\n", info.max_current_ma);
194 vs1053b_interface_debug_print("vs1053b: max temperature is %0.1fC.\n", info.temperature_max);
195 vs1053b_interface_debug_print("vs1053b: min temperature is %0.1fC.\n", info.temperature_min);
196 }
197
198 /* start play test */
199 vs1053b_interface_debug_print("vs1053b: start play test.\n");
200
201 /* vs1053b init */
202 res = vs1053b_init(&gs_handle);
203 if (res != 0)
204 {
205 vs1053b_interface_debug_print("vs1053b: init failed.\n");
206
207 return 1;
208 }
209
210 /* 3.5 xtali */
212 if (res != 0)
213 {
214 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
215 (void)vs1053b_deinit(&gs_handle);
216
217 return 1;
218 }
219
220 /* 2.0 xtali */
222 if (res != 0)
223 {
224 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition failed.\n");
225 (void)vs1053b_deinit(&gs_handle);
226
227 return 1;
228 }
229
230 /* 8000000hz */
231 res = vs1053b_clock_frequency_convert_to_register(&gs_handle, 8000000.0f, &clk);
232 if (res != 0)
233 {
234 vs1053b_interface_debug_print("vs1053b: clock frequency convert to register failed.\n");
235 (void)vs1053b_deinit(&gs_handle);
236
237 return 1;
238 }
239
240 /* set clock frequency */
241 res = vs1053b_set_clock_frequency(&gs_handle, clk);
242 if (res != 0)
243 {
244 vs1053b_interface_debug_print("vs1053b: set clock frequency failed.\n");
245 (void)vs1053b_deinit(&gs_handle);
246
247 return 1;
248 }
249
250 /* diff normal mode */
251 res = vs1053b_set_diff(&gs_handle, VS1053B_DIFF_NORMAL);
252 if (res != 0)
253 {
254 vs1053b_interface_debug_print("vs1053b: set diff failed.\n");
255 (void)vs1053b_deinit(&gs_handle);
256
257 return 1;
258 }
259
260 /* enable mpeg layer i and ii */
262 if (res != 0)
263 {
264 vs1053b_interface_debug_print("vs1053b: set mpeg layer i and ii failed.\n");
265 (void)vs1053b_deinit(&gs_handle);
266
267 return 1;
268 }
269
270 /* disable cancel decoding current file */
272 if (res != 0)
273 {
274 vs1053b_interface_debug_print("vs1053b: set cancel decoding current file failed.\n");
275 (void)vs1053b_deinit(&gs_handle);
276
277 return 1;
278 }
279
280 /* disable ear speaker low setting */
282 if (res != 0)
283 {
284 vs1053b_interface_debug_print("vs1053b: set ear speaker low setting failed.\n");
285 (void)vs1053b_deinit(&gs_handle);
286
287 return 1;
288 }
289
290 /* disable allow sdi test */
292 if (res != 0)
293 {
294 vs1053b_interface_debug_print("vs1053b: set allow sdi test failed.\n");
295 (void)vs1053b_deinit(&gs_handle);
296
297 return 1;
298 }
299
300 /* disable stream mode */
302 if (res != 0)
303 {
304 vs1053b_interface_debug_print("vs1053b: set stream mode failed.\n");
305 (void)vs1053b_deinit(&gs_handle);
306
307 return 1;
308 }
309
310 /* disable ear speaker high setting */
312 if (res != 0)
313 {
314 vs1053b_interface_debug_print("vs1053b: set ear speaker high setting failed.\n");
315 (void)vs1053b_deinit(&gs_handle);
316
317 return 1;
318 }
319
320 /* rising dclk edge */
322 if (res != 0)
323 {
324 vs1053b_interface_debug_print("vs1053b: set dclk edge failed.\n");
325 (void)vs1053b_deinit(&gs_handle);
326
327 return 1;
328 }
329
330 /* sdi bit order msb */
332 if (res != 0)
333 {
334 vs1053b_interface_debug_print("vs1053b: set sdi bit order failed.\n");
335 (void)vs1053b_deinit(&gs_handle);
336
337 return 1;
338 }
339
340 /* disable share spi chip select */
342 if (res != 0)
343 {
344 vs1053b_interface_debug_print("vs1053b: set share spi chip select failed.\n");
345 (void)vs1053b_deinit(&gs_handle);
346
347 return 1;
348 }
349
350 /* enable native spi modes */
352 if (res != 0)
353 {
354 vs1053b_interface_debug_print("vs1053b: set native spi modes failed.\n");
355 (void)vs1053b_deinit(&gs_handle);
356
357 return 1;
358 }
359
360 /* disable pcm adpcm recording active */
362 if (res != 0)
363 {
364 vs1053b_interface_debug_print("vs1053b: set pcm adpcm recording active failed.\n");
365 (void)vs1053b_deinit(&gs_handle);
366
367 return 1;
368 }
369
370 /* microphone */
372 if (res != 0)
373 {
374 vs1053b_interface_debug_print("vs1053b: set selector failed.\n");
375 (void)vs1053b_deinit(&gs_handle);
376
377 return 1;
378 }
379
380 /* 12MHz - 13MHz */
382 if (res != 0)
383 {
384 vs1053b_interface_debug_print("vs1053b: set clock range failed.\n");
385 (void)vs1053b_deinit(&gs_handle);
386
387 return 1;
388 }
389
390 /* disable do not jump */
392 if (res != 0)
393 {
394 vs1053b_interface_debug_print("vs1053b: set do not jump failed.\n");
395 (void)vs1053b_deinit(&gs_handle);
396
397 return 1;
398 }
399
400 /* 0.0f */
401 res = vs1053b_swing_convert_to_register(&gs_handle, 0.0f, &reg);
402 if (res != 0)
403 {
404 vs1053b_interface_debug_print("vs1053b: swing convert to register failed.\n");
405 (void)vs1053b_deinit(&gs_handle);
406
407 return 1;
408 }
409
410 /* set swing */
411 res = vs1053b_set_swing(&gs_handle, reg);
412 if (res != 0)
413 {
414 vs1053b_interface_debug_print("vs1053b: set swing failed.\n");
415 (void)vs1053b_deinit(&gs_handle);
416
417 return 1;
418 }
419
420 /* enable overload detection */
422 if (res != 0)
423 {
424 vs1053b_interface_debug_print("vs1053b: set overload detection failed.\n");
425 (void)vs1053b_deinit(&gs_handle);
426
427 return 1;
428 }
429
430 /* disable analog driver power down */
432 if (res != 0)
433 {
434 vs1053b_interface_debug_print("vs1053b: set analog driver power down failed.\n");
435 (void)vs1053b_deinit(&gs_handle);
436
437 return 1;
438 }
439
440 /* disable analog internal power down */
442 if (res != 0)
443 {
444 vs1053b_interface_debug_print("vs1053b: set analog internal power down failed.\n");
445 (void)vs1053b_deinit(&gs_handle);
446
447 return 1;
448 }
449
450 /* ad clock 6mhz */
452 if (res != 0)
453 {
454 vs1053b_interface_debug_print("vs1053b: set ad clock failed.\n");
455 (void)vs1053b_deinit(&gs_handle);
456
457 return 1;
458 }
459
460 /* 1.23v */
462 if (res != 0)
463 {
464 vs1053b_interface_debug_print("vs1053b: set reference voltage failed.\n");
465 (void)vs1053b_deinit(&gs_handle);
466
467 return 1;
468 }
469
470 /* 22.5db */
471 res = vs1053b_treble_control_convert_to_register(&gs_handle, 22.5f, &reg);
472 if (res != 0)
473 {
474 vs1053b_interface_debug_print("vs1053b: treble control convert to register failed.\n");
475 (void)vs1053b_deinit(&gs_handle);
476
477 return 1;
478 }
479
480 /* set treble control */
481 res = vs1053b_set_treble_control(&gs_handle, reg);
482 if (res != 0)
483 {
484 vs1053b_interface_debug_print("vs1053b: set treble control failed.\n");
485 (void)vs1053b_deinit(&gs_handle);
486
487 return 1;
488 }
489
490 /* 10khz */
492 if (res != 0)
493 {
494 vs1053b_interface_debug_print("vs1053b: lower limit frequency in 1000 hz convert to register failed.\n");
495 (void)vs1053b_deinit(&gs_handle);
496
497 return 1;
498 }
499
500 /* set lower limit frequency in 1000 hz */
502 if (res != 0)
503 {
504 vs1053b_interface_debug_print("vs1053b: set lower limit frequency in 1000 hz failed.\n");
505 (void)vs1053b_deinit(&gs_handle);
506
507 return 1;
508 }
509
510 /* 15db */
511 res = vs1053b_set_bass_enhancement(&gs_handle, 15);
512 if (res != 0)
513 {
514 vs1053b_interface_debug_print("vs1053b: set bass enhancement failed.\n");
515 (void)vs1053b_deinit(&gs_handle);
516
517 return 1;
518 }
519
520 /* 60hz */
522 if (res != 0)
523 {
524 vs1053b_interface_debug_print("vs1053b: lower limit frequency in 10 hz convert to register failed.\n");
525 (void)vs1053b_deinit(&gs_handle);
526
527 return 1;
528 }
529
530 /* set lower limit frequency in 10 hz */
531 res = vs1053b_set_lower_limit_frequency_in_10_hz(&gs_handle, reg);
532 if (res != 0)
533 {
534 vs1053b_interface_debug_print("vs1053b: set lower limit frequency in 10 hz failed.\n");
535 (void)vs1053b_deinit(&gs_handle);
536
537 return 1;
538 }
539
540 /* init 0x0000 */
541 res = vs1053b_set_decode_time(&gs_handle, 0x0000);
542 if (res != 0)
543 {
544 vs1053b_interface_debug_print("vs1053b: set decode time failed.\n");
545 (void)vs1053b_deinit(&gs_handle);
546
547 return 1;
548 }
549
550 /* -10.0db */
551 res = vs1053b_vol_convert_to_register(&gs_handle, -10.0f, &reg);
552 if (res != 0)
553 {
554 vs1053b_interface_debug_print("vs1053b: vol convert to register failed.\n");
555 (void)vs1053b_deinit(&gs_handle);
556
557 return 1;
558 }
559
560 /* set vol */
561 res = vs1053b_set_vol(&gs_handle, reg, reg);
562 if (res != 0)
563 {
564 vs1053b_interface_debug_print("vs1053b: set vol failed.\n");
565 (void)vs1053b_deinit(&gs_handle);
566
567 return 1;
568 }
569
570 /* 1.0x */
572 if (res != 0)
573 {
574 vs1053b_interface_debug_print("vs1053b: set play speed failed.\n");
575 (void)vs1053b_deinit(&gs_handle);
576
577 return 1;
578 }
579
580 /* set iis gpio direction */
581 res = vs1053b_set_gpio_direction(&gs_handle, 0x00F0);
582 if (res != 0)
583 {
584 vs1053b_interface_debug_print("vs1053b: set gpio direction failed.\n");
585 (void)vs1053b_deinit(&gs_handle);
586
587 return 1;
588 }
589
590 /* enable iis mclk */
591 res = vs1053b_set_iis_mclk(&gs_handle, VS1053B_BOOL_TRUE);
592 if (res != 0)
593 {
594 vs1053b_interface_debug_print("vs1053b: set iis mclk failed.\n");
595 (void)vs1053b_deinit(&gs_handle);
596
597 return 1;
598 }
599
600 /* set iis rate 48khz */
602 if (res != 0)
603 {
604 vs1053b_interface_debug_print("vs1053b: set iis rate failed.\n");
605 (void)vs1053b_deinit(&gs_handle);
606
607 return 1;
608 }
609
610 /* enable iis */
611 res = vs1053b_set_iis(&gs_handle, VS1053B_BOOL_TRUE);
612 if (res != 0)
613 {
614 vs1053b_interface_debug_print("vs1053b: set iis failed.\n");
615 (void)vs1053b_deinit(&gs_handle);
616
617 return 1;
618 }
619
620 /* 5s */
621 res = vs1053b_set_period_callback(&gs_handle, 5, 0, VS1053B_BOOL_TRUE);
622 if (res != 0)
623 {
624 vs1053b_interface_debug_print("vs1053b: set period callback failed.\n");
625 (void)vs1053b_deinit(&gs_handle);
626
627 return 1;
628 }
629
630 /* if flac format, load the flac patch */
631 if (strstr(path, ".flac") != NULL)
632 {
633 const uint16_t *patch_addr;
634 uint16_t l;
635
636 /* get flac patch */
637 res = vs1053b_get_patch(&gs_handle, VS1053B_PATCH_FLAC, &patch_addr, &l);
638 if (res != 0)
639 {
640 vs1053b_interface_debug_print("vs1053b: get patch failed.\n");
641 (void)vs1053b_deinit(&gs_handle);
642
643 return 1;
644 }
645
646 /* load flac patch */
647 res = vs1053b_load_patch(&gs_handle, patch_addr, l);
648 if (res != 0)
649 {
650 vs1053b_interface_debug_print("vs1053b: load patch failed.\n");
651 (void)vs1053b_deinit(&gs_handle);
652
653 return 1;
654 }
655 }
656
657 /* play music */
658 res = vs1053b_play(&gs_handle, path);
659 if (res != 0)
660 {
661 vs1053b_interface_debug_print("vs1053b: play failed.\n");
662 (void)vs1053b_deinit(&gs_handle);
663
664 return 1;
665 }
666
667 /* clear flag */
668 gs_flag = 0;
669
670 /* run the server and wait for the end */
671 while (gs_flag == 0)
672 {
673 (void)vs1053b_process(&gs_handle);
674 }
675
676 /* finish play */
677 vs1053b_interface_debug_print("vs1053b: finish play test.\n");
678 (void)vs1053b_deinit(&gs_handle);
679
680 return 0;
681}
driver vs1053b play test header file
uint8_t vs1053b_set_iis_mclk(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable iis mclk
uint8_t vs1053b_parse_info(vs1053b_handle_t *handle, uint16_t dat0, uint16_t dat1, vs1053b_audio_info_t *info)
parse info
uint8_t vs1053b_set_swing(vs1053b_handle_t *handle, uint8_t swing)
set swing
uint8_t vs1053b_set_treble_control(vs1053b_handle_t *handle, uint8_t db)
set treble control
uint8_t vs1053b_set_ad_clock(vs1053b_handle_t *handle, vs1053b_ad_clock_t ad_clock)
set ad clock
uint8_t vs1053b_set_clock_multiplier(vs1053b_handle_t *handle, vs1053b_clock_multiplier_t multiplier)
set clock multiplier
uint8_t vs1053b_set_reference_voltage(vs1053b_handle_t *handle, vs1053b_reference_voltage_t voltage)
set reference voltage
uint8_t vs1053b_set_period_callback(vs1053b_handle_t *handle, uint32_t second, uint32_t microsecond, vs1053b_bool_t enable)
set period callback
uint8_t vs1053b_set_analog_internal_power_down(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable analog internal power down
uint8_t vs1053b_swing_convert_to_register(vs1053b_handle_t *handle, float db, uint8_t *reg)
convert the swing to the register raw data
uint8_t vs1053b_set_lower_limit_frequency_in_10_hz(vs1053b_handle_t *handle, uint8_t step)
set lower limit frequency in 10 hz
uint8_t vs1053b_set_vol(vs1053b_handle_t *handle, uint8_t left, uint8_t right)
set vol
uint8_t vs1053b_lower_limit_frequency_in_1000_hz_convert_to_register(vs1053b_handle_t *handle, uint32_t hz, uint8_t *reg)
convert the lower limit frequency in 1000 hz to the register raw data
uint8_t vs1053b_process(vs1053b_handle_t *handle)
audio process
uint8_t vs1053b_set_selector(vs1053b_handle_t *handle, vs1053b_selector_t selector)
set selector
uint8_t vs1053b_clock_frequency_convert_to_register(vs1053b_handle_t *handle, float hz, uint16_t *reg)
convert the clock frequency to the register raw data
uint8_t vs1053b_set_do_not_jump(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable do not jump
uint8_t vs1053b_set_decode_time(vs1053b_handle_t *handle, uint16_t decode_time)
set decode time
uint8_t vs1053b_set_gpio_direction(vs1053b_handle_t *handle, uint16_t mask)
set gpio direction
uint8_t vs1053b_set_native_spi_modes(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable native spi modes
uint8_t vs1053b_init(vs1053b_handle_t *handle)
initialize the chip
uint8_t vs1053b_set_cancel_decoding_current_file(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable cancel decoding current file
uint8_t vs1053b_set_stream_mode(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable stream mode
uint8_t vs1053b_get_decode_time(vs1053b_handle_t *handle, uint16_t *decode_time)
get decode time
uint8_t vs1053b_set_iis_rate(vs1053b_handle_t *handle, vs1053b_iis_rate_t iis_rate)
set iis rate
uint8_t vs1053b_set_dclk_edge(vs1053b_handle_t *handle, vs1053b_dclk_edge_t edge)
set dclk edge
uint8_t vs1053b_set_analog_driver_power_down(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable analog driver power down
uint8_t vs1053b_set_play_speed(vs1053b_handle_t *handle, vs1053b_play_speed_t speed)
set play speed
uint8_t vs1053b_set_pcm_adpcm_recording_active(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable pcm adpcm recording active
uint8_t vs1053b_set_clock_frequency(vs1053b_handle_t *handle, uint16_t clk)
set clock frequency
uint8_t vs1053b_set_ear_speaker_low_setting(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable ear speaker low setting
uint8_t vs1053b_set_clock_range(vs1053b_handle_t *handle, vs1053b_clock_range_t range)
set clock range
uint8_t vs1053b_get_patch(vs1053b_handle_t *handle, vs1053b_patch_t type, const uint16_t **patch_addr, uint16_t *len)
get patch info
uint8_t vs1053b_set_diff(vs1053b_handle_t *handle, vs1053b_diff_t diff)
set the audio differential
uint8_t vs1053b_set_ear_speaker_high_setting(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable ear speaker high setting
uint8_t vs1053b_set_share_spi_chip_select(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable share spi chip select
uint8_t vs1053b_vol_convert_to_register(vs1053b_handle_t *handle, float db, uint8_t *reg)
convert vol to the register raw data
struct vs1053b_handle_s vs1053b_handle_t
vs1053b handle structure definition
uint8_t vs1053b_set_allow_sdi_test(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable allow sdi test
uint8_t vs1053b_set_overload_detection(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable overload detection
uint8_t vs1053b_treble_control_convert_to_register(vs1053b_handle_t *handle, float db, uint8_t *reg)
convert the treble control to the register raw data
struct vs1053b_audio_info_s vs1053b_audio_info_t
vs1053b audio info structure definition
uint8_t vs1053b_deinit(vs1053b_handle_t *handle)
deinit the chip
uint8_t vs1053b_set_iis(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable iis
uint8_t vs1053b_set_allowed_multiplier_addition(vs1053b_handle_t *handle, vs1053b_allowed_multiplier_addition_t addition)
set allowed multiplier addition
uint8_t vs1053b_set_sdi_bit_order(vs1053b_handle_t *handle, vs1053b_bit_order_t order)
set sdi bit order
struct vs1053b_info_s vs1053b_info_t
vs1053b information structure definition
uint8_t vs1053b_info(vs1053b_info_t *info)
get chip's information
uint8_t vs1053b_get_byte_rate(vs1053b_handle_t *handle, uint16_t *rate)
get byte rate
uint8_t vs1053b_get_hdata(vs1053b_handle_t *handle, uint16_t *dat0, uint16_t *dat1)
get hdata
uint8_t vs1053b_play(vs1053b_handle_t *handle, char *path)
play audio
uint8_t vs1053b_load_patch(vs1053b_handle_t *handle, const uint16_t *patch, uint16_t len)
load patch
vs1053b_channel_t
vs1053b channel enumeration definition
uint8_t vs1053b_set_bass_enhancement(vs1053b_handle_t *handle, uint8_t db)
set bass enhancement
uint8_t vs1053b_set_lower_limit_frequency_in_1000_hz(vs1053b_handle_t *handle, uint8_t step)
set lower limit frequency in 1000 hz
uint8_t vs1053b_get_sample_rate(vs1053b_handle_t *handle, uint16_t *rate, vs1053b_channel_t *channel)
get sample rate
uint8_t vs1053b_set_mpeg_layer_i_and_ii(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable mpeg layer i and ii
uint8_t vs1053b_lower_limit_frequency_in_10_hz_convert_to_register(vs1053b_handle_t *handle, uint32_t hz, uint8_t *reg)
convert the lower limit frequency in 10 hz to the register raw data
@ VS1053B_TYPE_PERIOD
@ VS1053B_TYPE_PLAY_END
@ VS1053B_TYPE_PLAY_WRITE
@ VS1053B_TYPE_RECORD_END
@ VS1053B_TYPE_RECORD_READ
@ VS1053B_TYPE_RECORD_WRITE
@ VS1053B_TYPE_RECORD_OVER
@ VS1053B_TYPE_PLAY_READ
@ VS1053B_AD_CLOCK_6MHZ
@ VS1053B_REFERENCE_VOLTAGE_1P23V
@ VS1053B_BIT_ORDER_MSB_FIRST
@ VS1053B_ALLOWED_MULTIPLIER_ADDITION_2P0_XTALI
@ VS1053B_DIFF_NORMAL
@ VS1053B_BOOL_FALSE
@ VS1053B_BOOL_TRUE
@ VS1053B_SELECTOR_MICP
@ VS1053B_PATCH_FLAC
@ VS1053B_DCLK_EDGE_RISING
@ VS1053B_CLOCK_RANGE_12MHZ_13MHZ
@ VS1053B_PLAY_SPEED_1P0_X
@ VS1053B_IIS_RATE_48KHZ
@ VS1053B_CLOCK_MULTIPLIER_3P5_XTALI
uint8_t vs1053b_interface_spi_dat_init(void)
interface spi dat bus init
uint8_t vs1053b_interface_audio_deinit(void)
interface audio deinit
uint8_t vs1053b_interface_spi_dat_write_cmd(uint8_t *buf, uint16_t len)
interface spi dat bus write command
uint8_t vs1053b_interface_spi_cmd_write_address16(uint16_t reg, uint8_t *buf, uint16_t len)
interface spi cmd bus write
void vs1053b_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t vs1053b_interface_spi_cmd_deinit(void)
interface spi cmd bus deinit
void vs1053b_interface_timestamp_read(uint32_t *sec, uint32_t *us)
interface timestamp read
uint8_t vs1053b_interface_spi_cmd_read_address16(uint16_t reg, uint8_t *buf, uint16_t len)
interface spi cmd bus read
uint8_t vs1053b_interface_spi_dat_deinit(void)
interface spi dat bus deinit
void vs1053b_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t vs1053b_interface_spi_cmd_init(void)
interface spi cmd bus init
uint8_t vs1053b_interface_dreq_gpio_deinit(void)
interface dreq gpio deinit
uint8_t vs1053b_interface_dreq_gpio_init(void)
interface dreq gpio init
uint8_t vs1053b_interface_audio_init(uint8_t type, char *name, uint32_t *size)
interface audio init
uint8_t vs1053b_interface_dreq_gpio_read(uint8_t *data)
interface dreq gpio read
uint8_t vs1053b_interface_reset_gpio_write(uint8_t data)
interface reset gpio write
uint8_t vs1053b_interface_reset_gpio_init(void)
interface reset gpio init
uint8_t vs1053b_interface_reset_gpio_deinit(void)
interface reset gpio deinit
uint8_t vs1053b_interface_audio_write(uint32_t addr, uint16_t size, uint8_t *buffer)
interface audio write
uint8_t vs1053b_interface_audio_read(uint32_t addr, uint16_t size, uint8_t *buffer)
interface audio read
uint8_t vs1053b_play_test(char *path)
play test
uint32_t driver_version
char manufacturer_name[32]