Author | Matthew Schinkel, copyright (c) 2009, all rights reserved. |
Adapted-by | |
Compiler | >=2.4m |
example usage of the vs1053 mp3 decoder. plays .mp3 files from a fat32 formatted sd card. Full control of play speed, volume, right/left speaker, bass, treble, mute. Also plays Ogg Vorbis/AAC/WMA/MIDI
VLSI Solutions Datasheet - www.vlsi.fi/fileadmin/datasheets/vlsi/vs1053.pdf
vs1053 uses SPI mode 0,0 must use 12.288mhz crystal for vs1053b
No dependency found
var bit vs_pin_gpio3_data at vs_port_gpio_data : 3
var byte vs_current_file_type[4]
var byte _vs_play_speed_data = 1
const byte VS_REG_DECODE_TIME = 0x04
const byte _vs_table_layer2_id3[15] = {0,32,48,56,64,80,96,112,128,160,192,224,256,320,384}
var bit vs_pin_gpio7_direction_data at vs_port_gpio_direction_data : 7
var bit vs_pin_gpio4_direction_data at vs_port_gpio_direction_data : 4
const byte VS_REG_BASS = 0x02
var dword vs_bitrate
var byte _vs_volume_data_both[2] at _vs_volume_data
const byte VS_REG_AIADDR = 0x0A
var bit vs_pin_gpio5_direction_data at vs_port_gpio_direction_data : 5
var bit vs_pin_gpio7_data at vs_port_gpio_data : 7
const byte VS_REG_HDAT1 = 0x09
const byte VS_REG_STATUS = 0x01
const byte VS_REG_VOL = 0x0B
const byte VS_REG_AICTRL2 = 0x0E
var bit vs_pin_gpio6_direction_data at vs_port_gpio_direction_data : 6
const byte VS_REG_AICTRL1 = 0x0D
const byte _vs_table_layer2_id[15] = {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160}
const byte VS_REG_WRAM = 0x06
var bit vs_pin_gpio1_direction_data at vs_port_gpio_direction_data : 1
var byte _vs_left_data at _vs_volume_data_both[0]
const byte VS_REG_HDAT0 = 0x08
var bit vs_pin_gpio0_data at vs_port_gpio_data : 0
const byte _vs_table_layer1_id3[15] = {0,32,64,96,128,160,192,224,256,288,320,352,384,416,448}
const byte VS_REG_AICTRL0 = 0x0C
var bit vs_init_ok = FALSE
var byte*2 _vs_volume_data= 0
var sbyte _vs_current_volume_right = 0
var sbyte vs_current_treble = 0
var word vs_samplerate
var sbyte _vs_current_volume_left = 0
var bit vs_pin_gpio6_data at vs_port_gpio_data : 6
const word _vs_samplerate_id1[3] = {8000,12000,11025}
const byte VS_REG_MODE = 0x00
const byte VS_REG_AUDATA = 0x05
var byte vs_port_gpio_data = 0
var byte vs_current_bass = 0
const word _vs_samplerate_id3[3] = {32000,48000,44100}
const byte VS_REG_WRAMADDR = 0x07
const byte _vs_table_layer1_id[15] = {0,32,48,56,64,80,96,112,128,144,160,176,192,224,256}
const byte _vs_table_layer3_id[15] = {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160}
const word _vs_samplerate_id2[3] = {16000,24000,22050}
var bit vs_pin_gpio3_direction_data at vs_port_gpio_direction_data : 3
const byte VS_REG_AICTRL3 = 0x0F
var bit _vs_mute_data = FALSE
var bit vs_pin_gpio2_direction_data at vs_port_gpio_direction_data : 2
var bit vs_pin_gpio2_data at vs_port_gpio_data : 2
const byte _vs_table_layer3_id3[15] = {0,32,40,48,56,64,80,96,112,128,160,192,224,256,320}
var bit vs_pin_gpio5_data at vs_port_gpio_data : 5
var dword vs_average_bitrate
var bit vs_pin_gpio0_direction_data at vs_port_gpio_direction_data : 0
var byte vs_port_gpio_direction_data = 0
const byte VS_REG_CLOCKF = 0x03
var byte _vs_right_data at _vs_volume_data_both[1]
var byte _vs_current_volume = 0
var bit vs_pin_gpio1_data at vs_port_gpio_data : 1
var bit vs_pin_gpio4_data at vs_port_gpio_data : 4
vs_soft_reset()
vs_patch_vs1053b()
vs_volume_left'put(sbyte in data)
vs_pin_gpio7'put(bit in data)
vs_pin_gpio4'put(bit in data)
vs_play_mode()
vs_stop()
vs_register_read(byte in address,word out data)
vs_pin_gpio4_direction'put(bit in data)
vs_line_in_mode()
vs_pin_gpio5'put(bit in data)
vs_bass'put(byte in data)
vs_pin_gpio3_direction'put(bit in data)
vs_volume_right'put(sbyte in data)
vs_reg_read_to_serial(byte in register)
vs_pin_gpio6'put(bit in data)
vs_pin_gpio7_direction'put(bit in data)
vs_pin_gpio0'put(bit in data)
vs_pin_gpio6_direction'put(bit in data)
vs_file_info()
vs_pin_gpio2_direction'put(bit in data)
vs_register_write(byte in address, word in data)
vs_microphone_mode()
vs_pin_gpio3'put(bit in data)
vs_volume'put(byte in data)
vs_play()
vs_port_gpio_direction'put(byte in data)
vs_read_ram(word in address)
vs_mute'put(bit in data)
vs_init()
vs_pin_gpio1_direction'put(bit in data)
vs_play_speed'put(byte in data)
vs_pin_gpio1'put(bit in data)
vs_treble'put(sbyte in data)
vs_port_gpio'put(byte in data)
vs_pin_gpio0_direction'put(bit in data)
vs_pin_gpio5_direction'put(bit in data)
vs_pin_gpio2'put(bit in data)
vs_pin_gpio4'get() return bit
vs_pin_gpio1'get() return bit
vs_pin_gpio2'get() return bit
vs_pin_gpio3_direction'get() return bit
vs_pin_gpio3'get() return bit
vs_pin_gpio5_direction'get() return bit
vs_bass'get() return byte
vs_pin_gpio6_direction'get() return bit
vs_port_gpio_direction'get() return byte
vs_volume_left'get() return sbyte
vs_treble'get() return sbyte
vs_pin_gpio0_direction'get() return bit
vs_pin_gpio0'get() return bit
vs_pin_gpio2_direction'get() return bit
vs_pin_gpio7_direction'get() return bit
vs_pin_gpio1_direction'get() return bit
vs_volume_right'get() return sbyte
vs_port_gpio'get() return byte
vs_pin_gpio7'get() return bit
vs_pin_gpio4_direction'get() return bit
vs_volume'get() return byte
vs_pin_gpio5'get() return bit
vs_play_speed'get() return byte
vs_pin_gpio6'get() return bit
vs_mute'get() return bit
var bit vs_pin_gpio3_data at vs_port_gpio_data : 3
No documentation found
var byte vs_current_file_type[4]
holds current file type after vs_file_info()
var byte _vs_play_speed_data = 1
data variables for internal use only
const byte VS_REG_DECODE_TIME = 0x04
No documentation found
const byte _vs_table_layer2_id3[15] = {0,32,48,56,64,80,96,112,128,160,192,224,256,320,384}
No documentation found
var bit vs_pin_gpio7_direction_data at vs_port_gpio_direction_data : 7
No documentation found
var bit vs_pin_gpio4_direction_data at vs_port_gpio_direction_data : 4
No documentation found
const byte VS_REG_BASS = 0x02
No documentation found
var dword vs_bitrate
you can read these variables after calling vs_file_info()
var byte _vs_volume_data_both[2] at _vs_volume_data
No documentation found
const byte VS_REG_AIADDR = 0x0A
No documentation found
var bit vs_pin_gpio5_direction_data at vs_port_gpio_direction_data : 5
No documentation found
var bit vs_pin_gpio7_data at vs_port_gpio_data : 7
No documentation found
const byte VS_REG_HDAT1 = 0x09
No documentation found
const byte VS_REG_STATUS = 0x01
No documentation found
const byte VS_REG_VOL = 0x0B
No documentation found
const byte VS_REG_AICTRL2 = 0x0E
No documentation found
var bit vs_pin_gpio6_direction_data at vs_port_gpio_direction_data : 6
No documentation found
const byte VS_REG_AICTRL1 = 0x0D
No documentation found
const byte _vs_table_layer2_id[15] = {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160}
No documentation found
const byte VS_REG_WRAM = 0x06
No documentation found
var bit vs_pin_gpio1_direction_data at vs_port_gpio_direction_data : 1
No documentation found
var byte _vs_left_data at _vs_volume_data_both[0]
No documentation found
const byte VS_REG_HDAT0 = 0x08
No documentation found
var bit vs_pin_gpio0_data at vs_port_gpio_data : 0
No documentation found
const byte _vs_table_layer1_id3[15] = {0,32,64,96,128,160,192,224,256,288,320,352,384,416,448}
bitrate table for .mp3 at 8.7.9 in vs1053b datasheet
const byte VS_REG_AICTRL0 = 0x0C
No documentation found
var bit vs_init_ok = FALSE
if initialization was ok, this will change to TRUE
var byte*2 _vs_volume_data= 0
No documentation found
var sbyte _vs_current_volume_right = 0
No documentation found
var sbyte vs_current_treble = 0
No documentation found
var word vs_samplerate
sample rate (for .mp3 only)
var sbyte _vs_current_volume_left = 0
No documentation found
var bit vs_pin_gpio6_data at vs_port_gpio_data : 6
No documentation found
const word _vs_samplerate_id1[3] = {8000,12000,11025}
No documentation found
const byte VS_REG_MODE = 0x00
vs1053b registers for use with vs_register_read / vs_register_write procedures
const byte VS_REG_AUDATA = 0x05
No documentation found
var byte vs_port_gpio_data = 0
No documentation found
var byte vs_current_bass = 0
No documentation found
const word _vs_samplerate_id3[3] = {32000,48000,44100}
sample rate table for .mp3 at 8.7.9 in vs1053b datasheet
const byte VS_REG_WRAMADDR = 0x07
No documentation found
const byte _vs_table_layer1_id[15] = {0,32,48,56,64,80,96,112,128,144,160,176,192,224,256}
No documentation found
const byte _vs_table_layer3_id[15] = {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160}
No documentation found
const word _vs_samplerate_id2[3] = {16000,24000,22050}
No documentation found
var bit vs_pin_gpio3_direction_data at vs_port_gpio_direction_data : 3
No documentation found
const byte VS_REG_AICTRL3 = 0x0F
No documentation found
var bit _vs_mute_data = FALSE
No documentation found
var bit vs_pin_gpio2_direction_data at vs_port_gpio_direction_data : 2
No documentation found
var bit vs_pin_gpio2_data at vs_port_gpio_data : 2
No documentation found
const byte _vs_table_layer3_id3[15] = {0,32,40,48,56,64,80,96,112,128,160,192,224,256,320}
No documentation found
var bit vs_pin_gpio5_data at vs_port_gpio_data : 5
No documentation found
var dword vs_average_bitrate
actual average speed of incomming data
var bit vs_pin_gpio0_direction_data at vs_port_gpio_direction_data : 0
No documentation found
var byte vs_port_gpio_direction_data = 0
No documentation found
const byte VS_REG_CLOCKF = 0x03
No documentation found
var byte _vs_right_data at _vs_volume_data_both[1]
No documentation found
var byte _vs_current_volume = 0
No documentation found
var bit vs_pin_gpio1_data at vs_port_gpio_data : 1
No documentation found
var bit vs_pin_gpio4_data at vs_port_gpio_data : 4
No documentation found
vs_soft_reset()
No documentation found
vs_patch_vs1053b()
No documentation found
vs_volume_left'put(sbyte in data)
No documentation found
vs_pin_gpio7'put(bit in data)
pin vs_pin_gpio7
vs_pin_gpio4'put(bit in data)
pin vs_pin_gpio4
vs_play_mode()
No documentation found
vs_stop()
No documentation found
vs_register_read(byte in address,word out data)
No documentation found
vs_pin_gpio4_direction'put(bit in data)
No documentation found
vs_line_in_mode()
No documentation found
vs_pin_gpio5'put(bit in data)
pin vs_pin_gpio5
vs_bass'put(byte in data)
No documentation found
vs_pin_gpio3_direction'put(bit in data)
No documentation found
vs_volume_right'put(sbyte in data)
No documentation found
vs_reg_read_to_serial(byte in register)
No documentation found
vs_pin_gpio6'put(bit in data)
pin vs_pin_gpio6
vs_pin_gpio7_direction'put(bit in data)
No documentation found
vs_pin_gpio0'put(bit in data)
pin vs_pin_gpio0
vs_pin_gpio6_direction'put(bit in data)
No documentation found
vs_file_info()
No documentation found
vs_pin_gpio2_direction'put(bit in data)
No documentation found
vs_register_write(byte in address, word in data)
No documentation found
vs_microphone_mode()
No documentation found
vs_pin_gpio3'put(bit in data)
pin vs_pin_gpio3
vs_volume'put(byte in data)
No documentation found
vs_play()
No documentation found
vs_port_gpio_direction'put(byte in data)
No documentation found
vs_read_ram(word in address)
No documentation found
vs_mute'put(bit in data)
No documentation found
vs_init()
No documentation found
vs_pin_gpio1_direction'put(bit in data)
No documentation found
vs_play_speed'put(byte in data)
No documentation found
vs_pin_gpio1'put(bit in data)
pin vs_pin_gpio1
vs_treble'put(sbyte in data)
No documentation found
vs_port_gpio'put(byte in data)
port vs_port_gpio
vs_pin_gpio0_direction'put(bit in data)
No documentation found
vs_pin_gpio5_direction'put(bit in data)
No documentation found
vs_pin_gpio2'put(bit in data)
pin vs_pin_gpio2
_vs_send_mp3(byte in data)
No documentation found
_vs_set_bass_treble_set()
No documentation found
_vs_volume_set()
No documentation found
vs_pin_gpio4'get() return bit
No documentation found
vs_pin_gpio1'get() return bit
No documentation found
vs_pin_gpio2'get() return bit
No documentation found
vs_pin_gpio3_direction'get() return bit
No documentation found
vs_pin_gpio3'get() return bit
No documentation found
vs_pin_gpio5_direction'get() return bit
No documentation found
vs_bass'get() return byte
No documentation found
vs_pin_gpio6_direction'get() return bit
No documentation found
vs_port_gpio_direction'get() return byte
No documentation found
vs_volume_left'get() return sbyte
No documentation found
vs_treble'get() return sbyte
No documentation found
vs_pin_gpio0_direction'get() return bit
No documentation found
vs_pin_gpio0'get() return bit
No documentation found
vs_pin_gpio2_direction'get() return bit
No documentation found
vs_pin_gpio7_direction'get() return bit
No documentation found
vs_pin_gpio1_direction'get() return bit
No documentation found
vs_volume_right'get() return sbyte
No documentation found
vs_port_gpio'get() return byte
No documentation found
vs_pin_gpio7'get() return bit
No documentation found
vs_pin_gpio4_direction'get() return bit
No documentation found
vs_volume'get() return byte
No documentation found
vs_pin_gpio5'get() return bit
No documentation found
vs_play_speed'get() return byte
No documentation found
vs_pin_gpio6'get() return bit
No documentation found
vs_mute'get() return bit
No documentation found