Nut Programmable Logic
[CPLD Based Devices]

Collaboration diagram for Nut Programmable Logic:
Routines for using the Ethernut CPLD. More...

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.
int NplUledStatus (void)
 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.

Detailed Description

Routines for using the Ethernut CPLD.

Nut Programmable Logic.

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

 *
 * $Log: npl.c,v $
 * Revision 1.4  2009/01/17 11:26:46  haraldkipp
 * Getting rid of two remaining BSD types in favor of stdint.
 * Replaced 'u_int' by 'unsinged int' and 'uptr_t' by 'uintptr_t'.
 *
 * Revision 1.3  2008/08/11 06:59:42  haraldkipp
 * BSD types replaced by stdint types (feature request #1282721).
 *
 * Revision 1.2  2006/05/25 09:30:23  haraldkipp
 * Compiles for AVR. Still not tested, though.
 *
 * Revision 1.1  2006/01/05 16:30:57  haraldkipp
 * First check-in.
 *
 *
 * 

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.

Definition at line 71 of file npl.h.

#define NPL_RSCR   _SFR_MEM8(NPL_BASE + 0x00)

RS232 command register.

Definition at line 77 of file npl.h.

#define NPL_RSFON   0x0001

Force on.

Definition at line 79 of file npl.h.

#define NPL_RSFOFF   0x0002

Force off.

Definition at line 80 of file npl.h.

#define NPL_RSDTR   0x0004

DTR handshake.

Definition at line 81 of file npl.h.

#define NPL_RSRTS   0x0008

RTS handshake.

Definition at line 82 of file npl.h.

#define NPL_RSUS0E   0x0020

USART0 select.

Definition at line 83 of file npl.h.

#define NPL_RSUS1E   0x0040

USART1 select.

Definition at line 84 of file npl.h.

#define NPL_RSUS1P   0x0080

USART1 primary.

Definition at line 85 of file npl.h.

#define NPL_IMR   _SFR_MEM16(NPL_BASE + 0x04)

Interrupt mask register.

Definition at line 89 of file npl.h.

#define NPL_SLR   _SFR_MEM16(NPL_BASE + 0x0C)

Signal latch register.

Definition at line 93 of file npl.h.

#define NPL_SCR   _SFR_MEM16(NPL_BASE + 0x10)

Signal clear register.

Definition at line 97 of file npl.h.

#define NPL_RSCTS   0x0001

RS232 CTS interrupt.

Definition at line 99 of file npl.h.

#define NPL_RSDSR   0x0002

RS232 DSR interrupt.

Definition at line 100 of file npl.h.

#define NPL_RSDCD   0x0004

RS232 DCD interrupt.

Definition at line 101 of file npl.h.

#define NPL_RSRI   0x0008

RS232 RI interrupt.

Definition at line 102 of file npl.h.

#define NPL_RTCALARM   0x0010

RTC alarm interrupt.

Definition at line 103 of file npl.h.

#define NPL_LANWAKEUP   0x0020

NIC wakeup interrupt.

Definition at line 104 of file npl.h.

#define NPL_FMBUSY   0x0040

FLASH ready interrupt.

Definition at line 105 of file npl.h.

#define NPL_MMCREADY   0x0080

MMC shift register ready.

Definition at line 106 of file npl.h.

#define NPL_RSINVAL   0x0100

RS232 invalid interrupt.

Definition at line 107 of file npl.h.

#define NPL_NRSINVAL   0x0200

RS232 valid interrupt.

Definition at line 108 of file npl.h.

#define NPL_MMCD   0x0400

MMC insert interrupt.

Definition at line 109 of file npl.h.

#define NPL_NMMCD   0x0800

MMC remove interrupt.

Definition at line 110 of file npl.h.

#define NPL_MMCDR   _SFR_MEM8(NPL_BASE + 0x14)

MMC data register.

Definition at line 114 of file npl.h.

#define NPL_XER   _SFR_MEM8(NPL_BASE + 0x18)

External enable register.

Definition at line 118 of file npl.h.

Referenced by NplUledCntl(), and NplUledStatus().

#define NPL_MMCS   0x0001

MMC select.

Definition at line 120 of file npl.h.

#define NPL_PANCS   0x0002

Panel select.

Definition at line 121 of file npl.h.

#define NPL_USRLED   0x0004

User LED.

Definition at line 122 of file npl.h.

Referenced by NplUledCntl(), and NplUledStatus().

#define NPL_VIDR   _SFR_MEM8(NPL_BASE + 0x1C)

Version identifier register.

Definition at line 126 of file npl.h.

#define ULED_ON   1

ULED status definitions.

Definition at line 61 of file npluled.h.

Referenced by NplUledCntl().

#define ULED_OFF   0

Definition at line 62 of file npluled.h.

Referenced by NplUledCntl().


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.

Definition at line 267 of file npl.c.

References _BV, IRQ_HANDLER::ir_arg, IRQ_HANDLER::ir_ctl, IRQ_HANDLER::ir_handler, NUT_IRQCTL_INIT, NUT_IRQMODE_LOWLEVEL, NutIrqEnable(), NutIrqSetMode(), NutRegisterIrqHandler(), outr, and sig_INTERRUPT0.

int NplIrqEnable ( IRQ_HANDLER irq  ) 

Enable a specified NPL interrupt.

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

Definition at line 300 of file npl.c.

References IRQ_HANDLER::ir_ctl, and NUT_IRQCTL_ENABLE.

int NplIrqDisable ( IRQ_HANDLER irq  ) 

Disable a specified NPL interrupt.

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

Definition at line 312 of file npl.c.

References IRQ_HANDLER::ir_ctl, and NUT_IRQCTL_DISABLE.

void NplUledCntl ( int  status  ) 

Low Level User LED (Green) Access.

Low level User LED (Green) hardware routines for the programmable logic provided on the Ethernut 3 reference design.

 **
 * Revision 1.0  2006/01/22 10:01:02  alex (k.vassliev)
 * First check-in.
 *
 *
 * 

User LED control routine.

Parameters:
status ULED_ON of ULED_OFF

Activate negated chip select.

Deactivate negated chip select.

Definition at line 64 of file npluled.c.

int NplUledStatus ( void   ) 

User LED status routine.

Returns:
The ULED Status (ULED_ON or ULED_OFF).

Definition at line 84 of file npluled.c.


Variable Documentation

IRQ_HANDLER sig_RSCTS

RS232 CTS interrupt handler info.

Definition at line 320 of file npl.c.

IRQ_HANDLER sig_RSDSR

RS232 DSR interrupt handler info.

Definition at line 332 of file npl.c.

IRQ_HANDLER sig_RSDCD

RS232 DCD interrupt handler info.

Definition at line 344 of file npl.c.

IRQ_HANDLER sig_RSRI

RS232 RI interrupt handler info.

Definition at line 356 of file npl.c.

IRQ_HANDLER sig_RTCALARM

RTC alarm interrupt handler info.

Definition at line 368 of file npl.c.

IRQ_HANDLER sig_LANWAKEUP

LAN wakeup interrupt handler info.

Definition at line 380 of file npl.c.

IRQ_HANDLER sig_FMBUSY

Flash memory busy interrupt handler info.

Definition at line 392 of file npl.c.

IRQ_HANDLER sig_RSINVAL

RS232 signal invalid interrupt handler info.

Definition at line 404 of file npl.c.

IRQ_HANDLER sig_NRSINVAL

RS232 signal valid interrupt handler info.

Definition at line 416 of file npl.c.

IRQ_HANDLER sig_MMCD

Multimedia card insertion interrupt handler info.

Definition at line 428 of file npl.c.

IRQ_HANDLER sig_NMMCD

Multimedia card removal interrupt handler info.

Definition at line 440 of file npl.c.

IRQ_HANDLER sig_RSCTS

Initial value:

 {



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

Definition at line 320 of file npl.c.

IRQ_HANDLER sig_RSDSR

Initial value:

 {



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

Definition at line 332 of file npl.c.

IRQ_HANDLER sig_RSDCD

Initial value:

 {



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

Definition at line 344 of file npl.c.

IRQ_HANDLER sig_RSRI

Initial value:

 {



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

Definition at line 356 of file npl.c.

IRQ_HANDLER sig_RTCALARM

Initial value:

 {



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

Definition at line 368 of file npl.c.

IRQ_HANDLER sig_LANWAKEUP

Initial value:

 {



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

Definition at line 380 of file npl.c.

IRQ_HANDLER sig_FMBUSY

Initial value:

 {



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

Definition at line 392 of file npl.c.

IRQ_HANDLER sig_RSINVAL

Initial value:

 {



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

Definition at line 404 of file npl.c.

IRQ_HANDLER sig_NRSINVAL

Initial value:

 {



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

Definition at line 416 of file npl.c.

IRQ_HANDLER sig_MMCD

Initial value:

 {



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

Definition at line 428 of file npl.c.

IRQ_HANDLER sig_NMMCD

Initial value:

 {



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

Definition at line 440 of file npl.c.


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