Protokol Komunikasi Serial UART JQ6500

Spread the love

Module MP3 Player JQ6500 dapat dikontrol melalui protokol komunikasi Serial (UART).

Jika menggunakan Arduino, ada library yang sudah siap digunakan yang bisa didownload pada link berikut – Arduino JQ6500 MP3 Player Library – yang menghandle semua feature dari JQ6500.

Level Tegangan

Komunikasi Serial UART pada JQ6500 menggunakan level tegangan pada 3.3v = HIGH. Oleh karena itu, apabila kita menggunakan mikrokontroller / Arduino dengan level tegangan 5V maka harus digunakan resistor 1K antara Tx Mikrokontroller / Arduino dengan Rx JQ6500. Sedangkan Rx Mikrokontroller / Arduino bisa langsung disambungkan dengan Tx JQ6500.

Format Umum dari Komunikasi

JQ6500 bisa menerima perintah kapan saja. Perintah terdiri dari 4 Byte atau lebih,

  1. Setiap command diawali dengan byte 0x7E
  2. Diikuti oleh byte yang menunjukkan jumlah byte yang mengikuti termasuk byte terminating
  3. Diikuti oleh byte yang menunjukkan perintah untuk dieksekusi
  4. Diikuti oleh byte argumen pertama opsional
  5. Diikuti oleh byte argumen opsional kedua
  6. Diikuti oleh byte 0xEF sebagai byte terminasi

Sebagai contoh, perintah ”PLAY” (0x0D) dibangun dari 4 bytes berikut :

  1. 0x7E – Start Byte
  2. 0x02 – 2 Bytes Follow
  3. 0x0D – Command Byte
  4. 0xEF – Termination Byte

dan perintah untuk “PLAY” file tertentu (0x012) mempunyai 2 arguments (folder number dan file number) , sehingga terlihat seperti berikut :

  1. 0x7E – Start
  2. 0x04 – 4 Bytes Follow
  3. 0x12 – Command
  4. 0x02 – 1st Argument  (“Folder 02”)
  5. 0x03 – 2nd Argument (“File 003”)
  6. 0xEF – Termination Byte

Perintah normal memberikan respons dua karakter ascii “OK” dan mungkin “ERROR”, tetapi umumnya mengabaikan respons terhadap perintah normal (yang terbaik adalah menghapus buffer serial sebelum dan setelah mengeluarkan perintah normal).

Perintah kueri responnya adalah unsigned integer sebagai karakter heksadesimal (contoh jika responsnya adalah integer 1234, maka responsnya adalah 4 karakter ASCII “04D2”).

Control Commands

  • 0x0D – Play, No Arguments
  • 0x0E – Pause, No Arguments
  • 0x01 – Next, No Arguments
  • 0x02 – Prev, No Arguments
  • 0x03 – Play file by index number, 2 Arguments.  Index number yang menjadi index dalam FAT table atau upload order.  Argument 1 = high 8 bits dari index number, Argument 2 = low 8 bits dari index number.
  • 0x0F – Change folder. 1 Argument.  Argument 1 = 0x01 untuk Folder berikutnya, 0x00 untuk Folder sebelumnya. 
  • 0x12 – Play file by folder and name, 2 Arguments.  Ini hanya digunakan untuk SD Card saja dimana kita mempunyai folder dengan nama 01 – 99, dan file dalam folder dengan nama 001.mp3 – 999.mp3.  Argument 1 = folder number, Argument 2 = file number. Perhatikan bahwa argumen adalah satu byte, jadi secara efektif hanya dapat mengakses file 255.mp3 di masing-masing folder.
  • 0x04 – Vol Up, No Arguments
  • 0x05 – Vol Dn, No Arguments
  • 0x06 – Set Volume, 1 Argument.  Argument 1 = byte value dari 0 – 30
  • 0x07 – Set Equalizer Mode, 1 Argument.  Argument 1 = byte value 0/1/2/3/4/5 untuk Normal/Pop/Rock/Jazz/Classic/Bass
  • 0x11 – Set Loop Mode, 1 Argument.  Argument 1 = byte value  0/1/2/3/4 untuk All/Folder/One/Ram/One_Stop.
  • 0x09 – Set the source, 1 Argument.  Argument 1 = 0x01 untuk SDCard dan 0x04 untuk memory internal.
  • 0x0A – Sleep mode, No Arguments. Low power mode.
  • 0x0C – Reset, No Arguments. Disarankan untuk menunggu 500 mS atau lebih setelah mengeluarkan command ini.

Query Commands

Semua query commands tidak mempunyai arguments. 

  • 0x42 – Get Status. Response integer (sebagai hexadecimal ascii characters) 0/1/2 untuk Stopped/Playing/Paused. Sebagai catatan bahwa jika menggunakan built in memory maka tidak ada “Stops”, melainkan hanya “Pauses” setelah playing a track.
  • 0x43 – Get Volume.  Response integer (sebagai hexadecimal ascii characters) dari 0 – 30.
  • 0x44 – Get Equalizer. Response integer (sebagai hexadecimal ascii characters) dari 0 – 5.
  • 0x45 – Get Loop. Response integer (sebagai hexadecimal ascii characters) dari 0 – 4.
  • 0x46 – Get Version.  Response integer (sebagai hexadecimal ascii characters).
  • 0x47 – Count files on SD Card. Response integer (sebagai hexadecimal ascii characters).
  • 0x49 – Count files in on board flash memory.  Response integer (sebagai hexadecimal ascii characters).
  • 0x53 – Count folders on SD Card. Response integer (sebagai hexadecimal ascii characters).
  • 0x4B – Get the index number (FAT table) of the current file on the SD Card.  Response integer (sebagai hexadecimal ascii characters).
  • 0x4D – Get the index number MINUS ONE (!!) of the current file on the on board memory.  Response integer (sebagai hexadecimal ascii characters).
  • 0x50 – Get the position in seconds of the current playing file.  Response integer (sebagai hexadecimal ascii characters).
  • 0x51 – Get the total length in seconds of the current playing file.  Response integer (sebagai hexadecimal ascii characters).
  • 0x52 – Get the name of the current file on the SD Card.  Response ASCII characters. Sebagai catatan bahwa command ini akan memberikan respon sebuah name meskipun file tidak sedang dimainkan, bahkan jika file dari memory internal sedang dimainkan / diputar, bahkan jika SD Card dicabut !  Jadi ini bukan nama file yang sesungguhnya.

Be the first to comment

Leave a Reply

Alamat email Anda tidak akan dipublikasikan.


*