Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

Nut Programmable Logic
[CPLD Based Devices]

Collaboration diagram for Nut Programmable Logic:


Detailed Description

Routines for using the Ethernut CPLD.

The CPLD on Ethernut 3 contains a set of registers, which can be used to control various system functions.


Defines

#define NPL_BASE   0xFF00
 CPLD register base address.
#define NPL_RSCR   _SFR_MEM8(NPL_BASE + 0x00)
 RS232 command register.
#define NPL_RSFON   0x0001
 Force on.
#define NPL_RSFOFF   0x0002
 Force off.
#define NPL_RSDTR   0x0004
 DTR handshake.
#define NPL_RSRTS   0x0008
 RTS handshake.
#define NPL_RSUS0E   0x0020
 USART0 select.
#define NPL_RSUS1E   0x0040
 USART1 select.
#define NPL_RSUS1P   0x0080
 USART1 primary.
#define NPL_IMR   _SFR_MEM16(NPL_BASE + 0x04)
 Interrupt mask register.
#define NPL_SLR   _SFR_MEM16(NPL_BASE + 0x0C)
 Signal latch register.
#define NPL_SCR   _SFR_MEM16(NPL_BASE + 0x10)
 Signal clear register.
#define NPL_RSCTS   0x0001
 RS232 CTS interrupt.
#define NPL_RSDSR   0x0002
 RS232 DSR interrupt.
#define NPL_RSDCD   0x0004
 RS232 DCD interrupt.
#define NPL_RSRI   0x0008
 RS232 RI interrupt.
#define NPL_RTCALARM   0x0010
 RTC alarm interrupt.
#define NPL_LANWAKEUP   0x0020
 NIC wakeup interrupt.
#define NPL_FMBUSY   0x0040
 FLASH ready interrupt.
#define NPL_MMCREADY   0x0080
 MMC shift register ready.
#define NPL_RSINVAL   0x0100
 RS232 invalid interrupt.
#define NPL_NRSINVAL   0x0200
 RS232 valid interrupt.
#define NPL_MMCD   0x0400
 MMC insert interrupt.
#define NPL_NMMCD   0x0800
 MMC remove interrupt.
#define NPL_MMCDR   _SFR_MEM8(NPL_BASE + 0x14)
 MMC data register.
#define NPL_XER   _SFR_MEM8(NPL_BASE + 0x18)
 External enable register.
#define NPL_MMCS   0x0001
 MMC select.
#define NPL_PANCS   0x0002
 Panel select.
#define NPL_USRLED   0x0004
 User LED.
#define NPL_VIDR   _SFR_MEM8(NPL_BASE + 0x1C)
 Version identifier register.
#define ULED_ON   1
 ULED status definitions.
#define ULED_OFF   0

Functions

int NplRegisterIrqHandler (IRQ_HANDLER *irq, void(*handler)(void *), void *arg)
 Register an NPL interrupt handler.
int NplIrqEnable (IRQ_HANDLER *irq)
 Enable a specified NPL interrupt.
int NplIrqDisable (IRQ_HANDLER *irq)
 Disable a specified NPL interrupt.
void NplUledCntl (int status)
 Low Level User LED (Green) Access. User LED control routine.
int NplUledStatus (void)
 Activate negated chip select. Deactivate negated chip select. User LED status routine.

Variables

IRQ_HANDLER sig_RSCTS
 RS232 CTS interrupt handler info.
IRQ_HANDLER sig_RSDSR
 RS232 DSR interrupt handler info.
IRQ_HANDLER sig_RSDCD
 RS232 DCD interrupt handler info.
IRQ_HANDLER sig_RSRI
 RS232 RI interrupt handler info.
IRQ_HANDLER sig_RTCALARM
 RTC alarm interrupt handler info.
IRQ_HANDLER sig_LANWAKEUP
 LAN wakeup interrupt handler info.
IRQ_HANDLER sig_FMBUSY
 Flash memory busy interrupt handler info.
IRQ_HANDLER sig_RSINVAL
 RS232 signal invalid interrupt handler info.
IRQ_HANDLER sig_NRSINVAL
 RS232 signal valid interrupt handler info.
IRQ_HANDLER sig_MMCD
 Multimedia card insertion interrupt handler info.
