LPC2138 ARM ENC28J60 MICROCONTROLLER SMS

The highly underspent system is fashioned around an LPC2138 microcontroller, which features an ARM7 Architecture processor. Built with a bitty handful of components, TAM-TAM’s designing is cost-effective. The considered involvement of an extrinsic minute retention cardboard and well-chosen algorithms… Electronics Projects,Β LPC2138 arm enc28j60 microcontroller SMSΒ β€œarm project, microcontroller projects,

LPC2138 ARM ENC28J60 MICROCONTROLLER SMS

The highly underspent system is fashioned around an LPC2138 microcontroller, which features an ARM7 Architecture processor. Built with a bitty handful of components, TAM-TAM’s designing is cost-effective. The considered involvement of an extrinsic minute retention cardboard and well-chosen algorithms for nearly infinite hardware content of crystal-clear messages further to the success of the programme.

This quick overview allows us to build a laundry list of software features that are required to implement TAM-TAM:

ο€­ MMC/SD flash card interfacing
ο€­ PC-compatible File System
ο€­ Wave file play and record
ο€­ Tone detection and generation
ο€­ DTMF detection
ο€­ Caller ID demodulation
ο€­ TCP/IP stack
ο€­ Web server

board..

/*****************************************************************************
//
// File Name	  : 'main.c'
// Title		    : Main file for the TAM-TAM project
//                PROJECT AR1762
// Author		    : Bernard Debbasch - Copyright (C) 2005
// Created		  : 2005.08.17
// Revised		  : 2005.08.17
// Version		  : 1.0
// Target MCU	  : Philips LPC213x series
// Editor Tabs	: 2
//
*******************************************************************************/


#include                     /* LPC21xx definitions */
#include                      /* For system(). */
#include                       /* For printf(). */

#undef HTONS

#include "enc28j60.h"
#include "uip.h"
#include "uip_arp.h"
#include "config.h"
#include "dtmf.h"
#include "timer.h"
#include "HALayer.h"
#include "fatlib.h"
#include "spilpc.h"


extern void init_serial (void);            /* Initialize Serial Interface     */
extern void mmcTest(void);
extern void uip_main(void);
extern s08 readConfig(u08 *filename);
extern s08 tamtam( void );
extern s08 playWaveFile(u08 *filename);
extern void createHTMLmessagesFile(void);
extern void localPlayback(void);


extern char GreetingFileName[];

u16 smtpip[] = {0x0644, 0x0413};

int main(void)
{
/* Initialize the board	 */
	VPBDIV  = 0x00000002;						            /* pclk = sclk /2 30 MHz*/

  IOSET0  = MMCCS + ETHCS + ETHRESET;         /* Insure no glitches */
  IODIR0  = MMCCS + ETHCS + ETHRESET;         /* Set the output */

  IOSET1  = OFFHOOK + OUTENA;                 /* Insure no hoofhook glitch */
 	IODIR1  = 0x00FF0000;                       /* P1.16..23 defined as Outputs */
  IOCLR1  = OUTENA;                           /* Enable the outputs */

  PINSEL0 = 0x00051500;                       /* Enable RxD1 and TxD1 and SPI */
	PINSEL1 = 0x01080001;                       /* Enable EINT0 and DAC and ADC */

	AD0CR   = 0x00200402;                       /* Setup A/D: 10-bit AIN0 @ 3MHz */

  EXTMODE =  0x00000001;                      /* EINT0 is edge sensitive */
  EXTPOLAR = 0x00000000;                      /* EINT0 active on negative edge */

	init_serial();                              /* Initialize Serial Interface   */
  init_SPI();                                  /* Init the SPI interface */
  initFSK();                                  /* Init the demod tables */

	VICIntEnClr =  0x00004030;           		    /* Disable the IRQ's */
  init_interrupts();                          /* Init all the interrupts */
 	VICIntEnable = 0x00004030;                  /* Enable IRQ's */
	  
  if ( (memCardInit()) && (fat_initialize() == 1) )
  {
	  printf("Init OK\n");
	} else {
		printf("Failed init\n");
  }

  /* Initialize the device driver. */ 
  ethernetInit();

  /* Command interface to test and debug */
 	//mmcTest();
      
  /* End board init */

  /* Read the configuration file */
  readConfig("tam.txt");

  /* Initialize the uIP TCP/IP stack. */
  uip_init();
  uip_arp_init();
  
  /* Initialize the HTTP server. */
  httpd_init();
  
  /* Initialize the SMTP emailer */
  smtp_configure("TAMTAM", &smtpip[0]);
  
  /* Create the message.htm file. This also updates the LED.
  If a user has a message pending, the corresponding LED blinks */ 
  createHTMLmessagesFile();

  printf("Ready for some action\n");
   while(1)
   {

    /*-----------------------------------------------------------------------*/
    /* Run the answering machine */
    /*-----------------------------------------------------------------------*/
    if (tamtam() == -1) {
      /* Go on HOOK */
      IOSET1  = OFFHOOK;
    }
    /*-----------------------------------------------------------------------*/
    /* Do the IP main loop */
    uip_main();
    /*-----------------------------------------------------------------------*/
    /* Chek if we have the flash card was unplugged */
    if( (IOPIN0 & CARDDETECT) != 0) {
      /* Wait until we get a card */
      while ( (IOPIN0 & CARDDETECT) != 0);
      /* Re-init the file system */
      memCardInit();
      fat_initialize();
      readConfig("tam.txt");
      playWaveFile( GreetingFileName );
    }
    /*-----------------------------------------------------------------------*/
    /* Check if the user wants to play a local message */
    localPlayback();
    /*-----------------------------------------------------------------------*/

  }
}

FILE DOWNLOAD LINK LIST (in TXT format):Β LINKS-10440.zip

Source: LPC2138 ARM ENC28J60 MICROCONTROLLER SMS


About The Author

Muhammad Bilal

I am a highly skilled and motivated individual with a Master's degree in Computer Science. I have extensive experience in technical writing and a deep understanding of SEO practices.

Leave a Comment

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.