All of lore.kernel.org
 help / color / mirror / Atom feed
* McBSP usage inside DSP processor
@ 2007-02-13 17:16 Luís Vitório Cargnini
  2007-02-15 10:29 ` Guruswamy, Senthilvadivu
  0 siblings, 1 reply; 6+ messages in thread
From: Luís Vitório Cargnini @ 2007-02-13 17:16 UTC (permalink / raw)
  To: OMAP, dspgateway-devel

Dears:
I and my colleague are developing an application that will need to access an
AD/DA, from DSP processor, we are trying the McBSP functions MCBSP_init(),
read an write and so on. But we are having difficulties on execute this.
Someone knows how to access an McBSP inside DSP side ?
we are using DSPGateway.
Something that we note is that MCBSP_init() do not exist and are always
generating an error on compilation but CSL_init() works; someone could give
some info about it ?

here follow an code been developed by us:
#define CHIP_5510PG2_2 1

#include <std.h>
#include <stdint.h>
#include <math.h>
#include <csl.h>
#include <csl_dma.h>
#include <csl_emif.h>
#include <csl_irq.h>
#include <csl_timer.h>
#include <csl_mcbsp.h>

#include "tokliBIOS.h"

#define MCBSP_DEV0 (0)
#define MCBSP_DEV1 (1)
#define MCBSP_DEV2 (2)

#define BUFSIZ (0x10000/2)


int count;
void write_isr(void);

MCBSP_Handle fd;
MCBSP_Config configuracao = { /*tudo uint16*/
0x0200,      //spcr1
0x1800,      //spcr2
0x0000,      //rcr1
0x0020,      //rcr2
0x0000,      //xcr1
0x0060,      //xcr2
0x3249,      //srgr1
0x03FF,      //srgr2
0x0040,      //mcr1
0x00A0,      //mcr2
0x00E0,      //pcr
0x0000,      //rcera
0x0000,      //rcerb
0x0000,      //rcerc
0x0000,      //rcerd
0x0000,      //rcere
0x0000,      //rcerf
0x0000,      //rcerg
0x0000,       //rcerh
0x0000,       //xcera
0x0000,       //xcerb
0x0000,       //xcerc
0x0000,       //xcerd
0x0000,       //xcere
0x0000,       //xcerf
0x0000,       //xcerg
0x0000       //xcerh
};

void write_isr(void)
{
while(!MCBSP_xrdy(fd));
MCBSP_write16(fd, 1);
while(!MCBSP_rrdy(fd));
count = MCBSP_read16(fd);//o maximo eh 65536
}

static Uns mm_rcv_bksnd(struct dsptask *task, Uns bid, Uns cnt)
{
    Int i;
    Uns *ipbp = ipbuf_d[bid];
    Uns off, len;
    #define OFF    0    /* arbitrary */
    Uns bid2;
    uint16_t  *addr = task->udata;

    if (cnt != 2)
    {
        //dbg(task, "[DSP]: illegal data cnt: %d\n", cnt);
        unuse_ipbuf(task, bid);
        return 0;
    }

    off = ipbp[0];    /* offset within the mapped space */
    len = ipbp[1];    /* len (in word count) */
    unuse_ipbuf(task, bid);

    CSL_init();//inicializa a tudo
    fd = MCBSP_open(MCBSP_DEV1, MCBSP_OPEN_RESET);//ok
    MCBSP_reset(fd);
    MCBSP_config(fd,&configuracao);
    IRQ_clear(IRQ_EVT_INT1);
        IRQ_configArgs(IRQ_EVT_INT1, write_isr, 0, 0, 0);
        IRQ_enable(IRQ_EVT_INT1);   /* enable MCBSP1 transmit ready
interrupt */
    MCBSP_start(fd, MCBSP_RCV_START | MCBSP_XMIT_START | MCBSP_SRGR_START |
MCBSP_SRGR_FRAMESYNC, 0x0010);

    MCBSP_write16(fd,79);
    busywait(2000000L);

    while(!MCBSP_rrdy(fd));
    count = MCBSP_read16(fd);//o maximo eh 65536
    bid2 = get_free_ipbuf(task);
    //if(bid2 == MBCMD_BID_NULL)
    //    return MBCMD_EID_STVBUF;
    ipbp = ipbuf_d[bid2];
    ipbp[0] = OFF;
    ipbp[1] = count;
    bksnd(task, bid2, 2);

    return 0;
}

-- 
------------------------------------------------------------------------------
Thanks && Regards
Msc. Bsc. Luís Vitório Cargnini
IEEE Member
Mastering Degree student @ PUC-RS
Electrical Engineer Faculty
Ipiranga Avenue, 6681 – Building 30
P.O. Box: 90619-900 – Porto Alegre/RS
Phone: +55 51 3320 3500  extension: 7696
---------------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-02-15 19:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-13 17:16 McBSP usage inside DSP processor Luís Vitório Cargnini
2007-02-15 10:29 ` Guruswamy, Senthilvadivu
2007-02-15 17:54   ` Diogo Scolari
2007-02-15 18:15     ` Guruswamy, Senthilvadivu
2007-02-15 19:02       ` Diogo Scolari
2007-02-15 19:07         ` Guruswamy, Senthilvadivu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.