IRQ_HANDLER sig_NMMCD
 Multimedia card removal interrupt handler info.
IRQ_HANDLER sig_RSCTS
 RS232 CTS interrupt handler info.
IRQ_HANDLER sig_RSDSR
 RS232 DSR interrupt handler info.
IRQ_HANDLER sig_RSDCD
 RS232 DCD interrupt handler info.
IRQ_HANDLER sig_RSRI
 RS232 RI interrupt handler info.
IRQ_HANDLER sig_RTCALARM
 RTC alarm interrupt handler info.
IRQ_HANDLER sig_LANWAKEUP
 LAN wakeup interrupt handler info.
IRQ_HANDLER sig_FMBUSY
 Flash memory busy interrupt handler info.
IRQ_HANDLER sig_RSINVAL
 RS232 signal invalid interrupt handler info.
IRQ_HANDLER sig_NRSINVAL
 RS232 signal valid interrupt handler info.
IRQ_HANDLER sig_MMCD
 Multimedia card insertion interrupt handler info.
IRQ_HANDLER sig_NMMCD
 Multimedia card removal interrupt handler info.


Define Documentation

#define NPL_BASE   0xFF00
 

CPLD register base address.

On Ethernut 3 the CPLD is selected via NCS2 (GPIO 27), which is configured to 0x21000000 - 0x210FFFFF in the CRT initialization startup file.


Function Documentation

int NplRegisterIrqHandler IRQ_HANDLER *  irq,
void(*)(void *)  handler,
void *  arg
 

Register an NPL interrupt handler.

This function is typically called by device drivers, but applications may also implement their local interrupt handlers.

Parameters:
irq Interrupt to be associated with this handler.
handler This routine will be called by Nut/OS, when the specified interrupt occurs.
arg Argument to be passed to the interrupt handler.
Returns:
0 on success, -1 otherwise.

int NplIrqEnable IRQ_HANDLER *  irq  ) 
 

Enable a specified NPL interrupt.

Parameters:
irq Interrupt to enable.
Returns:
0 on success, -1 otherwise.

int NplIrqDisable IRQ_HANDLER *  irq  ) 
 

Disable a specified NPL interrupt.

Parameters:
irq Interrupt to disable.
Returns:
0 on success, -1 otherwise.

void NplUledCntl int  status  ) 
 

Low Level User LED (Green) Access. User LED control routine.

Parameters:
status ULED_ON of ULED_OFF

int NplUledStatus void   ) 
 

Activate negated chip select. Deactivate negated chip select. User LED status routine.

Returns:
The ULED Status (ULED_ON or ULED_OFF).


Variable Documentation

IRQ_HANDLER sig_RSCTS
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplRsCtsCtl                 
}
RS232 CTS interrupt handler info.

IRQ_HANDLER sig_RSDSR
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplRsDsrCtl                 
}
RS232 DSR interrupt handler info.

IRQ_HANDLER sig_RSDCD
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplRsDcdCtl                 
}
RS232 DCD interrupt handler info.

IRQ_HANDLER sig_RSRI
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplRsRiCtl                  
}
RS232 RI interrupt handler info.

IRQ_HANDLER sig_RTCALARM
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplRtcAlarmCtl              
}
RTC alarm interrupt handler info.

IRQ_HANDLER sig_LANWAKEUP
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplLanWakeupCtl             
}
LAN wakeup interrupt handler info.

IRQ_HANDLER sig_FMBUSY
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplFmBusyCtl                
}
Flash memory busy interrupt handler info.

IRQ_HANDLER sig_RSINVAL
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplRsInvalCtl               
}
RS232 signal invalid interrupt handler info.

IRQ_HANDLER sig_NRSINVAL
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplRsValidCtl               
}
RS232 signal valid interrupt handler info.

IRQ_HANDLER sig_MMCD
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplMmcInsertCtl             
}
Multimedia card insertion interrupt handler info.

IRQ_HANDLER sig_NMMCD
 

Initial value:

 {



    NULL,                       
    NULL,                       
    NplMmcRemoveCtl             
}
Multimedia card removal interrupt handler info.


© 2000-2006 by egnite Software GmbH - visit http://www.ethernut.de/