Connection MCF51EM256 to PC

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Connection MCF51EM256 to PC

1,706 Views
polofermin
Contributor III

Hello everyone.

 

I want communicate MCF51EM256 device with the PC through the RS-232 serial port. I'm programming in C, but I do not know how to implement the communication program. Thank you very much everyone, hope your help
Yours sincerely
Fermin!
Labels (1)
0 Kudos
Reply
2 Replies

791 Views
polofermin
Contributor III

Hello this is my SPI code:

 

spi.h:

// --------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////

void SPI_Init(void);
void SPI_SetSCK(unsigned long int BusClock_freq, unsigned long int SCLK_freq);
void SPI_PutChar1(unsigned char chr);
void SPI_PutBuffer1(unsigned int dim, unsigned char *chr);
void SPI_GetChar1(unsigned char *chr);
void SPI_GetBuffer1(unsigned int dim, unsigned char *chr);

 

spi.c:

#include "derivative.h"

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/////////#define SPI2S_SPTEF_MASK  0b00100000 // bit5 SPTEF definidas en MCF51EM256
/////////#define SPI2S_SPRF_MASK   0b10000000 // bit7 SPRF


/////////////////////////////////////////////////////////////////////////////////////////
// SPI_Init
// --------------------------------------------------------------------------------------
// /////////////////////////////////////////////////////////////////////////////////////////
void SPI_Init(void)
{
    unsigned char status;
   
    status = SPI2S;
    status = SPI2D;
   
    SPI2C1 = 0x00; //.
    SPI2C2 = 0x00;
   
    // SPIE=1; SPE=1; SPTIE=1; MSTR=1; CPOL=1; CPHA=0; SSOE=1; LSBFE=0
   SPI2C1 = 0xFA;

   // SPMIE=0; SPIMODE=1; bit5=0; MODFEN=1; BIDIROE=0; bit2=0; SPISWAI=1; SPC0=0
   SPI2C2 = 0x52;
     
   // 
   SPI2S = 0x00; // SPRF; SPMF; SPTEF; MODF; 0; 0; 0; 0
   status = SPI2D;   
  
}

/////////////////////////////////////////////////////////////////////////////////////////
// SPI_SetSCK
// --------------------------------------------------------------------------------------
//
/////////////////////////////////////////////////////////////////////////////////////////
void SPI_SetSCK(unsigned long int BusClock_freq, unsigned long int SCLK_freq)
{
 unsigned long int  BRdiv;
 
 // bit7=0; SPPR2=0; SPPR1=0; SPPR0=1; SPR3=0; SPR2=0; SPR1=0; SPR0=1
 // Prescale divisor=2; Rate divisor=4.
 SPI2BR=0x11;

 BRdiv = BusClock_freq / SCLK_freq; 
 
 
}   

/////////////////////////////////////////////////////////////////////////////////////////
// SPI_PutChar
// --------------------------------------------------------------------------------------
//
/////////////////////////////////////////////////////////////////////////////////////////
void SPI_PutChar1(unsigned char chr)
{
  unsigned char data;
 
  //  while (!(SPI2S & SPI2S_SPTEF_MASK))
    ;

  //  SPI2D = chr;    
 
  while (!(SPI2S & SPI2S_SPRF_MASK))
  ;

  //
  data = SPI2D;
 
}


/////////////////////////////////////////////////////////////////////////////////////////
// SPI_PutBuffer
// --------------------------------------------------------------------------------------
//
/////////////////////////////////////////////////////////////////////////////////////////
void SPI_PutBuffer1(unsigned int dim, unsigned char *chr)
{
  unsigned int i;
 
  for (i = 0; i<dim; i++)
  {
    SPI_PutChar(*chr++);       
  }

}

    
/////////////////////////////////////////////////////////////////////////////////////////
// SPI_GetChar
// --------------------------------------------------------------------------------------
// /////////////////////////////////////////////////////////////////////////////////////////
void SPI_GetChar1(unsigned char *chr)
{
  
 while(!(SPI2S & SPI2S_SPTEF_MASK))
  ;
    
 while(!(SPI2S & SPI2S_SPRF_MASK)) 
  ;
 *chr = SPI2D; //    
}


/////////////////////////////////////////////////////////////////////////////////////////
// SPI_GetBuffer
// --------------------------------------------------------------------------------------
//
/////////////////////////////////////////////////////////////////////////////////////////
void SPI_GetBuffer1(unsigned int dim,unsigned char *chr)
{
  unsigned int i;
 
  for (i = 0; i<dim; i++)
    SPI_GetChar(chr++);       
}

 

With this code I want to communicate MCF51EM256 and ADE7753 device, but I don´t know how implement the interface in RS-232 between MCF51EM256 and PC.

 

I wait your reply, thanks so much.

 

Yours sincerely.

 

Fermin.

 

 

0 Kudos
Reply

791 Views
polofermin
Contributor III

I must use UART-SPI of MCF51EM256?

I hope your replies,

thanks

 

Best Regards

 

0 Kudos
Reply