Remote controlled playback module

isd_logoThis post describes very simple remote-controlled playback module. It is based on DK-EVAL-04 development module and one of development boards for voice recording and playback IC ISD1820. This construction is only draft, for practical device is necessary to do some improvements.

Voice recording and playback IC ISD1820 is well-known standalone chip. You need only a few passive components around the chip, mic and speaker and you have functional circuit. Following picture shows simplified circuit for module purchased at BuyInCoins.

ISD1820-sch

I tested this board as core for emergency device. But at some places is very expensive to make cabling. So I tried interconnection between TR-52D module (inside DK-EVAL-04) and ISD module. DK module is used as simple master and power supply for playback module. You have to only connect VBAT of DK to VCC of playback module, grounds and DK-TX/SS pin through 1k resistor to PLAY-E pin of playback module. Following code is uploaded inside TR module:


#include "includes/template-basic.h"   // system header files inclusion

// *********************************************************************
#define OT1_TRIS    TRISA.5    // C5/SS pin connected to the ISD PLAY PIN
#define OT1         PORTA.5
// *********************************************************************

uns8 go;

void APPLICATION()
{
    OT1_TRIS = 0;    // pin as inputs
    OT1 = 0;         // set output LOW
    go = 0;	
    pulseLEDG();     // reset indication
    waitDelay(10);
	
    while (1)
    {
        if (RFRXpacket())
        {
            if (DLEN < 4) continue;		
            pulseLEDG();			
            if (bufferRF[0] != 'P') continue;    // Play
            if (bufferRF[1] != 'M') continue;    // Message
            if (bufferRF[2] != 'B') continue;    // Address Hi
            if (bufferRF[3] != '6') continue;    // Address Lo			
            go = 1;    // set flag			
        }	
	
        if (go)
        {
            pulseLEDR();			
            go = 0;        // clear flag
            OT1 = 1;       // play...
            waitDelay(25);		
            OT1 = 0;       // don't care play pin
            waitDelay(25);			
        }
    }
}
//----------------------------------------------------------------------

As you can see, code is very similar to this post. You can use same approach for testing in this case.

Download Attachments

Leave a Reply

Your email address will not be published. Required fields are marked *