LibDriver VS1053B
Loading...
Searching...
No Matches
driver_vs1053b_register_test.c
Go to the documentation of this file.
1
36
38#include <stdlib.h>
39
40static vs1053b_handle_t gs_handle;
41
50{
51 uint8_t res;
52 uint8_t reg;
53 uint8_t reg_check;
54 uint8_t version;
55 uint8_t left;
56 uint8_t right;
57 uint8_t left_check;
58 uint8_t right_check;
59 uint8_t buf[2];
60 uint8_t buf_check[2];
61 uint16_t clk;
62 uint16_t clk_check;
63 uint16_t addr;
64 uint16_t addr_check;
65 uint16_t byte;
66 uint16_t decode_time;
67 uint16_t decode_time_check;
68 uint16_t rate;
69 uint16_t rate_check;
70 uint16_t dat0;
71 uint16_t dat1;
72 uint32_t hz;
73 uint32_t hz_check;
74 float db;
75 float db_check;
76 vs1053b_info_t info;
77 vs1053b_bool_t enable;
78 vs1053b_diff_t diff;
81 vs1053b_selector_t selector;
83 vs1053b_ad_clock_t ad_clock;
87 vs1053b_channel_t channel;
89 vs1053b_iis_rate_t iis_rate;
90
91 /* link interface function */
114
115 /* get information */
116 res = vs1053b_info(&info);
117 if (res != 0)
118 {
119 vs1053b_interface_debug_print("vs1053b: get info failed.\n");
120
121 return 1;
122 }
123 else
124 {
125 /* print chip info */
126 vs1053b_interface_debug_print("vs1053b: chip is %s.\n", info.chip_name);
127 vs1053b_interface_debug_print("vs1053b: manufacturer is %s.\n", info.manufacturer_name);
128 vs1053b_interface_debug_print("vs1053b: interface is %s.\n", info.interface);
129 vs1053b_interface_debug_print("vs1053b: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
130 vs1053b_interface_debug_print("vs1053b: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
131 vs1053b_interface_debug_print("vs1053b: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
132 vs1053b_interface_debug_print("vs1053b: max current is %0.2fmA.\n", info.max_current_ma);
133 vs1053b_interface_debug_print("vs1053b: max temperature is %0.1fC.\n", info.temperature_max);
134 vs1053b_interface_debug_print("vs1053b: min temperature is %0.1fC.\n", info.temperature_min);
135 }
136
137 /* start register test */
138 vs1053b_interface_debug_print("vs1053b: start register test.\n");
139
140 /* vs1053b init */
141 res = vs1053b_init(&gs_handle);
142 if (res != 0)
143 {
144 vs1053b_interface_debug_print("vs1053b: init failed.\n");
145
146 return 1;
147 }
148
149 /* vs1053b_set_diff/vs1053b_get_diff test */
150 vs1053b_interface_debug_print("vs1053b: vs1053b_set_diff/vs1053b_get_diff test.\n");
151
152 /* left channel inverted */
154 if (res != 0)
155 {
156 vs1053b_interface_debug_print("vs1053b: set diff failed.\n");
157 (void)vs1053b_deinit(&gs_handle);
158
159 return 1;
160 }
161
162 /* output */
163 vs1053b_interface_debug_print("vs1053b: left channel inverted.\n");
164
165 /* get diff */
166 res = vs1053b_get_diff(&gs_handle, &diff);
167 if (res != 0)
168 {
169 vs1053b_interface_debug_print("vs1053b: get diff failed.\n");
170 (void)vs1053b_deinit(&gs_handle);
171
172 return 1;
173 }
174 vs1053b_interface_debug_print("vs1053b: check diff %s.\n", diff == VS1053B_DIFF_LEFT_INVERTED ? "ok" : "error");
175
176 /* normal in phase audio */
177 res = vs1053b_set_diff(&gs_handle, VS1053B_DIFF_NORMAL);
178 if (res != 0)
179 {
180 vs1053b_interface_debug_print("vs1053b: set diff failed.\n");
181 (void)vs1053b_deinit(&gs_handle);
182
183 return 1;
184 }
185
186 /* output */
187 vs1053b_interface_debug_print("vs1053b: normal in phase audio.\n");
188
189 /* get diff */
190 res = vs1053b_get_diff(&gs_handle, &diff);
191 if (res != 0)
192 {
193 vs1053b_interface_debug_print("vs1053b: get diff failed.\n");
194 (void)vs1053b_deinit(&gs_handle);
195
196 return 1;
197 }
198 vs1053b_interface_debug_print("vs1053b: check diff %s.\n", diff == VS1053B_DIFF_NORMAL ? "ok" : "error");
199
200 /* vs1053b_set_mpeg_layer_i_and_ii/vs1053b_get_mpeg_layer_i_and_ii test */
201 vs1053b_interface_debug_print("vs1053b: vs1053b_set_mpeg_layer_i_and_ii/vs1053b_get_mpeg_layer_i_and_ii test.\n");
202
203 /* disable mpeg layer i and ii */
205 if (res != 0)
206 {
207 vs1053b_interface_debug_print("vs1053b: set mpeg layer i and ii failed.\n");
208 (void)vs1053b_deinit(&gs_handle);
209
210 return 1;
211 }
212
213 /* output */
214 vs1053b_interface_debug_print("vs1053b: disable mpeg layer i and ii.\n");
215
216 /* get mpeg layer i and ii */
217 res = vs1053b_get_mpeg_layer_i_and_ii(&gs_handle, &enable);
218 if (res != 0)
219 {
220 vs1053b_interface_debug_print("vs1053b: get mpeg layer i and ii failed.\n");
221 (void)vs1053b_deinit(&gs_handle);
222
223 return 1;
224 }
225 vs1053b_interface_debug_print("vs1053b: check mpeg layer i and ii %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
226
227 /* enable mpeg layer i and ii */
229 if (res != 0)
230 {
231 vs1053b_interface_debug_print("vs1053b: set mpeg layer i and ii failed.\n");
232 (void)vs1053b_deinit(&gs_handle);
233
234 return 1;
235 }
236
237 /* output */
238 vs1053b_interface_debug_print("vs1053b: enable mpeg layer i and ii.\n");
239
240 /* get mpeg layer i and ii */
241 res = vs1053b_get_mpeg_layer_i_and_ii(&gs_handle, &enable);
242 if (res != 0)
243 {
244 vs1053b_interface_debug_print("vs1053b: get mpeg layer i and ii failed.\n");
245 (void)vs1053b_deinit(&gs_handle);
246
247 return 1;
248 }
249 vs1053b_interface_debug_print("vs1053b: check mpeg layer i and ii %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
250
251 /* vs1053b_set_cancel_decoding_current_file/vs1053b_get_cancel_decoding_current_file test */
252 vs1053b_interface_debug_print("vs1053b: vs1053b_set_cancel_decoding_current_file/vs1053b_get_cancel_decoding_current_file test.\n");
253
254 /* enable cancel decoding current file */
256 if (res != 0)
257 {
258 vs1053b_interface_debug_print("vs1053b: set cancel decoding current file failed.\n");
259 (void)vs1053b_deinit(&gs_handle);
260
261 return 1;
262 }
263
264 /* output */
265 vs1053b_interface_debug_print("vs1053b: enable cancel decoding current file.\n");
266
267 /* get cancel decoding current file */
268 res = vs1053b_get_cancel_decoding_current_file(&gs_handle, &enable);
269 if (res != 0)
270 {
271 vs1053b_interface_debug_print("vs1053b: get cancel decoding current file failed.\n");
272 (void)vs1053b_deinit(&gs_handle);
273
274 return 1;
275 }
276 vs1053b_interface_debug_print("vs1053b: check cancel decoding current file %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
277
278 /* disable cancel decoding current file */
280 if (res != 0)
281 {
282 vs1053b_interface_debug_print("vs1053b: set cancel decoding current file failed.\n");
283 (void)vs1053b_deinit(&gs_handle);
284
285 return 1;
286 }
287
288 /* output */
289 vs1053b_interface_debug_print("vs1053b: disable cancel decoding current file.\n");
290
291 /* get cancel decoding current file */
292 res = vs1053b_get_cancel_decoding_current_file(&gs_handle, &enable);
293 if (res != 0)
294 {
295 vs1053b_interface_debug_print("vs1053b: get cancel decoding current file failed.\n");
296 (void)vs1053b_deinit(&gs_handle);
297
298 return 1;
299 }
300 vs1053b_interface_debug_print("vs1053b: check cancel decoding current file %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
301
302 /* vs1053b_set_ear_speaker_low_setting/vs1053b_get_ear_speaker_low_setting test */
303 vs1053b_interface_debug_print("vs1053b: vs1053b_set_ear_speaker_low_setting/vs1053b_get_ear_speaker_low_setting test.\n");
304
305 /* enable ear speaker low setting */
307 if (res != 0)
308 {
309 vs1053b_interface_debug_print("vs1053b: set ear speaker low setting failed.\n");
310 (void)vs1053b_deinit(&gs_handle);
311
312 return 1;
313 }
314
315 /* output */
316 vs1053b_interface_debug_print("vs1053b: enable ear speaker low setting.\n");
317
318 res = vs1053b_get_ear_speaker_low_setting(&gs_handle, &enable);
319 if (res != 0)
320 {
321 vs1053b_interface_debug_print("vs1053b: get ear speaker low setting failed.\n");
322 (void)vs1053b_deinit(&gs_handle);
323
324 return 1;
325 }
326 vs1053b_interface_debug_print("vs1053b: check ear speaker low setting %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
327
328 /* disable ear speaker low setting */
330 if (res != 0)
331 {
332 vs1053b_interface_debug_print("vs1053b: set ear speaker low setting failed.\n");
333 (void)vs1053b_deinit(&gs_handle);
334
335 return 1;
336 }
337
338 /* output */
339 vs1053b_interface_debug_print("vs1053b: disable ear speaker low setting.\n");
340
341 res = vs1053b_get_ear_speaker_low_setting(&gs_handle, &enable);
342 if (res != 0)
343 {
344 vs1053b_interface_debug_print("vs1053b: get ear speaker low setting failed.\n");
345 (void)vs1053b_deinit(&gs_handle);
346
347 return 1;
348 }
349 vs1053b_interface_debug_print("vs1053b: check ear speaker low setting %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
350
351 /* vs1053b_set_allow_sdi_test/vs1053b_get_allow_sdi_test test */
352 vs1053b_interface_debug_print("vs1053b: vs1053b_set_allow_sdi_test/vs1053b_get_allow_sdi_test test.\n");
353
354 /* enable allow sdi test */
356 if (res != 0)
357 {
358 vs1053b_interface_debug_print("vs1053b: set allow sdi test failed.\n");
359 (void)vs1053b_deinit(&gs_handle);
360
361 return 1;
362 }
363
364 /* output */
365 vs1053b_interface_debug_print("vs1053b: enable allow sdi test.\n");
366
367 /* get allow sdi test */
368 res = vs1053b_get_allow_sdi_test(&gs_handle, &enable);
369 if (res != 0)
370 {
371 vs1053b_interface_debug_print("vs1053b: get allow sdi test failed.\n");
372 (void)vs1053b_deinit(&gs_handle);
373
374 return 1;
375 }
376 vs1053b_interface_debug_print("vs1053b: check allow sdi test %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
377
378 /* disable allow sdi test */
380 if (res != 0)
381 {
382 vs1053b_interface_debug_print("vs1053b: set allow sdi test failed.\n");
383 (void)vs1053b_deinit(&gs_handle);
384
385 return 1;
386 }
387
388 /* output */
389 vs1053b_interface_debug_print("vs1053b: disable allow sdi test.\n");
390
391 /* get allow sdi test */
392 res = vs1053b_get_allow_sdi_test(&gs_handle, &enable);
393 if (res != 0)
394 {
395 vs1053b_interface_debug_print("vs1053b: get allow sdi test failed.\n");
396 (void)vs1053b_deinit(&gs_handle);
397
398 return 1;
399 }
400 vs1053b_interface_debug_print("vs1053b: check allow sdi test %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
401
402 /* vs1053b_set_stream_mode/vs1053b_get_stream_mode test */
403 vs1053b_interface_debug_print("vs1053b: vs1053b_set_stream_mode/vs1053b_get_stream_mode test.\n");
404
405 /* enable stream mode */
407 if (res != 0)
408 {
409 vs1053b_interface_debug_print("vs1053b: set stream mode failed.\n");
410 (void)vs1053b_deinit(&gs_handle);
411
412 return 1;
413 }
414
415 /* output */
416 vs1053b_interface_debug_print("vs1053b: enable stream mode.\n");
417
418 /* get stream mode */
419 res = vs1053b_get_stream_mode(&gs_handle, &enable);
420 if (res != 0)
421 {
422 vs1053b_interface_debug_print("vs1053b: get stream mode failed.\n");
423 (void)vs1053b_deinit(&gs_handle);
424
425 return 1;
426 }
427 vs1053b_interface_debug_print("vs1053b: check stream mode %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
428
429 /* disable stream mode */
431 if (res != 0)
432 {
433 vs1053b_interface_debug_print("vs1053b: set stream mode failed.\n");
434 (void)vs1053b_deinit(&gs_handle);
435
436 return 1;
437 }
438
439 /* output */
440 vs1053b_interface_debug_print("vs1053b: disable stream mode.\n");
441
442 /* get stream mode */
443 res = vs1053b_get_stream_mode(&gs_handle, &enable);
444 if (res != 0)
445 {
446 vs1053b_interface_debug_print("vs1053b: get stream mode failed.\n");
447 (void)vs1053b_deinit(&gs_handle);
448
449 return 1;
450 }
451 vs1053b_interface_debug_print("vs1053b: check stream mode %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
452
453 /* vs1053b_set_ear_speaker_high_setting/vs1053b_get_ear_speaker_high_setting test */
454 vs1053b_interface_debug_print("vs1053b: vs1053b_set_ear_speaker_high_setting/vs1053b_get_ear_speaker_high_setting test.\n");
455
456 /* enable ear speaker high setting */
458 if (res != 0)
459 {
460 vs1053b_interface_debug_print("vs1053b: set ear speaker high setting failed.\n");
461 (void)vs1053b_deinit(&gs_handle);
462
463 return 1;
464 }
465
466 /* output */
467 vs1053b_interface_debug_print("vs1053b: enable ear speaker high setting.\n");
468
469 /* get ear speaker high setting */
470 res = vs1053b_get_ear_speaker_high_setting(&gs_handle, &enable);
471 if (res != 0)
472 {
473 vs1053b_interface_debug_print("vs1053b: get ear speaker high setting failed.\n");
474 (void)vs1053b_deinit(&gs_handle);
475
476 return 1;
477 }
478 vs1053b_interface_debug_print("vs1053b: check ear speaker high setting %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
479
480 /* disable ear speaker high setting */
482 if (res != 0)
483 {
484 vs1053b_interface_debug_print("vs1053b: set ear speaker high setting failed.\n");
485 (void)vs1053b_deinit(&gs_handle);
486
487 return 1;
488 }
489
490 /* output */
491 vs1053b_interface_debug_print("vs1053b: disable ear speaker high setting.\n");
492
493 /* get ear speaker high setting */
494 res = vs1053b_get_ear_speaker_high_setting(&gs_handle, &enable);
495 if (res != 0)
496 {
497 vs1053b_interface_debug_print("vs1053b: get ear speaker high setting failed.\n");
498 (void)vs1053b_deinit(&gs_handle);
499
500 return 1;
501 }
502 vs1053b_interface_debug_print("vs1053b: check ear speaker high setting %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
503
504 /* vs1053b_set_dclk_edge/vs1053b_get_dclk_edge test */
505 vs1053b_interface_debug_print("vs1053b: vs1053b_set_dclk_edge/vs1053b_get_dclk_edge test.\n");
506
507 /* set dclk edge falling */
509 if (res != 0)
510 {
511 vs1053b_interface_debug_print("vs1053b: set dclk edge failed.\n");
512 (void)vs1053b_deinit(&gs_handle);
513
514 return 1;
515 }
516
517 /* output */
518 vs1053b_interface_debug_print("vs1053b: set dclk edge falling.\n");
519
520 /* get dclk edge */
521 res = vs1053b_get_dclk_edge(&gs_handle, &edge);
522 if (res != 0)
523 {
524 vs1053b_interface_debug_print("vs1053b: get dclk edge failed.\n");
525 (void)vs1053b_deinit(&gs_handle);
526
527 return 1;
528 }
529 vs1053b_interface_debug_print("vs1053b: check dclk edge %s.\n", edge == VS1053B_DCLK_EDGE_FALLING ? "ok" : "error");
530
531 /* vs1053b_set_sdi_bit_order/vs1053b_get_sdi_bit_order test */
532 vs1053b_interface_debug_print("vs1053b: vs1053b_set_sdi_bit_order/vs1053b_get_sdi_bit_order test.\n");
533
534 /* set sdi bit order msb first */
536 if (res != 0)
537 {
538 vs1053b_interface_debug_print("vs1053b: set sdi bit order failed.\n");
539 (void)vs1053b_deinit(&gs_handle);
540
541 return 1;
542 }
543
544 /* output */
545 vs1053b_interface_debug_print("vs1053b: set sdi bit order msb first.\n");
546
547 /* get sdi bit order */
548 res = vs1053b_get_sdi_bit_order(&gs_handle, &order);
549 if (res != 0)
550 {
551 vs1053b_interface_debug_print("vs1053b: get sdi bit order failed.\n");
552 (void)vs1053b_deinit(&gs_handle);
553
554 return 1;
555 }
556 vs1053b_interface_debug_print("vs1053b: check sdi bit order %s.\n", order == VS1053B_BIT_ORDER_MSB_FIRST ? "ok" : "error");
557
558 /* vs1053b_set_share_spi_chip_select/vs1053b_get_share_spi_chip_select test */
559 vs1053b_interface_debug_print("vs1053b: vs1053b_set_share_spi_chip_select/vs1053b_get_share_spi_chip_select test.\n");
560
561 /* enable share spi chip select */
563 if (res != 0)
564 {
565 vs1053b_interface_debug_print("vs1053b: set share spi chip select failed.\n");
566 (void)vs1053b_deinit(&gs_handle);
567
568 return 1;
569 }
570
571 /* output */
572 vs1053b_interface_debug_print("vs1053b: enable share spi chip select.\n");
573
574 /* get share spi chip select */
575 res = vs1053b_get_share_spi_chip_select(&gs_handle, &enable);
576 if (res != 0)
577 {
578 vs1053b_interface_debug_print("vs1053b: get share spi chip select failed.\n");
579 (void)vs1053b_deinit(&gs_handle);
580
581 return 1;
582 }
583 vs1053b_interface_debug_print("vs1053b: check share spi chip select %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
584
585 /* disable share spi chip select */
587 if (res != 0)
588 {
589 vs1053b_interface_debug_print("vs1053b: set share spi chip select failed.\n");
590 (void)vs1053b_deinit(&gs_handle);
591
592 return 1;
593 }
594
595 /* output */
596 vs1053b_interface_debug_print("vs1053b: disable share spi chip select.\n");
597
598 /* get share spi chip select */
599 res = vs1053b_get_share_spi_chip_select(&gs_handle, &enable);
600 if (res != 0)
601 {
602 vs1053b_interface_debug_print("vs1053b: get share spi chip select failed.\n");
603 (void)vs1053b_deinit(&gs_handle);
604
605 return 1;
606 }
607 vs1053b_interface_debug_print("vs1053b: check share spi chip select %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
608
609 /* vs1053b_set_native_spi_modes/vs1053b_get_native_spi_modes test */
610 vs1053b_interface_debug_print("vs1053b: vs1053b_set_native_spi_modes/vs1053b_get_native_spi_modes test.\n");
611
612 /* enable native spi modes */
614 if (res != 0)
615 {
616 vs1053b_interface_debug_print("vs1053b: set native spi modes failed.\n");
617 (void)vs1053b_deinit(&gs_handle);
618
619 return 1;
620 }
621
622 /* output */
623 vs1053b_interface_debug_print("vs1053b: enable native spi modes.\n");
624
625 /* get native spi modes */
626 res = vs1053b_get_native_spi_modes(&gs_handle, &enable);
627 if (res != 0)
628 {
629 vs1053b_interface_debug_print("vs1053b: get native spi modes failed.\n");
630 (void)vs1053b_deinit(&gs_handle);
631
632 return 1;
633 }
634 vs1053b_interface_debug_print("vs1053b: check native spi modes %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
635
636 /* vs1053b_set_pcm_adpcm_recording_active/vs1053b_get_pcm_adpcm_recording_active test */
637 vs1053b_interface_debug_print("vs1053b: vs1053b_set_pcm_adpcm_recording_active/vs1053b_get_pcm_adpcm_recording_active test.\n");
638
639 /* enable pcm adpcm recording active */
641 if (res != 0)
642 {
643 vs1053b_interface_debug_print("vs1053b: set pcm adpcm recording active failed.\n");
644 (void)vs1053b_deinit(&gs_handle);
645
646 return 1;
647 }
648
649 /* output */
650 vs1053b_interface_debug_print("vs1053b: enable pcm adpcm recording active.\n");
651
652 /* get pcm adpcm recording active */
653 res = vs1053b_get_pcm_adpcm_recording_active(&gs_handle, &enable);
654 if (res != 0)
655 {
656 vs1053b_interface_debug_print("vs1053b: get pcm adpcm recording active failed.\n");
657 (void)vs1053b_deinit(&gs_handle);
658
659 return 1;
660 }
661 vs1053b_interface_debug_print("vs1053b: check pcm adpcm recording active %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
662
663 /* disable pcm adpcm recording active */
665 if (res != 0)
666 {
667 vs1053b_interface_debug_print("vs1053b: set pcm adpcm recording active failed.\n");
668 (void)vs1053b_deinit(&gs_handle);
669
670 return 1;
671 }
672
673 /* output */
674 vs1053b_interface_debug_print("vs1053b: disable pcm adpcm recording active.\n");
675
676 /* get pcm adpcm recording active */
677 res = vs1053b_get_pcm_adpcm_recording_active(&gs_handle, &enable);
678 if (res != 0)
679 {
680 vs1053b_interface_debug_print("vs1053b: get pcm adpcm recording active failed.\n");
681 (void)vs1053b_deinit(&gs_handle);
682
683 return 1;
684 }
685 vs1053b_interface_debug_print("vs1053b: check pcm adpcm recording active %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
686
687 /* vs1053b_set_selector/vs1053b_get_selector test */
688 vs1053b_interface_debug_print("vs1053b: vs1053b_set_selector/vs1053b_get_selector test.\n");
689
690 /* microphone */
692 if (res != 0)
693 {
694 vs1053b_interface_debug_print("vs1053b: set selector failed.\n");
695 (void)vs1053b_deinit(&gs_handle);
696
697 return 1;
698 }
699
700 /* output */
701 vs1053b_interface_debug_print("vs1053b: set selector microphone.\n");
702
703 /* get selector */
704 res = vs1053b_get_selector(&gs_handle, &selector);
705 if (res != 0)
706 {
707 vs1053b_interface_debug_print("vs1053b: get selector failed.\n");
708 (void)vs1053b_deinit(&gs_handle);
709
710 return 1;
711 }
712 vs1053b_interface_debug_print("vs1053b: check selector %s.\n", selector == VS1053B_SELECTOR_MICP ? "ok" : "error");
713
714 /* line1 */
716 if (res != 0)
717 {
718 vs1053b_interface_debug_print("vs1053b: set selector failed.\n");
719 (void)vs1053b_deinit(&gs_handle);
720
721 return 1;
722 }
723
724 /* output */
725 vs1053b_interface_debug_print("vs1053b: set selector line1.\n");
726
727 /* get selector */
728 res = vs1053b_get_selector(&gs_handle, &selector);
729 if (res != 0)
730 {
731 vs1053b_interface_debug_print("vs1053b: get selector failed.\n");
732 (void)vs1053b_deinit(&gs_handle);
733
734 return 1;
735 }
736 vs1053b_interface_debug_print("vs1053b: check selector %s.\n", selector == VS1053B_SELECTOR_LINE1 ? "ok" : "error");
737
738 /* vs1053b_set_clock_range/vs1053b_get_clock_range test */
739 vs1053b_interface_debug_print("vs1053b: vs1053b_set_clock_range/vs1053b_get_clock_range test.\n");
740
741 /* 12MHz - 13MHz */
743 if (res != 0)
744 {
745 vs1053b_interface_debug_print("vs1053b: set clock range failed.\n");
746 (void)vs1053b_deinit(&gs_handle);
747
748 return 1;
749 }
750
751 /* output */
752 vs1053b_interface_debug_print("vs1053b: set clock range 12MHz - 13MHz.\n");
753
754 /* get clock range */
755 res = vs1053b_get_clock_range(&gs_handle, &range);
756 if (res != 0)
757 {
758 vs1053b_interface_debug_print("vs1053b: get clock range failed.\n");
759 (void)vs1053b_deinit(&gs_handle);
760
761 return 1;
762 }
763 vs1053b_interface_debug_print("vs1053b: check clock range %s.\n", range == VS1053B_CLOCK_RANGE_12MHZ_13MHZ ? "ok" : "error");
764
765 /* vs1053b_set_do_not_jump/vs1053b_get_do_not_jump test */
766 vs1053b_interface_debug_print("vs1053b: vs1053b_set_do_not_jump/vs1053b_get_do_not_jump test.\n");
767
768 /* enable do not jump */
770 if (res != 0)
771 {
772 vs1053b_interface_debug_print("vs1053b: set do not jump failed.\n");
773 (void)vs1053b_deinit(&gs_handle);
774
775 return 1;
776 }
777
778 /* output */
779 vs1053b_interface_debug_print("vs1053b: enable do not jump.\n");
780
781 /* get do not jump */
782 res = vs1053b_get_do_not_jump(&gs_handle, &enable);
783 if (res != 0)
784 {
785 vs1053b_interface_debug_print("vs1053b: get do not jump failed.\n");
786 (void)vs1053b_deinit(&gs_handle);
787
788 return 1;
789 }
790 vs1053b_interface_debug_print("vs1053b: check do not jump %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
791
792 /* disable do not jump */
794 if (res != 0)
795 {
796 vs1053b_interface_debug_print("vs1053b: set do not jump failed.\n");
797 (void)vs1053b_deinit(&gs_handle);
798
799 return 1;
800 }
801
802 /* output */
803 vs1053b_interface_debug_print("vs1053b: disable do not jump.\n");
804
805 /* get do not jump */
806 res = vs1053b_get_do_not_jump(&gs_handle, &enable);
807 if (res != 0)
808 {
809 vs1053b_interface_debug_print("vs1053b: get do not jump failed.\n");
810 (void)vs1053b_deinit(&gs_handle);
811
812 return 1;
813 }
814 vs1053b_interface_debug_print("vs1053b: check do not jump %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
815
816 /* vs1053b_set_swing/vs1053b_get_swing test */
817 vs1053b_interface_debug_print("vs1053b: vs1053b_set_swing/vs1053b_get_swing test.\n");
818
819 /* set swing random */
820 reg = rand() % 8;
821 res = vs1053b_set_swing(&gs_handle, reg);
822 if (res != 0)
823 {
824 vs1053b_interface_debug_print("vs1053b: set swing failed.\n");
825 (void)vs1053b_deinit(&gs_handle);
826
827 return 1;
828 }
829
830 /* output */
831 vs1053b_interface_debug_print("vs1053b: set swing 0x%02X.\n", reg);
832
833 /* get swing */
834 res = vs1053b_get_swing(&gs_handle, &reg_check);
835 if (res != 0)
836 {
837 vs1053b_interface_debug_print("vs1053b: get swing failed.\n");
838 (void)vs1053b_deinit(&gs_handle);
839
840 return 1;
841 }
842 vs1053b_interface_debug_print("vs1053b: check swing %s.\n", reg == reg_check ? "ok" : "error");
843
844 /* vs1053b_set_overload_indicator/vs1053b_get_overload_indicator test */
845 vs1053b_interface_debug_print("vs1053b: vs1053b_set_overload_indicator/vs1053b_get_overload_indicator test.\n");
846
847 /* disable overload indicator */
849 if (res != 0)
850 {
851 vs1053b_interface_debug_print("vs1053b: set overload indicator failed.\n");
852 (void)vs1053b_deinit(&gs_handle);
853
854 return 1;
855 }
856
857 /* output */
858 vs1053b_interface_debug_print("vs1053b: disable overload indicator.\n");
859
860 /* get overload indicator */
861 res = vs1053b_get_overload_indicator(&gs_handle, &enable);
862 if (res != 0)
863 {
864 vs1053b_interface_debug_print("vs1053b: get overload indicator failed.\n");
865 (void)vs1053b_deinit(&gs_handle);
866
867 return 1;
868 }
869 vs1053b_interface_debug_print("vs1053b: check overload indicator %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
870
871 /* vs1053b_set_overload_detection/vs1053b_get_overload_detection test */
872 vs1053b_interface_debug_print("vs1053b: vs1053b_set_overload_detection/vs1053b_get_overload_detection test.\n");
873
874 /* enable overload detection */
876 if (res != 0)
877 {
878 vs1053b_interface_debug_print("vs1053b: set overload detection failed.\n");
879 (void)vs1053b_deinit(&gs_handle);
880
881 return 1;
882 }
883
884 /* output */
885 vs1053b_interface_debug_print("vs1053b: enable overload detection.\n");
886
887 /* get overload detection */
888 res = vs1053b_get_overload_detection(&gs_handle, &enable);
889 if (res != 0)
890 {
891 vs1053b_interface_debug_print("vs1053b: get overload detection failed.\n");
892 (void)vs1053b_deinit(&gs_handle);
893
894 return 1;
895 }
896 vs1053b_interface_debug_print("vs1053b: check overload indicator %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
897
898 /* disable overload detection */
900 if (res != 0)
901 {
902 vs1053b_interface_debug_print("vs1053b: set overload detection failed.\n");
903 (void)vs1053b_deinit(&gs_handle);
904
905 return 1;
906 }
907
908 /* output */
909 vs1053b_interface_debug_print("vs1053b: disable overload detection.\n");
910
911 /* get overload detection */
912 res = vs1053b_get_overload_detection(&gs_handle, &enable);
913 if (res != 0)
914 {
915 vs1053b_interface_debug_print("vs1053b: get overload detection failed.\n");
916 (void)vs1053b_deinit(&gs_handle);
917
918 return 1;
919 }
920 vs1053b_interface_debug_print("vs1053b: check overload indicator %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
921
922 /* vs1053b_get_version test */
923 vs1053b_interface_debug_print("vs1053b: vs1053b_get_version test.\n");
924
925 /* get version */
926 res = vs1053b_get_version(&gs_handle, &version);
927 if (res != 0)
928 {
929 vs1053b_interface_debug_print("vs1053b: get version failed.\n");
930 (void)vs1053b_deinit(&gs_handle);
931
932 return 1;
933 }
934
935 /* output */
936 vs1053b_interface_debug_print("vs1053b: version is 0x%02X.\n", version);
937
938 /* vs1053b_set_analog_driver_power_down/vs1053b_get_analog_driver_power_down test */
939 vs1053b_interface_debug_print("vs1053b: vs1053b_set_analog_driver_power_down/vs1053b_get_analog_driver_power_down test.\n");
940
941 /* enable analog driver power down */
943 if (res != 0)
944 {
945 vs1053b_interface_debug_print("vs1053b: set analog driver power down failed.\n");
946 (void)vs1053b_deinit(&gs_handle);
947
948 return 1;
949 }
950
951 /* output */
952 vs1053b_interface_debug_print("vs1053b: enable analog driver power down.\n");
953
954 /* get analog driver power down */
955 res = vs1053b_get_analog_driver_power_down(&gs_handle, &enable);
956 if (res != 0)
957 {
958 vs1053b_interface_debug_print("vs1053b: get analog driver power down failed.\n");
959 (void)vs1053b_deinit(&gs_handle);
960
961 return 1;
962 }
963 vs1053b_interface_debug_print("vs1053b: check analog driver power down %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
964
965 /* disable analog driver power down */
967 if (res != 0)
968 {
969 vs1053b_interface_debug_print("vs1053b: set analog driver power down failed.\n");
970 (void)vs1053b_deinit(&gs_handle);
971
972 return 1;
973 }
974
975 /* output */
976 vs1053b_interface_debug_print("vs1053b: disable analog driver power down.\n");
977
978 /* get analog driver power down */
979 res = vs1053b_get_analog_driver_power_down(&gs_handle, &enable);
980 if (res != 0)
981 {
982 vs1053b_interface_debug_print("vs1053b: get analog driver power down failed.\n");
983 (void)vs1053b_deinit(&gs_handle);
984
985 return 1;
986 }
987 vs1053b_interface_debug_print("vs1053b: check analog driver power down %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
988
989 /* vs1053b_set_analog_internal_power_down/vs1053b_get_analog_internal_power_down test */
990 vs1053b_interface_debug_print("vs1053b: vs1053b_set_analog_internal_power_down/vs1053b_get_analog_internal_power_down test.\n");
991
992 /* disable analog internal power down */
994 if (res != 0)
995 {
996 vs1053b_interface_debug_print("vs1053b: set analog internal power down failed.\n");
997 (void)vs1053b_deinit(&gs_handle);
998
999 return 1;
1000 }
1001
1002 /* output */
1003 vs1053b_interface_debug_print("vs1053b: disable analog internal power down.\n");
1004
1005 /* get analog internal power down */
1006 res = vs1053b_get_analog_internal_power_down(&gs_handle, &enable);
1007 if (res != 0)
1008 {
1009 vs1053b_interface_debug_print("vs1053b: get analog internal power down failed.\n");
1010 (void)vs1053b_deinit(&gs_handle);
1011
1012 return 1;
1013 }
1014 vs1053b_interface_debug_print("vs1053b: check analog internal power down %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
1015
1016 /* vs1053b_set_ad_clock/vs1053b_get_ad_clock test */
1017 vs1053b_interface_debug_print("vs1053b: vs1053b_set_ad_clock/vs1053b_get_ad_clock test.\n");
1018
1019 /* ad clock 6mhz */
1021 if (res != 0)
1022 {
1023 vs1053b_interface_debug_print("vs1053b: set ad clock failed.\n");
1024 (void)vs1053b_deinit(&gs_handle);
1025
1026 return 1;
1027 }
1028
1029 /* output */
1030 vs1053b_interface_debug_print("vs1053b: set ad clock 6mhz.\n");
1031
1032 /* get ad clock */
1033 res = vs1053b_get_ad_clock(&gs_handle, &ad_clock);
1034 if (res != 0)
1035 {
1036 vs1053b_interface_debug_print("vs1053b: get ad clock failed.\n");
1037 (void)vs1053b_deinit(&gs_handle);
1038
1039 return 1;
1040 }
1041 vs1053b_interface_debug_print("vs1053b: check ad clock %s.\n", ad_clock == VS1053B_AD_CLOCK_6MHZ ? "ok" : "error");
1042
1043 /* vs1053b_set_reference_voltage/vs1053b_get_reference_voltage test */
1044 vs1053b_interface_debug_print("vs1053b: vs1053b_set_reference_voltage/vs1053b_get_reference_voltage test.\n");
1045
1046 /* set reference voltage 1.23V */
1048 if (res != 0)
1049 {
1050 vs1053b_interface_debug_print("vs1053b: set reference voltage failed.\n");
1051 (void)vs1053b_deinit(&gs_handle);
1052
1053 return 1;
1054 }
1055
1056 /* output */
1057 vs1053b_interface_debug_print("vs1053b: set reference voltage 1.23V.\n");
1058
1059 /* get reference voltage */
1060 res = vs1053b_get_reference_voltage(&gs_handle, &voltage);
1061 if (res != 0)
1062 {
1063 vs1053b_interface_debug_print("vs1053b: get reference voltage failed.\n");
1064 (void)vs1053b_deinit(&gs_handle);
1065
1066 return 1;
1067 }
1068 vs1053b_interface_debug_print("vs1053b: check reference voltage %s.\n", voltage == VS1053B_REFERENCE_VOLTAGE_1P23V ? "ok" : "error");
1069
1070 /* vs1053b_set_treble_control/vs1053b_get_treble_control test */
1071 vs1053b_interface_debug_print("vs1053b: vs1053b_set_treble_control/vs1053b_get_treble_control test.\n");
1072
1073 /* set treble control random */
1074 reg = rand() % 16;
1075 res = vs1053b_set_treble_control(&gs_handle, reg);
1076 if (res != 0)
1077 {
1078 vs1053b_interface_debug_print("vs1053b: set treble control failed.\n");
1079 (void)vs1053b_deinit(&gs_handle);
1080
1081 return 1;
1082 }
1083
1084 /* output */
1085 vs1053b_interface_debug_print("vs1053b: set treble control 0x%02X.\n", reg);
1086
1087 /* get treble control */
1088 res = vs1053b_get_treble_control(&gs_handle, &reg_check);
1089 if (res != 0)
1090 {
1091 vs1053b_interface_debug_print("vs1053b: get treble control failed.\n");
1092 (void)vs1053b_deinit(&gs_handle);
1093
1094 return 1;
1095 }
1096 vs1053b_interface_debug_print("vs1053b: check treble control %s.\n", reg_check == reg ? "ok" : "error");
1097
1098 /* vs1053b_set_lower_limit_frequency_in_1000_hz/vs1053b_get_lower_limit_frequency_in_1000_hz test */
1099 vs1053b_interface_debug_print("vs1053b: vs1053b_set_lower_limit_frequency_in_1000_hz/vs1053b_get_lower_limit_frequency_in_1000_hz test.\n");
1100
1101 /* set lower limit frequency in 1000 hz random */
1102 reg = rand() % 16;
1103 res = vs1053b_set_lower_limit_frequency_in_1000_hz(&gs_handle, reg);
1104 if (res != 0)
1105 {
1106 vs1053b_interface_debug_print("vs1053b: set lower limit frequency in 1000 hz failed.\n");
1107 (void)vs1053b_deinit(&gs_handle);
1108
1109 return 1;
1110 }
1111
1112 /* output */
1113 vs1053b_interface_debug_print("vs1053b: set lower limit frequency in 1000 hz 0x%02X.\n", reg);
1114
1115 /* get lower limit frequency in 1000 hz */
1116 res = vs1053b_get_lower_limit_frequency_in_1000_hz(&gs_handle, &reg_check);
1117 if (res != 0)
1118 {
1119 vs1053b_interface_debug_print("vs1053b: get lower limit frequency in 1000 hz failed.\n");
1120 (void)vs1053b_deinit(&gs_handle);
1121
1122 return 1;
1123 }
1124 vs1053b_interface_debug_print("vs1053b: check lower limit frequency in 1000 hz %s.\n", reg_check == reg ? "ok" : "error");
1125
1126 /* vs1053b_set_bass_enhancement/vs1053b_get_bass_enhancement test */
1127 vs1053b_interface_debug_print("vs1053b: vs1053b_set_bass_enhancement/vs1053b_get_bass_enhancement test.\n");
1128
1129 /* set bass enhancement random */
1130 reg = rand() % 16;
1131 res = vs1053b_set_bass_enhancement(&gs_handle, reg);
1132 if (res != 0)
1133 {
1134 vs1053b_interface_debug_print("vs1053b: set bass enhancement failed.\n");
1135 (void)vs1053b_deinit(&gs_handle);
1136
1137 return 1;
1138 }
1139
1140 /* output */
1141 vs1053b_interface_debug_print("vs1053b: set bass enhancement 0x%02X.\n", reg);
1142
1143 /* get bass enhancement */
1144 res = vs1053b_get_bass_enhancement(&gs_handle, &reg_check);
1145 if (res != 0)
1146 {
1147 vs1053b_interface_debug_print("vs1053b: get bass enhancement failed.\n");
1148 (void)vs1053b_deinit(&gs_handle);
1149
1150 return 1;
1151 }
1152 vs1053b_interface_debug_print("vs1053b: check bass enhancement %s.\n", reg_check == reg ? "ok" : "error");
1153
1154 /* vs1053b_set_lower_limit_frequency_in_10_hz/vs1053b_get_lower_limit_frequency_in_10_hz test */
1155 vs1053b_interface_debug_print("vs1053b: vs1053b_set_lower_limit_frequency_in_10_hz/vs1053b_get_lower_limit_frequency_in_10_hz test.\n");
1156
1157 /* set lower limit frequency in 10 hz random */
1158 reg = rand() % 16;
1159 res = vs1053b_set_lower_limit_frequency_in_10_hz(&gs_handle, reg);
1160 if (res != 0)
1161 {
1162 vs1053b_interface_debug_print("vs1053b: set lower limit frequency in 10 hz failed.\n");
1163 (void)vs1053b_deinit(&gs_handle);
1164
1165 return 1;
1166 }
1167
1168 /* output */
1169 vs1053b_interface_debug_print("vs1053b: set lower limit frequency in 10 hz 0x%02X.\n", reg);
1170
1171 /* get lower limit frequency in 10 hz */
1172 res = vs1053b_get_lower_limit_frequency_in_10_hz(&gs_handle, &reg_check);
1173 if (res != 0)
1174 {
1175 vs1053b_interface_debug_print("vs1053b: get lower limit frequency in 10 hz failed.\n");
1176 (void)vs1053b_deinit(&gs_handle);
1177
1178 return 1;
1179 }
1180 vs1053b_interface_debug_print("vs1053b: check lower limit frequency in 10 hz %s.\n", reg_check == reg ? "ok" : "error");
1181
1182 /* vs1053b_set_clock_multiplier/vs1053b_get_clock_multiplier test */
1183 vs1053b_interface_debug_print("vs1053b: vs1053b_set_clock_multiplier/vs1053b_get_clock_multiplier test.\n");
1184
1185 /* set clock multiplier 1.0 xtali */
1187 if (res != 0)
1188 {
1189 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
1190 (void)vs1053b_deinit(&gs_handle);
1191
1192 return 1;
1193 }
1194
1195 /* output */
1196 vs1053b_interface_debug_print("vs1053b: set clock multiplier 1.0 xtali.\n");
1197
1198 /* get clock multiplier */
1199 res = vs1053b_get_clock_multiplier(&gs_handle, &multiplier);
1200 if (res != 0)
1201 {
1202 vs1053b_interface_debug_print("vs1053b: get clock multiplier failed.\n");
1203 (void)vs1053b_deinit(&gs_handle);
1204
1205 return 1;
1206 }
1207 vs1053b_interface_debug_print("vs1053b: check clock multiplier %s.\n", multiplier == VS1053B_CLOCK_MULTIPLIER_1P0_XTALI ? "ok" : "error");
1208
1209 /* set clock multiplier 2.0 xtali */
1211 if (res != 0)
1212 {
1213 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
1214 (void)vs1053b_deinit(&gs_handle);
1215
1216 return 1;
1217 }
1218
1219 /* output */
1220 vs1053b_interface_debug_print("vs1053b: set clock multiplier 2.0 xtali.\n");
1221
1222 /* get clock multiplier */
1223 res = vs1053b_get_clock_multiplier(&gs_handle, &multiplier);
1224 if (res != 0)
1225 {
1226 vs1053b_interface_debug_print("vs1053b: get clock multiplier failed.\n");
1227 (void)vs1053b_deinit(&gs_handle);
1228
1229 return 1;
1230 }
1231 vs1053b_interface_debug_print("vs1053b: check clock multiplier %s.\n", multiplier == VS1053B_CLOCK_MULTIPLIER_2P0_XTALI ? "ok" : "error");
1232
1233 /* set clock multiplier 2.5 xtali */
1235 if (res != 0)
1236 {
1237 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
1238 (void)vs1053b_deinit(&gs_handle);
1239
1240 return 1;
1241 }
1242
1243 /* output */
1244 vs1053b_interface_debug_print("vs1053b: set clock multiplier 2.5 xtali.\n");
1245
1246 /* get clock multiplier */
1247 res = vs1053b_get_clock_multiplier(&gs_handle, &multiplier);
1248 if (res != 0)
1249 {
1250 vs1053b_interface_debug_print("vs1053b: get clock multiplier failed.\n");
1251 (void)vs1053b_deinit(&gs_handle);
1252
1253 return 1;
1254 }
1255 vs1053b_interface_debug_print("vs1053b: check clock multiplier %s.\n", multiplier == VS1053B_CLOCK_MULTIPLIER_2P5_XTALI ? "ok" : "error");
1256
1257 /* set clock multiplier 3.0 xtali */
1259 if (res != 0)
1260 {
1261 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
1262 (void)vs1053b_deinit(&gs_handle);
1263
1264 return 1;
1265 }
1266
1267 /* output */
1268 vs1053b_interface_debug_print("vs1053b: set clock multiplier 3.0 xtali.\n");
1269
1270 /* get clock multiplier */
1271 res = vs1053b_get_clock_multiplier(&gs_handle, &multiplier);
1272 if (res != 0)
1273 {
1274 vs1053b_interface_debug_print("vs1053b: get clock multiplier failed.\n");
1275 (void)vs1053b_deinit(&gs_handle);
1276
1277 return 1;
1278 }
1279 vs1053b_interface_debug_print("vs1053b: check clock multiplier %s.\n", multiplier == VS1053B_CLOCK_MULTIPLIER_3P0_XTALI ? "ok" : "error");
1280
1281 /* set clock multiplier 3.5 xtali */
1283 if (res != 0)
1284 {
1285 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
1286 (void)vs1053b_deinit(&gs_handle);
1287
1288 return 1;
1289 }
1290
1291 /* output */
1292 vs1053b_interface_debug_print("vs1053b: set clock multiplier 3.5 xtali.\n");
1293
1294 /* get clock multiplier */
1295 res = vs1053b_get_clock_multiplier(&gs_handle, &multiplier);
1296 if (res != 0)
1297 {
1298 vs1053b_interface_debug_print("vs1053b: get clock multiplier failed.\n");
1299 (void)vs1053b_deinit(&gs_handle);
1300
1301 return 1;
1302 }
1303 vs1053b_interface_debug_print("vs1053b: check clock multiplier %s.\n", multiplier == VS1053B_CLOCK_MULTIPLIER_3P5_XTALI ? "ok" : "error");
1304
1305 /* set clock multiplier 4.0 xtali */
1307 if (res != 0)
1308 {
1309 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
1310 (void)vs1053b_deinit(&gs_handle);
1311
1312 return 1;
1313 }
1314
1315 /* output */
1316 vs1053b_interface_debug_print("vs1053b: set clock multiplier 4.0 xtali.\n");
1317
1318 /* get clock multiplier */
1319 res = vs1053b_get_clock_multiplier(&gs_handle, &multiplier);
1320 if (res != 0)
1321 {
1322 vs1053b_interface_debug_print("vs1053b: get clock multiplier failed.\n");
1323 (void)vs1053b_deinit(&gs_handle);
1324
1325 return 1;
1326 }
1327 vs1053b_interface_debug_print("vs1053b: check clock multiplier %s.\n", multiplier == VS1053B_CLOCK_MULTIPLIER_4P0_XTALI ? "ok" : "error");
1328
1329 /* set clock multiplier 4.5 xtali */
1331 if (res != 0)
1332 {
1333 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
1334 (void)vs1053b_deinit(&gs_handle);
1335
1336 return 1;
1337 }
1338
1339 /* output */
1340 vs1053b_interface_debug_print("vs1053b: set clock multiplier 4.5 xtali.\n");
1341
1342 /* get clock multiplier */
1343 res = vs1053b_get_clock_multiplier(&gs_handle, &multiplier);
1344 if (res != 0)
1345 {
1346 vs1053b_interface_debug_print("vs1053b: get clock multiplier failed.\n");
1347 (void)vs1053b_deinit(&gs_handle);
1348
1349 return 1;
1350 }
1351 vs1053b_interface_debug_print("vs1053b: check clock multiplier %s.\n", multiplier == VS1053B_CLOCK_MULTIPLIER_4P5_XTALI ? "ok" : "error");
1352
1353 /* set clock multiplier 5.0 xtali */
1355 if (res != 0)
1356 {
1357 vs1053b_interface_debug_print("vs1053b: set clock multiplier failed.\n");
1358 (void)vs1053b_deinit(&gs_handle);
1359
1360 return 1;
1361 }
1362
1363 /* output */
1364 vs1053b_interface_debug_print("vs1053b: set clock multiplier 5.0 xtali.\n");
1365
1366 /* get clock multiplier */
1367 res = vs1053b_get_clock_multiplier(&gs_handle, &multiplier);
1368 if (res != 0)
1369 {
1370 vs1053b_interface_debug_print("vs1053b: get clock multiplier failed.\n");
1371 (void)vs1053b_deinit(&gs_handle);
1372
1373 return 1;
1374 }
1375 vs1053b_interface_debug_print("vs1053b: check clock multiplier %s.\n", multiplier == VS1053B_CLOCK_MULTIPLIER_5P0_XTALI ? "ok" : "error");
1376
1377 /* vs1053b_set_allowed_multiplier_addition/vs1053b_get_allowed_multiplier_addition test */
1378 vs1053b_interface_debug_print("vs1053b: vs1053b_set_allowed_multiplier_addition/vs1053b_get_allowed_multiplier_addition test.\n");
1379
1380 /* set allowed multiplier addition no modification */
1382 if (res != 0)
1383 {
1384 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition failed.\n");
1385 (void)vs1053b_deinit(&gs_handle);
1386
1387 return 1;
1388 }
1389
1390 /* output */
1391 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition no modification.\n");
1392
1393 /* get allowed multiplier addition */
1394 res = vs1053b_get_allowed_multiplier_addition(&gs_handle, &addition);
1395 if (res != 0)
1396 {
1397 vs1053b_interface_debug_print("vs1053b: get allowed multiplier addition failed.\n");
1398 (void)vs1053b_deinit(&gs_handle);
1399
1400 return 1;
1401 }
1402 vs1053b_interface_debug_print("vs1053b: check allowed multiplier addition %s.\n", addition == VS1053B_ALLOWED_MULTIPLIER_ADDITION_NONE ? "ok" : "error");
1403
1404 /* set allowed multiplier addition 1.0 xtali */
1406 if (res != 0)
1407 {
1408 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition failed.\n");
1409 (void)vs1053b_deinit(&gs_handle);
1410
1411 return 1;
1412 }
1413
1414 /* output */
1415 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition 1.0 xtali.\n");
1416
1417 /* get allowed multiplier addition */
1418 res = vs1053b_get_allowed_multiplier_addition(&gs_handle, &addition);
1419 if (res != 0)
1420 {
1421 vs1053b_interface_debug_print("vs1053b: get allowed multiplier addition failed.\n");
1422 (void)vs1053b_deinit(&gs_handle);
1423
1424 return 1;
1425 }
1426 vs1053b_interface_debug_print("vs1053b: check allowed multiplier addition %s.\n", addition == VS1053B_ALLOWED_MULTIPLIER_ADDITION_1P0_XTALI ? "ok" : "error");
1427
1428 /* set allowed multiplier addition 1.5 xtali */
1430 if (res != 0)
1431 {
1432 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition failed.\n");
1433 (void)vs1053b_deinit(&gs_handle);
1434
1435 return 1;
1436 }
1437
1438 /* output */
1439 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition 1.5 xtali.\n");
1440
1441 /* get allowed multiplier addition */
1442 res = vs1053b_get_allowed_multiplier_addition(&gs_handle, &addition);
1443 if (res != 0)
1444 {
1445 vs1053b_interface_debug_print("vs1053b: get allowed multiplier addition failed.\n");
1446 (void)vs1053b_deinit(&gs_handle);
1447
1448 return 1;
1449 }
1450 vs1053b_interface_debug_print("vs1053b: check allowed multiplier addition %s.\n", addition == VS1053B_ALLOWED_MULTIPLIER_ADDITION_1P5_XTALI ? "ok" : "error");
1451
1452 /* set allowed multiplier addition 2.0 xtali */
1454 if (res != 0)
1455 {
1456 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition failed.\n");
1457 (void)vs1053b_deinit(&gs_handle);
1458
1459 return 1;
1460 }
1461
1462 /* output */
1463 vs1053b_interface_debug_print("vs1053b: set allowed multiplier addition 2.0 xtali.\n");
1464
1465 /* get allowed multiplier addition */
1466 res = vs1053b_get_allowed_multiplier_addition(&gs_handle, &addition);
1467 if (res != 0)
1468 {
1469 vs1053b_interface_debug_print("vs1053b: get allowed multiplier addition failed.\n");
1470 (void)vs1053b_deinit(&gs_handle);
1471
1472 return 1;
1473 }
1474 vs1053b_interface_debug_print("vs1053b: check allowed multiplier addition %s.\n", addition == VS1053B_ALLOWED_MULTIPLIER_ADDITION_2P0_XTALI ? "ok" : "error");
1475
1476 /* vs1053b_set_clock_frequency/vs1053b_get_clock_frequency test */
1477 vs1053b_interface_debug_print("vs1053b: vs1053b_set_clock_frequency/vs1053b_get_clock_frequency test.\n");
1478
1479 /* set clock frequency random */
1480 clk = rand() % 0x400;
1481 res = vs1053b_set_clock_frequency(&gs_handle, clk);
1482 if (res != 0)
1483 {
1484 vs1053b_interface_debug_print("vs1053b: set clock frequency failed.\n");
1485 (void)vs1053b_deinit(&gs_handle);
1486
1487 return 1;
1488 }
1489
1490 /* output */
1491 vs1053b_interface_debug_print("vs1053b: set clock frequency 0x%03X.\n", clk);
1492
1493 /* get clock frequency */
1494 res = vs1053b_get_clock_frequency(&gs_handle, &clk_check);
1495 if (res != 0)
1496 {
1497 vs1053b_interface_debug_print("vs1053b: get clock frequency failed.\n");
1498 (void)vs1053b_deinit(&gs_handle);
1499
1500 return 1;
1501 }
1502 vs1053b_interface_debug_print("vs1053b: check clock frequency %s.\n", clk == clk_check ? "ok" : "error");
1503
1504 /* vs1053b_set_decode_time/vs1053b_get_decode_time test */
1505 vs1053b_interface_debug_print("vs1053b: vs1053b_set_decode_time/vs1053b_get_decode_time test.\n");
1506
1507 /* set decode time random */
1508 decode_time = rand() % 100;
1509 res = vs1053b_set_decode_time(&gs_handle, decode_time);
1510 if (res != 0)
1511 {
1512 vs1053b_interface_debug_print("vs1053b: set decode time failed.\n");
1513 (void)vs1053b_deinit(&gs_handle);
1514
1515 return 1;
1516 }
1517
1518 /* output */
1519 vs1053b_interface_debug_print("vs1053b: set decode time %d.\n", decode_time);
1520
1521 /* get decode time */
1522 res = vs1053b_get_decode_time(&gs_handle, &decode_time_check);
1523 if (res != 0)
1524 {
1525 vs1053b_interface_debug_print("vs1053b: get decode time failed.\n");
1526 (void)vs1053b_deinit(&gs_handle);
1527
1528 return 1;
1529 }
1530 vs1053b_interface_debug_print("vs1053b: check decode time %s.\n", decode_time == decode_time_check ? "ok" : "error");
1531
1532 /* vs1053b_set_sample_rate/vs1053b_get_sample_rate test */
1533 vs1053b_interface_debug_print("vs1053b: vs1053b_set_sample_rate/vs1053b_get_sample_rate test.\n");
1534
1535 /* set sample rate random */
1536 rate = rand() % 0xFFF;
1537 if ((rate % 2) != 0)
1538 {
1539 rate++;
1540 }
1541 res = vs1053b_set_sample_rate(&gs_handle, rate, VS1053B_CHANNEL_MONO);
1542 if (res != 0)
1543 {
1544 vs1053b_interface_debug_print("vs1053b: set sample rate failed.\n");
1545 (void)vs1053b_deinit(&gs_handle);
1546
1547 return 1;
1548 }
1549
1550 /* output */
1551 vs1053b_interface_debug_print("vs1053b: set mono sample rate %d.\n", rate);
1552
1553 /* get sample rate */
1554 res = vs1053b_get_sample_rate(&gs_handle, &rate_check, &channel);
1555 if (res != 0)
1556 {
1557 vs1053b_interface_debug_print("vs1053b: get sample rate failed.\n");
1558 (void)vs1053b_deinit(&gs_handle);
1559
1560 return 1;
1561 }
1562 vs1053b_interface_debug_print("vs1053b: check sample rate %s.\n", (rate == rate_check) ? "ok" : "error");
1563
1564 /* set sample rate random */
1565 rate = rand() % 0xFFF;
1566 if ((rate % 2) != 0)
1567 {
1568 rate++;
1569 }
1570 res = vs1053b_set_sample_rate(&gs_handle, rate, VS1053B_CHANNEL_STEREO);
1571 if (res != 0)
1572 {
1573 vs1053b_interface_debug_print("vs1053b: set sample rate failed.\n");
1574 (void)vs1053b_deinit(&gs_handle);
1575
1576 return 1;
1577 }
1578
1579 /* output */
1580 vs1053b_interface_debug_print("vs1053b: set stereo sample rate %d.\n", rate);
1581
1582 /* get sample rate */
1583 res = vs1053b_get_sample_rate(&gs_handle, &rate_check, &channel);
1584 if (res != 0)
1585 {
1586 vs1053b_interface_debug_print("vs1053b: get sample rate failed.\n");
1587 (void)vs1053b_deinit(&gs_handle);
1588
1589 return 1;
1590 }
1591 vs1053b_interface_debug_print("vs1053b: check sample rate %s.\n", (rate == rate_check) ? "ok" : "error");
1592
1593 /* vs1053b_set_ram_address test */
1594 vs1053b_interface_debug_print("vs1053b: vs1053b_set_ram_address test.\n");
1595
1596 /* set ram address */
1597 res = vs1053b_set_ram_address(&gs_handle, 0x1800);
1598 if (res != 0)
1599 {
1600 vs1053b_interface_debug_print("vs1053b: set ram address failed.\n");
1601 (void)vs1053b_deinit(&gs_handle);
1602
1603 return 1;
1604 }
1605 vs1053b_interface_debug_print("vs1053b: check ram address %s.\n", (res == 0) ? "ok" : "error");
1606
1607 /* vs1053b_write_ram/vs1053b_read_ram test */
1608 vs1053b_interface_debug_print("vs1053b: vs1053b_write_ram/vs1053b_read_ram test.\n");
1609
1610 /* write ram */
1611 buf[0] = 0x01;
1612 buf[1] = 0x23;
1613 res = vs1053b_write_ram(&gs_handle, buf, 2);
1614 if (res != 0)
1615 {
1616 vs1053b_interface_debug_print("vs1053b: write ram failed.\n");
1617 (void)vs1053b_deinit(&gs_handle);
1618
1619 return 1;
1620 }
1621
1622 /* output */
1623 vs1053b_interface_debug_print("vs1053b: write ram 0x%02X 0x%02X.\n", buf[0], buf[1]);
1624
1625 /* read ram */
1626 res = vs1053b_read_ram(&gs_handle, buf_check, 2);
1627 if (res != 0)
1628 {
1629 vs1053b_interface_debug_print("vs1053b: read ram failed.\n");
1630 (void)vs1053b_deinit(&gs_handle);
1631
1632 return 1;
1633 }
1634 vs1053b_interface_debug_print("vs1053b: check ram %s.\n", ((buf[0] == buf_check[0]) && (buf[1] == buf_check[1])) ? "ok" : "error");
1635
1636 /* vs1053b_set_start_address/vs1053b_get_start_address test */
1637 vs1053b_interface_debug_print("vs1053b: vs1053b_set_start_address/vs1053b_get_start_address test.\n");
1638
1639 /* set start address random */
1640 addr = rand() % 10;
1641 res = vs1053b_set_start_address(&gs_handle, addr);
1642 if (res != 0)
1643 {
1644 vs1053b_interface_debug_print("vs1053b: set start address failed.\n");
1645 (void)vs1053b_deinit(&gs_handle);
1646
1647 return 1;
1648 }
1649
1650 /* output */
1651 vs1053b_interface_debug_print("vs1053b: set start address 0x%02X.\n", addr);
1652
1653 /* get start address */
1654 res = vs1053b_get_start_address(&gs_handle, &addr_check);
1655 if (res != 0)
1656 {
1657 vs1053b_interface_debug_print("vs1053b: get start address failed.\n");
1658 (void)vs1053b_deinit(&gs_handle);
1659
1660 return 1;
1661 }
1662 vs1053b_interface_debug_print("vs1053b: check start address %s.\n", (addr == addr_check) ? "ok" : "error");
1663
1664 /* vs1053b_set_vol/vs1053b_get_vol test */
1665 vs1053b_interface_debug_print("vs1053b: vs1053b_set_vol/vs1053b_get_vol test.\n");
1666
1667 /* set vol random */
1668 left = rand() % 256;
1669 right = rand() % 256;
1670 res = vs1053b_set_vol(&gs_handle, left, right);
1671 if (res != 0)
1672 {
1673 vs1053b_interface_debug_print("vs1053b: set vol failed.\n");
1674 (void)vs1053b_deinit(&gs_handle);
1675
1676 return 1;
1677 }
1678
1679 /* output */
1680 vs1053b_interface_debug_print("vs1053b: set vol left 0x%02X.\n", left);
1681 vs1053b_interface_debug_print("vs1053b: set vol left 0x%02X.\n", right);
1682
1683 /* get vol */
1684 res = vs1053b_get_vol(&gs_handle, &left_check, &right_check);
1685 if (res != 0)
1686 {
1687 vs1053b_interface_debug_print("vs1053b: get vol failed.\n");
1688 (void)vs1053b_deinit(&gs_handle);
1689
1690 return 1;
1691 }
1692 vs1053b_interface_debug_print("vs1053b: check vol left %s.\n", (left == left_check) ? "ok" : "error");
1693 vs1053b_interface_debug_print("vs1053b: check vol left %s.\n", (right == right_check) ? "ok" : "error");
1694
1695 /* vs1053b_get_hdata test */
1696 vs1053b_interface_debug_print("vs1053b: vs1053b_get_hdata test.\n");
1697
1698 /* get hdata */
1699 res = vs1053b_get_hdata(&gs_handle, &dat0, &dat1);
1700 if (res != 0)
1701 {
1702 vs1053b_interface_debug_print("vs1053b: get hdata failed.\n");
1703 (void)vs1053b_deinit(&gs_handle);
1704
1705 return 1;
1706 }
1707 vs1053b_interface_debug_print("vs1053b: dat0 is 0x%02X, dat1 is 0x%02X.\n", dat0, dat1);
1708
1709 /* vs1053b_write_application/vs1053b_read_application test */
1710 vs1053b_interface_debug_print("vs1053b: vs1053b_write_application/vs1053b_read_application test.\n");
1711
1712 /* write application */
1713 buf[0] = rand() % 256;
1714 buf[1] = rand() % 256;
1715 res = vs1053b_write_application(&gs_handle, VS1053B_APPLICATION_0, buf, 2);
1716 if (res != 0)
1717 {
1718 vs1053b_interface_debug_print("vs1053b: write application failed.\n");
1719 (void)vs1053b_deinit(&gs_handle);
1720
1721 return 1;
1722 }
1723
1724 /* output */
1725 vs1053b_interface_debug_print("vs1053b: write application 0 0x%02X 0x%02X.\n", buf[0], buf[1]);
1726
1727 /* read application */
1728 res = vs1053b_read_application(&gs_handle, VS1053B_APPLICATION_0, buf_check, 2);
1729 if (res != 0)
1730 {
1731 vs1053b_interface_debug_print("vs1053b: read application failed.\n");
1732 (void)vs1053b_deinit(&gs_handle);
1733
1734 return 1;
1735 }
1736 vs1053b_interface_debug_print("vs1053b: check application %s.\n", ((buf[0] == buf_check[0]) && (buf[1] == buf_check[1])) ? "ok" : "error");
1737
1738 /* write application */
1739 buf[0] = rand() % 256;
1740 buf[1] = rand() % 256;
1741 res = vs1053b_write_application(&gs_handle, VS1053B_APPLICATION_1, buf, 2);
1742 if (res != 0)
1743 {
1744 vs1053b_interface_debug_print("vs1053b: write application failed.\n");
1745 (void)vs1053b_deinit(&gs_handle);
1746
1747 return 1;
1748 }
1749
1750 /* output */
1751 vs1053b_interface_debug_print("vs1053b: write application 1 0x%02X 0x%02X.\n", buf[0], buf[1]);
1752
1753 /* read application */
1754 res = vs1053b_read_application(&gs_handle, VS1053B_APPLICATION_1, buf_check, 2);
1755 if (res != 0)
1756 {
1757 vs1053b_interface_debug_print("vs1053b: read application failed.\n");
1758 (void)vs1053b_deinit(&gs_handle);
1759
1760 return 1;
1761 }
1762 vs1053b_interface_debug_print("vs1053b: check application %s.\n", ((buf[0] == buf_check[0]) && (buf[1] == buf_check[1])) ? "ok" : "error");
1763
1764 /* write application */
1765 buf[0] = rand() % 256;
1766 buf[1] = rand() % 256;
1767 res = vs1053b_write_application(&gs_handle, VS1053B_APPLICATION_2, buf, 2);
1768 if (res != 0)
1769 {
1770 vs1053b_interface_debug_print("vs1053b: write application failed.\n");
1771 (void)vs1053b_deinit(&gs_handle);
1772
1773 return 1;
1774 }
1775
1776 /* output */
1777 vs1053b_interface_debug_print("vs1053b: write application 2 0x%02X 0x%02X.\n", buf[0], buf[1]);
1778
1779 /* read application */
1780 res = vs1053b_read_application(&gs_handle, VS1053B_APPLICATION_2, buf_check, 2);
1781 if (res != 0)
1782 {
1783 vs1053b_interface_debug_print("vs1053b: read application failed.\n");
1784 (void)vs1053b_deinit(&gs_handle);
1785
1786 return 1;
1787 }
1788 vs1053b_interface_debug_print("vs1053b: check application %s.\n", ((buf[0] == buf_check[0]) && (buf[1] == buf_check[1])) ? "ok" : "error");
1789
1790 /* write application */
1791 buf[0] = rand() % 256;
1792 buf[1] = rand() % 256;
1793 res = vs1053b_write_application(&gs_handle, VS1053B_APPLICATION_3, buf, 2);
1794 if (res != 0)
1795 {
1796 vs1053b_interface_debug_print("vs1053b: write application failed.\n");
1797 (void)vs1053b_deinit(&gs_handle);
1798
1799 return 1;
1800 }
1801
1802 /* output */
1803 vs1053b_interface_debug_print("vs1053b: write application 3 0x%02X 0x%02X.\n", buf[0], buf[1]);
1804
1805 /* read application */
1806 res = vs1053b_read_application(&gs_handle, VS1053B_APPLICATION_3, buf_check, 2);
1807 if (res != 0)
1808 {
1809 vs1053b_interface_debug_print("vs1053b: read application failed.\n");
1810 (void)vs1053b_deinit(&gs_handle);
1811
1812 return 1;
1813 }
1814 vs1053b_interface_debug_print("vs1053b: check application %s.\n", ((buf[0] == buf_check[0]) && (buf[1] == buf_check[1])) ? "ok" : "error");
1815
1816 /* vs1053b_set_play_speed/vs1053b_get_play_speed test */
1817 vs1053b_interface_debug_print("vs1053b: vs1053b_set_play_speed/vs1053b_get_play_speed test.\n");
1818
1819 /* set play speed 1x */
1821 if (res != 0)
1822 {
1823 vs1053b_interface_debug_print("vs1053b: set play speed failed.\n");
1824 (void)vs1053b_deinit(&gs_handle);
1825
1826 return 1;
1827 }
1828
1829 /* output */
1830 vs1053b_interface_debug_print("vs1053b: set play speed 1x.\n");
1831
1832 /* get play speed */
1833 res = vs1053b_get_play_speed(&gs_handle, &speed);
1834 if (res != 0)
1835 {
1836 vs1053b_interface_debug_print("vs1053b: get play speed failed.\n");
1837 (void)vs1053b_deinit(&gs_handle);
1838
1839 return 1;
1840 }
1841 vs1053b_interface_debug_print("vs1053b: check play speed %s.\n", (speed == VS1053B_PLAY_SPEED_1_X) ? "ok" : "error");
1842
1843 /* set play speed 1.0x */
1845 if (res != 0)
1846 {
1847 vs1053b_interface_debug_print("vs1053b: set play speed failed.\n");
1848 (void)vs1053b_deinit(&gs_handle);
1849
1850 return 1;
1851 }
1852
1853 /* output */
1854 vs1053b_interface_debug_print("vs1053b: set play speed 1.0x.\n");
1855
1856 /* get play speed */
1857 res = vs1053b_get_play_speed(&gs_handle, &speed);
1858 if (res != 0)
1859 {
1860 vs1053b_interface_debug_print("vs1053b: get play speed failed.\n");
1861 (void)vs1053b_deinit(&gs_handle);
1862
1863 return 1;
1864 }
1865 vs1053b_interface_debug_print("vs1053b: check play speed %s.\n", (speed == VS1053B_PLAY_SPEED_1P0_X) ? "ok" : "error");
1866
1867 /* set play speed 2.0x */
1869 if (res != 0)
1870 {
1871 vs1053b_interface_debug_print("vs1053b: set play speed failed.\n");
1872 (void)vs1053b_deinit(&gs_handle);
1873
1874 return 1;
1875 }
1876
1877 /* output */
1878 vs1053b_interface_debug_print("vs1053b: set play speed 2.0x.\n");
1879
1880 /* get play speed */
1881 res = vs1053b_get_play_speed(&gs_handle, &speed);
1882 if (res != 0)
1883 {
1884 vs1053b_interface_debug_print("vs1053b: get play speed failed.\n");
1885 (void)vs1053b_deinit(&gs_handle);
1886
1887 return 1;
1888 }
1889 vs1053b_interface_debug_print("vs1053b: check play speed %s.\n", (speed == VS1053B_PLAY_SPEED_2P0_X) ? "ok" : "error");
1890
1891 /* set play speed 3.0x */
1893 if (res != 0)
1894 {
1895 vs1053b_interface_debug_print("vs1053b: set play speed failed.\n");
1896 (void)vs1053b_deinit(&gs_handle);
1897
1898 return 1;
1899 }
1900
1901 /* output */
1902 vs1053b_interface_debug_print("vs1053b: set play speed 3.0x.\n");
1903
1904 /* get play speed */
1905 res = vs1053b_get_play_speed(&gs_handle, &speed);
1906 if (res != 0)
1907 {
1908 vs1053b_interface_debug_print("vs1053b: get play speed failed.\n");
1909 (void)vs1053b_deinit(&gs_handle);
1910
1911 return 1;
1912 }
1913 vs1053b_interface_debug_print("vs1053b: check play speed %s.\n", (speed == VS1053B_PLAY_SPEED_3P0_X) ? "ok" : "error");
1914
1915 /* vs1053b_get_byte_rate test */
1916 vs1053b_interface_debug_print("vs1053b: vs1053b_get_byte_rate test.\n");
1917
1918 /* get byte rate */
1919 res = vs1053b_get_byte_rate(&gs_handle, &clk);
1920 if (res != 0)
1921 {
1922 vs1053b_interface_debug_print("vs1053b: get byte rate failed.\n");
1923 (void)vs1053b_deinit(&gs_handle);
1924
1925 return 1;
1926 }
1927 vs1053b_interface_debug_print("vs1053b: byte rate is %d.\n", clk);
1928
1929 /* vs1053b_get_end_fill_byte test */
1930 vs1053b_interface_debug_print("vs1053b: vs1053b_get_end_fill_byte test.\n");
1931
1932 /* get end fill byte */
1933 res = vs1053b_get_end_fill_byte(&gs_handle, &byte);
1934 if (res != 0)
1935 {
1936 vs1053b_interface_debug_print("vs1053b: get end fill byte failed.\n");
1937 (void)vs1053b_deinit(&gs_handle);
1938
1939 return 1;
1940 }
1941 vs1053b_interface_debug_print("vs1053b: end fill byte is %d.\n", byte);
1942
1943 /* vs1053b_swing_convert_to_register/vs1053b_swing_convert_to_data test */
1944 vs1053b_interface_debug_print("vs1053b: vs1053b_swing_convert_to_register/vs1053b_swing_convert_to_data test.\n");
1945
1946 db = 2.0f;
1947 res = vs1053b_swing_convert_to_register(&gs_handle, db, &reg);
1948 if (res != 0)
1949 {
1950 vs1053b_interface_debug_print("vs1053b: swing convert to register failed.\n");
1951 (void)vs1053b_deinit(&gs_handle);
1952
1953 return 1;
1954 }
1955 res = vs1053b_swing_convert_to_data(&gs_handle, reg, &db_check);
1956 if (res != 0)
1957 {
1958 vs1053b_interface_debug_print("vs1053b: swing convert to data failed.\n");
1959 (void)vs1053b_deinit(&gs_handle);
1960
1961 return 1;
1962 }
1963 vs1053b_interface_debug_print("vs1053b: swing convert check %0.2f and %0.2f.\n", db, db_check);
1964
1965 /* vs1053b_treble_control_convert_to_register/vs1053b_treble_control_convert_to_data test */
1966 vs1053b_interface_debug_print("vs1053b: vs1053b_treble_control_convert_to_register/vs1053b_treble_control_convert_to_data test.\n");
1967
1968 db = 4.5f;
1969 res = vs1053b_treble_control_convert_to_register(&gs_handle, db, &reg);
1970 if (res != 0)
1971 {
1972 vs1053b_interface_debug_print("vs1053b: treble control convert to register failed.\n");
1973 (void)vs1053b_deinit(&gs_handle);
1974
1975 return 1;
1976 }
1977 res = vs1053b_treble_control_convert_to_data(&gs_handle, reg, &db_check);
1978 if (res != 0)
1979 {
1980 vs1053b_interface_debug_print("vs1053b: treble control convert to data failed.\n");
1981 (void)vs1053b_deinit(&gs_handle);
1982
1983 return 1;
1984 }
1985 vs1053b_interface_debug_print("vs1053b: treble control convert check %0.2f and %0.2f.\n", db, db_check);
1986
1987 /* vs1053b_lower_limit_frequency_in_1000_hz_convert_to_register/vs1053b_lower_limit_frequency_in_1000_hz_convert_to_data test */
1988 vs1053b_interface_debug_print("vs1053b: vs1053b_lower_limit_frequency_in_1000_hz_convert_to_register/vs1053b_lower_limit_frequency_in_1000_hz_convert_to_data test.\n");
1989
1990 hz = 2000;
1992 if (res != 0)
1993 {
1994 vs1053b_interface_debug_print("vs1053b: lower limit frequency in 1000 hz convert to register failed.\n");
1995 (void)vs1053b_deinit(&gs_handle);
1996
1997 return 1;
1998 }
1999 res = vs1053b_lower_limit_frequency_in_1000_hz_convert_to_data(&gs_handle, reg, &hz_check);
2000 if (res != 0)
2001 {
2002 vs1053b_interface_debug_print("vs1053b: lower limit frequency in 1000 hz convert to data failed.\n");
2003 (void)vs1053b_deinit(&gs_handle);
2004
2005 return 1;
2006 }
2007 vs1053b_interface_debug_print("vs1053b: lower limit frequency in 1000 hz convert check %d and %d.\n", hz, hz_check);
2008
2009 /* vs1053b_lower_limit_frequency_in_10_hz_convert_to_register/vs1053b_lower_limit_frequency_in_10_hz_convert_to_data test */
2010 vs1053b_interface_debug_print("vs1053b: vs1053b_lower_limit_frequency_in_10_hz_convert_to_register/vs1053b_lower_limit_frequency_in_10_hz_convert_to_data test.\n");
2011
2012 hz = 50;
2014 if (res != 0)
2015 {
2016 vs1053b_interface_debug_print("vs1053b: lower limit frequency in 10 hz convert to register failed.\n");
2017 (void)vs1053b_deinit(&gs_handle);
2018
2019 return 1;
2020 }
2021 res = vs1053b_lower_limit_frequency_in_10_hz_convert_to_data(&gs_handle, reg, &hz_check);
2022 if (res != 0)
2023 {
2024 vs1053b_interface_debug_print("vs1053b: lower limit frequency in 10 hz convert to data failed.\n");
2025 (void)vs1053b_deinit(&gs_handle);
2026
2027 return 1;
2028 }
2029 vs1053b_interface_debug_print("vs1053b: lower limit frequency in 10 hz convert check %d and %d.\n", hz, hz_check);
2030
2031 /* vs1053b_clock_frequency_convert_to_register/vs1053b_clock_frequency_convert_to_data test */
2032 vs1053b_interface_debug_print("vs1053b: vs1053b_clock_frequency_convert_to_register/vs1053b_clock_frequency_convert_to_data test.\n");
2033
2034 db = 12000000.0f;
2035 res = vs1053b_clock_frequency_convert_to_register(&gs_handle, db, &clk);
2036 if (res != 0)
2037 {
2038 vs1053b_interface_debug_print("vs1053b: clock frequency convert to register failed.\n");
2039 (void)vs1053b_deinit(&gs_handle);
2040
2041 return 1;
2042 }
2043 res = vs1053b_clock_frequency_convert_to_data(&gs_handle, clk, &db_check);
2044 if (res != 0)
2045 {
2046 vs1053b_interface_debug_print("vs1053b: clock frequency convert to data failed.\n");
2047 (void)vs1053b_deinit(&gs_handle);
2048
2049 return 1;
2050 }
2051 vs1053b_interface_debug_print("vs1053b: clock frequency convert check %0.2f and %0.2f.\n", db, db_check);
2052
2053 /* vs1053b_vol_convert_to_register/vs1053b_vol_convert_to_data test */
2054 vs1053b_interface_debug_print("vs1053b: vs1053b_vol_convert_to_register/vs1053b_vol_convert_to_data test.\n");
2055
2056 db = 3.5f;
2057 res = vs1053b_vol_convert_to_register(&gs_handle, db, &reg);
2058 if (res != 0)
2059 {
2060 vs1053b_interface_debug_print("vs1053b: vol convert to register failed.\n");
2061 (void)vs1053b_deinit(&gs_handle);
2062
2063 return 1;
2064 }
2065 res = vs1053b_vol_convert_to_data(&gs_handle, reg, &db_check);
2066 if (res != 0)
2067 {
2068 vs1053b_interface_debug_print("vs1053b: vol convert to data failed.\n");
2069 (void)vs1053b_deinit(&gs_handle);
2070
2071 return 1;
2072 }
2073 vs1053b_interface_debug_print("vs1053b: vol convert check %0.2f and %0.2f.\n", db, db_check);
2074
2075 /* vs1053b_set_iis_mclk/vs1053b_get_iis_mclk test */
2076 vs1053b_interface_debug_print("vs1053b: vs1053b_set_iis_mclk/vs1053b_get_iis_mclk test.\n");
2077
2078 /* enable iis mclk */
2079 res = vs1053b_set_iis_mclk(&gs_handle, VS1053B_BOOL_TRUE);
2080 if (res != 0)
2081 {
2082 vs1053b_interface_debug_print("vs1053b: set iis mclk failed.\n");
2083 (void)vs1053b_deinit(&gs_handle);
2084
2085 return 1;
2086 }
2087 vs1053b_interface_debug_print("vs1053b: enable iis mclk.\n");
2088 res = vs1053b_get_iis_mclk(&gs_handle, &enable);
2089 if (res != 0)
2090 {
2091 vs1053b_interface_debug_print("vs1053b: get iis mclk failed.\n");
2092 (void)vs1053b_deinit(&gs_handle);
2093
2094 return 1;
2095 }
2096 vs1053b_interface_debug_print("vs1053b: check iis mclk %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
2097
2098 /* disable iis mclk */
2099 res = vs1053b_set_iis_mclk(&gs_handle, VS1053B_BOOL_FALSE);
2100 if (res != 0)
2101 {
2102 vs1053b_interface_debug_print("vs1053b: set iis mclk failed.\n");
2103 (void)vs1053b_deinit(&gs_handle);
2104
2105 return 1;
2106 }
2107 vs1053b_interface_debug_print("vs1053b: disable iis mclk.\n");
2108 res = vs1053b_get_iis_mclk(&gs_handle, &enable);
2109 if (res != 0)
2110 {
2111 vs1053b_interface_debug_print("vs1053b: get iis mclk failed.\n");
2112 (void)vs1053b_deinit(&gs_handle);
2113
2114 return 1;
2115 }
2116 vs1053b_interface_debug_print("vs1053b: check iis mclk %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
2117
2118 /* vs1053b_set_iis/vs1053b_get_iis test */
2119 vs1053b_interface_debug_print("vs1053b: vs1053b_set_iis/vs1053b_get_iis test.\n");
2120
2121 /* enable iis */
2122 res = vs1053b_set_iis(&gs_handle, VS1053B_BOOL_TRUE);
2123 if (res != 0)
2124 {
2125 vs1053b_interface_debug_print("vs1053b: set iis failed.\n");
2126 (void)vs1053b_deinit(&gs_handle);
2127
2128 return 1;
2129 }
2130 vs1053b_interface_debug_print("vs1053b: enable iis.\n");
2131 res = vs1053b_get_iis(&gs_handle, &enable);
2132 if (res != 0)
2133 {
2134 vs1053b_interface_debug_print("vs1053b: get iis failed.\n");
2135 (void)vs1053b_deinit(&gs_handle);
2136
2137 return 1;
2138 }
2139 vs1053b_interface_debug_print("vs1053b: check iis %s.\n", enable == VS1053B_BOOL_TRUE ? "ok" : "error");
2140
2141 /* disable iis */
2142 res = vs1053b_set_iis(&gs_handle, VS1053B_BOOL_FALSE);
2143 if (res != 0)
2144 {
2145 vs1053b_interface_debug_print("vs1053b: set iis failed.\n");
2146 (void)vs1053b_deinit(&gs_handle);
2147
2148 return 1;
2149 }
2150 vs1053b_interface_debug_print("vs1053b: disable iis.\n");
2151 res = vs1053b_get_iis(&gs_handle, &enable);
2152 if (res != 0)
2153 {
2154 vs1053b_interface_debug_print("vs1053b: get iis failed.\n");
2155 (void)vs1053b_deinit(&gs_handle);
2156
2157 return 1;
2158 }
2159 vs1053b_interface_debug_print("vs1053b: check iis %s.\n", enable == VS1053B_BOOL_FALSE ? "ok" : "error");
2160
2161 /* vs1053b_set_iis_rate/vs1053b_get_iis_rate test */
2162 vs1053b_interface_debug_print("vs1053b: vs1053b_set_iis_rate/vs1053b_get_iis_rate test.\n");
2163
2164 /* set iis rate 48khz */
2166 if (res != 0)
2167 {
2168 vs1053b_interface_debug_print("vs1053b: set iis rate failed.\n");
2169 (void)vs1053b_deinit(&gs_handle);
2170
2171 return 1;
2172 }
2173 vs1053b_interface_debug_print("vs1053b: set iis rate 48khz.\n");
2174 res = vs1053b_get_iis_rate(&gs_handle, &iis_rate);
2175 if (res != 0)
2176 {
2177 vs1053b_interface_debug_print("vs1053b: get iis rate failed.\n");
2178 (void)vs1053b_deinit(&gs_handle);
2179
2180 return 1;
2181 }
2182 vs1053b_interface_debug_print("vs1053b: check iis rate %s.\n", iis_rate == VS1053B_IIS_RATE_48KHZ ? "ok" : "error");
2183
2184 /* set iis rate 96khz */
2186 if (res != 0)
2187 {
2188 vs1053b_interface_debug_print("vs1053b: set iis rate failed.\n");
2189 (void)vs1053b_deinit(&gs_handle);
2190
2191 return 1;
2192 }
2193 vs1053b_interface_debug_print("vs1053b: set iis rate 96hz.\n");
2194 res = vs1053b_get_iis_rate(&gs_handle, &iis_rate);
2195 if (res != 0)
2196 {
2197 vs1053b_interface_debug_print("vs1053b: get iis rate failed.\n");
2198 (void)vs1053b_deinit(&gs_handle);
2199
2200 return 1;
2201 }
2202 vs1053b_interface_debug_print("vs1053b: check iis rate %s.\n", iis_rate == VS1053B_IIS_RATE_96KHZ ? "ok" : "error");
2203
2204 /* set iis rate 192khz */
2206 if (res != 0)
2207 {
2208 vs1053b_interface_debug_print("vs1053b: set iis rate failed.\n");
2209 (void)vs1053b_deinit(&gs_handle);
2210
2211 return 1;
2212 }
2213 vs1053b_interface_debug_print("vs1053b: set iis rate 192hz.\n");
2214 res = vs1053b_get_iis_rate(&gs_handle, &iis_rate);
2215 if (res != 0)
2216 {
2217 vs1053b_interface_debug_print("vs1053b: get iis rate failed.\n");
2218 (void)vs1053b_deinit(&gs_handle);
2219
2220 return 1;
2221 }
2222 vs1053b_interface_debug_print("vs1053b: check iis rate %s.\n", iis_rate == VS1053B_IIS_RATE_192KHZ ? "ok" : "error");
2223
2224 /* vs1053b_set_gpio_direction/vs1053b_get_gpio_direction test */
2225 vs1053b_interface_debug_print("vs1053b: vs1053b_set_gpio_direction/vs1053b_get_gpio_direction test.\n");
2226
2227 /* set gpio direction 0x00F0 */
2228 res = vs1053b_set_gpio_direction(&gs_handle, 0x00F0);
2229 if (res != 0)
2230 {
2231 vs1053b_interface_debug_print("vs1053b: set gpio direction failed.\n");
2232 (void)vs1053b_deinit(&gs_handle);
2233
2234 return 1;
2235 }
2236 vs1053b_interface_debug_print("vs1053b: set gpio direction 0x00F0.\n");
2237 res = vs1053b_get_gpio_direction(&gs_handle, &dat0);
2238 if (res != 0)
2239 {
2240 vs1053b_interface_debug_print("vs1053b: get gpio direction failed.\n");
2241 (void)vs1053b_deinit(&gs_handle);
2242
2243 return 1;
2244 }
2245 vs1053b_interface_debug_print("vs1053b: check gpio direction %s.\n", dat0 == 0x00F0 ? "ok" : "error");
2246
2247 /* vs1053b_set_gpio_output/vs1053b_get_gpio_output test */
2248 vs1053b_interface_debug_print("vs1053b: vs1053b_set_gpio_output/vs1053b_get_gpio_output test.\n");
2249
2250 /* set gpio output 0x0010 */
2251 res = vs1053b_set_gpio_output(&gs_handle, 0x0010);
2252 if (res != 0)
2253 {
2254 vs1053b_interface_debug_print("vs1053b: set gpio output failed.\n");
2255 (void)vs1053b_deinit(&gs_handle);
2256
2257 return 1;
2258 }
2259 vs1053b_interface_debug_print("vs1053b: set gpio output 0x0010.\n");
2260 res = vs1053b_get_gpio_output(&gs_handle, &dat0);
2261 if (res != 0)
2262 {
2263 vs1053b_interface_debug_print("vs1053b: get gpio output failed.\n");
2264 (void)vs1053b_deinit(&gs_handle);
2265
2266 return 1;
2267 }
2268 vs1053b_interface_debug_print("vs1053b: check gpio output %s.\n", dat0 == 0x0010 ? "ok" : "error");
2269
2270 /* vs1053b_get_gpio_input test */
2271 vs1053b_interface_debug_print("vs1053b: vs1053b_get_gpio_input test.\n");
2272
2273 /* get gpio input */
2274 res = vs1053b_get_gpio_input(&gs_handle, &dat0);
2275 if (res != 0)
2276 {
2277 vs1053b_interface_debug_print("vs1053b: get gpio input failed.\n");
2278 (void)vs1053b_deinit(&gs_handle);
2279
2280 return 1;
2281 }
2282 vs1053b_interface_debug_print("vs1053b: gpio input is 0x%04X.\n", dat0);
2283
2284 /* soft reset */
2285 res = vs1053b_set_soft_reset(&gs_handle, VS1053B_BOOL_TRUE);
2286 if (res != 0)
2287 {
2288 vs1053b_interface_debug_print("vs1053b: set soft reset failed.\n");
2289 (void)vs1053b_deinit(&gs_handle);
2290
2291 return 1;
2292 }
2293
2294 /* hard reset */
2295 res = vs1053b_hard_reset(&gs_handle);
2296 if (res != 0)
2297 {
2298 vs1053b_interface_debug_print("vs1053b: hard reset failed.\n");
2299 (void)vs1053b_deinit(&gs_handle);
2300
2301 return 1;
2302 }
2303
2304 /* finish register */
2305 vs1053b_interface_debug_print("vs1053b: finish register test.\n");
2306 (void)vs1053b_deinit(&gs_handle);
2307
2308 return 0;
2309}
driver vs1053b register test header file
uint8_t vs1053b_get_version(vs1053b_handle_t *handle, uint8_t *version)
get version
uint8_t vs1053b_set_iis_mclk(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable iis mclk
uint8_t vs1053b_set_swing(vs1053b_handle_t *handle, uint8_t swing)
set swing
uint8_t vs1053b_get_overload_indicator(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get overload indicator status
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_get_diff(vs1053b_handle_t *handle, vs1053b_diff_t *diff)
get the audio differential
uint8_t vs1053b_get_lower_limit_frequency_in_1000_hz(vs1053b_handle_t *handle, uint8_t *step)
get lower limit frequency in 1000 hz
uint8_t vs1053b_set_reference_voltage(vs1053b_handle_t *handle, vs1053b_reference_voltage_t voltage)
set reference voltage
uint8_t vs1053b_get_end_fill_byte(vs1053b_handle_t *handle, uint16_t *byte)
get end fill byte
uint8_t vs1053b_get_iis(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get iis status
uint8_t vs1053b_get_ear_speaker_high_setting(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get ear speaker high setting status
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_vol_convert_to_data(vs1053b_handle_t *handle, uint8_t reg, float *db)
convert the register raw data to vol
uint8_t vs1053b_get_allow_sdi_test(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get allow sdi test status
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_get_lower_limit_frequency_in_10_hz(vs1053b_handle_t *handle, uint8_t *step)
get lower limit frequency in 10 hz
uint8_t vs1053b_read_ram(vs1053b_handle_t *handle, uint8_t *buf, uint16_t len)
read ram
uint8_t vs1053b_get_play_speed(vs1053b_handle_t *handle, vs1053b_play_speed_t *speed)
get play speed
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_get_gpio_output(vs1053b_handle_t *handle, uint16_t *data)
get gpio output
uint8_t vs1053b_get_pcm_adpcm_recording_active(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get pcm adpcm recording active status
uint8_t vs1053b_set_do_not_jump(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable do not jump
uint8_t vs1053b_get_stream_mode(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get stream mode status
vs1053b_ad_clock_t
vs1053b ad clock enumeration definition
uint8_t vs1053b_get_mpeg_layer_i_and_ii(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get mpeg layer i and ii status
uint8_t vs1053b_get_bass_enhancement(vs1053b_handle_t *handle, uint8_t *db)
get bass enhancement
uint8_t vs1053b_get_clock_frequency(vs1053b_handle_t *handle, uint16_t *clk)
get clock frequency
vs1053b_reference_voltage_t
vs1053b reference voltage enumeration definition
vs1053b_bit_order_t
vs1053b bit order enumeration definition
vs1053b_allowed_multiplier_addition_t
vs1053b allowed multiplier addition enumeration definition
uint8_t vs1053b_get_clock_multiplier(vs1053b_handle_t *handle, vs1053b_clock_multiplier_t *multiplier)
get clock multiplier
vs1053b_diff_t
vs1053b diff enumeration definition
uint8_t vs1053b_get_gpio_direction(vs1053b_handle_t *handle, uint16_t *mask)
get gpio direction
uint8_t vs1053b_set_sample_rate(vs1053b_handle_t *handle, uint16_t rate, vs1053b_channel_t channel)
set sample rate
vs1053b_bool_t
vs1053b bool enumeration definition
uint8_t vs1053b_set_decode_time(vs1053b_handle_t *handle, uint16_t decode_time)
set decode time
vs1053b_selector_t
vs1053b selector enumeration definition
uint8_t vs1053b_set_gpio_direction(vs1053b_handle_t *handle, uint16_t mask)
set gpio direction
uint8_t vs1053b_get_gpio_input(vs1053b_handle_t *handle, uint16_t *data)
get gpio input
uint8_t vs1053b_get_share_spi_chip_select(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get share spi chip select status
uint8_t vs1053b_set_native_spi_modes(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable native spi modes
uint8_t vs1053b_get_selector(vs1053b_handle_t *handle, vs1053b_selector_t *selector)
get selector
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_start_address(vs1053b_handle_t *handle, uint16_t addr)
set start address
uint8_t vs1053b_get_swing(vs1053b_handle_t *handle, uint8_t *swing)
get swing
vs1053b_dclk_edge_t
vs1053b dclk edge enumeration definition
uint8_t vs1053b_set_stream_mode(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable stream mode
uint8_t vs1053b_get_allowed_multiplier_addition(vs1053b_handle_t *handle, vs1053b_allowed_multiplier_addition_t *addition)
get allowed multiplier addition
uint8_t vs1053b_get_decode_time(vs1053b_handle_t *handle, uint16_t *decode_time)
get decode time
uint8_t vs1053b_get_treble_control(vs1053b_handle_t *handle, uint8_t *db)
get treble control
uint8_t vs1053b_set_iis_rate(vs1053b_handle_t *handle, vs1053b_iis_rate_t iis_rate)
set iis rate
uint8_t vs1053b_read_application(vs1053b_handle_t *handle, vs1053b_application_t num, uint8_t *buf, uint16_t len)
read application
uint8_t vs1053b_write_application(vs1053b_handle_t *handle, vs1053b_application_t num, uint8_t *buf, uint16_t len)
write application
uint8_t vs1053b_set_dclk_edge(vs1053b_handle_t *handle, vs1053b_dclk_edge_t edge)
set dclk edge
uint8_t vs1053b_get_dclk_edge(vs1053b_handle_t *handle, vs1053b_dclk_edge_t *edge)
get 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_lower_limit_frequency_in_1000_hz_convert_to_data(vs1053b_handle_t *handle, uint8_t reg, uint32_t *hz)
convert the register raw data to the lower limit frequency in 1000 hz
uint8_t vs1053b_hard_reset(vs1053b_handle_t *handle)
hard reset
uint8_t vs1053b_get_iis_mclk(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get iis mclk status
uint8_t vs1053b_get_analog_internal_power_down(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get analog internal power down status
vs1053b_clock_range_t
vs1053b clock range enumeration definition
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_clock_frequency_convert_to_data(vs1053b_handle_t *handle, uint16_t reg, float *hz)
convert the register raw data to the clock frequency
uint8_t vs1053b_set_clock_range(vs1053b_handle_t *handle, vs1053b_clock_range_t range)
set clock range
uint8_t vs1053b_set_diff(vs1053b_handle_t *handle, vs1053b_diff_t diff)
set the audio differential
uint8_t vs1053b_get_do_not_jump(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get do not jump status
uint8_t vs1053b_get_cancel_decoding_current_file(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get cancel decoding current file status
uint8_t vs1053b_get_overload_detection(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get overload detection status
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_treble_control_convert_to_data(vs1053b_handle_t *handle, uint8_t reg, float *db)
convert the register raw data to the treble control
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
uint8_t vs1053b_set_soft_reset(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable soft reset
uint8_t vs1053b_get_reference_voltage(vs1053b_handle_t *handle, vs1053b_reference_voltage_t *voltage)
get reference voltage
uint8_t vs1053b_lower_limit_frequency_in_10_hz_convert_to_data(vs1053b_handle_t *handle, uint8_t reg, uint32_t *hz)
convert the register raw data to the lower limit frequency in 10 hz
uint8_t vs1053b_get_analog_driver_power_down(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get analog driver power down status
uint8_t vs1053b_set_ram_address(vs1053b_handle_t *handle, uint16_t addr)
set ram address
uint8_t vs1053b_set_overload_indicator(vs1053b_handle_t *handle, vs1053b_bool_t enable)
enable or disable overload indicator
struct vs1053b_handle_s vs1053b_handle_t
vs1053b handle structure definition
vs1053b_play_speed_t
vs1053b play speed enumeration 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_get_sdi_bit_order(vs1053b_handle_t *handle, vs1053b_bit_order_t *order)
get sdi bit order
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
uint8_t vs1053b_deinit(vs1053b_handle_t *handle)
deinit the chip
vs1053b_iis_rate_t
vs1053b iis rate enumeration definition
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
uint8_t vs1053b_get_start_address(vs1053b_handle_t *handle, uint16_t *addr)
get start address
struct vs1053b_info_s vs1053b_info_t
vs1053b information structure definition
uint8_t vs1053b_set_gpio_output(vs1053b_handle_t *handle, uint16_t data)
set gpio output
uint8_t vs1053b_get_vol(vs1053b_handle_t *handle, uint8_t *left, uint8_t *right)
get vol
vs1053b_clock_multiplier_t
vs1053b clock multiplier enumeration definition
uint8_t vs1053b_get_iis_rate(vs1053b_handle_t *handle, vs1053b_iis_rate_t *iis_rate)
get iis rate
uint8_t vs1053b_get_ad_clock(vs1053b_handle_t *handle, vs1053b_ad_clock_t *ad_clock)
get ad clock
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_write_ram(vs1053b_handle_t *handle, uint8_t *buf, uint16_t len)
write ram
vs1053b_channel_t
vs1053b channel enumeration definition
uint8_t vs1053b_get_native_spi_modes(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get native spi modes status
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_swing_convert_to_data(vs1053b_handle_t *handle, uint8_t reg, float *db)
convert the register raw data to the swing
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_get_ear_speaker_low_setting(vs1053b_handle_t *handle, vs1053b_bool_t *enable)
get ear speaker low setting status
uint8_t vs1053b_get_clock_range(vs1053b_handle_t *handle, vs1053b_clock_range_t *range)
get clock range
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_AD_CLOCK_6MHZ
@ VS1053B_REFERENCE_VOLTAGE_1P23V
@ VS1053B_BIT_ORDER_MSB_FIRST
@ VS1053B_ALLOWED_MULTIPLIER_ADDITION_NONE
@ VS1053B_ALLOWED_MULTIPLIER_ADDITION_1P0_XTALI
@ VS1053B_ALLOWED_MULTIPLIER_ADDITION_2P0_XTALI
@ VS1053B_ALLOWED_MULTIPLIER_ADDITION_1P5_XTALI
@ VS1053B_DIFF_LEFT_INVERTED
@ VS1053B_DIFF_NORMAL
@ VS1053B_BOOL_FALSE
@ VS1053B_BOOL_TRUE
@ VS1053B_SELECTOR_MICP
@ VS1053B_SELECTOR_LINE1
@ VS1053B_DCLK_EDGE_FALLING
@ VS1053B_CLOCK_RANGE_12MHZ_13MHZ
@ VS1053B_APPLICATION_2
@ VS1053B_APPLICATION_0
@ VS1053B_APPLICATION_3
@ VS1053B_APPLICATION_1
@ VS1053B_PLAY_SPEED_2P0_X
@ VS1053B_PLAY_SPEED_1_X
@ VS1053B_PLAY_SPEED_1P0_X
@ VS1053B_PLAY_SPEED_3P0_X
@ VS1053B_IIS_RATE_192KHZ
@ VS1053B_IIS_RATE_96KHZ
@ VS1053B_IIS_RATE_48KHZ
@ VS1053B_CLOCK_MULTIPLIER_1P0_XTALI
@ VS1053B_CLOCK_MULTIPLIER_2P5_XTALI
@ VS1053B_CLOCK_MULTIPLIER_3P0_XTALI
@ VS1053B_CLOCK_MULTIPLIER_2P0_XTALI
@ VS1053B_CLOCK_MULTIPLIER_3P5_XTALI
@ VS1053B_CLOCK_MULTIPLIER_4P5_XTALI
@ VS1053B_CLOCK_MULTIPLIER_5P0_XTALI
@ VS1053B_CLOCK_MULTIPLIER_4P0_XTALI
@ VS1053B_CHANNEL_STEREO
@ VS1053B_CHANNEL_MONO
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
void vs1053b_interface_receive_callback(uint8_t type, uint32_t cur_pos)
interface receive callback
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_register_test(void)
register test
uint32_t driver_version
char manufacturer_name[32]