From 39802f68b4a7f27ad23ab3376170c92209335304 Mon Sep 17 00:00:00 2001 From: Jiri Kubias Date: Tue, 8 Apr 2008 19:56:36 +0200 Subject: [PATCH] Added new can feature - can_baud.c - CAN init with autobaudrate calculation --- arch/arm/mach-lpc21xx/defines/lpc21xx.h | 11 +++++++++++ arch/arm/mach-lpc21xx/libs/can/Makefile.omk | 2 +- arch/arm/mach-lpc21xx/libs/can/periph/can.h | 9 ++++++++- board/lpceurobot/defines/system_def.h | 2 ++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-lpc21xx/defines/lpc21xx.h b/arch/arm/mach-lpc21xx/defines/lpc21xx.h index c84f6e4..6281d19 100644 --- a/arch/arm/mach-lpc21xx/defines/lpc21xx.h +++ b/arch/arm/mach-lpc21xx/defines/lpc21xx.h @@ -380,6 +380,17 @@ #define WDFEED (*((volatile unsigned char *) 0xE0000008)) #define WDTV (*((volatile unsigned long *) 0xE000000C)) + +//------------------------- added by Jiri Kubias DCE CVUT ----------------------- + +// GPIO selection, mask for PINSEL + #define GPIO_SEL_0 0x0l + #define GPIO_SEL_1 0x1l + #define GPIO_SEL_2 0x2l + #define GPIO_SEL_3 0x3l + + + #ifdef __GNUC__ /* For Keil compatibility */ #define __irq __attribute__((interrupt)) diff --git a/arch/arm/mach-lpc21xx/libs/can/Makefile.omk b/arch/arm/mach-lpc21xx/libs/can/Makefile.omk index c1d9412..3aa0950 100644 --- a/arch/arm/mach-lpc21xx/libs/can/Makefile.omk +++ b/arch/arm/mach-lpc21xx/libs/can/Makefile.omk @@ -2,6 +2,6 @@ lib_LIBRARIES = can -can_SOURCES = can.c +can_SOURCES = can.c can_baud.c nobase_include_HEADERS = periph/can.h diff --git a/arch/arm/mach-lpc21xx/libs/can/periph/can.h b/arch/arm/mach-lpc21xx/libs/can/periph/can.h index f5e822f..b774ad2 100644 --- a/arch/arm/mach-lpc21xx/libs/can/periph/can.h +++ b/arch/arm/mach-lpc21xx/libs/can/periph/can.h @@ -13,13 +13,20 @@ typedef struct _can_msg_t { typedef void (*can_rx_callback)(can_msg_t *msg); +/* private global variables */ +can_rx_callback can_rx_cb; + /* public global variables */ extern volatile int can_msg_received; extern volatile can_msg_t can_rx_msg; /* function prototypes */ -void can_init(uint32_t btr, unsigned rx_isr_vect, can_rx_callback rx_cb); +void can_init(uint32_t btr, unsigned rx_isr_vect, can_rx_callback rx_cb); // Marek Peca function btr is register + +void can_init_baudrate(uint32_t baudrate, unsigned rx_isr_vect, can_rx_callback rx_cb); // Jiri Kubias function auto baudrate calculation void can_off(); int can_tx_msg(can_msg_t *tx_msg); +void can_rx_isr(); + /*EOF*/ diff --git a/board/lpceurobot/defines/system_def.h b/board/lpceurobot/defines/system_def.h index a2312ca..9a935e9 100644 --- a/board/lpceurobot/defines/system_def.h +++ b/board/lpceurobot/defines/system_def.h @@ -42,6 +42,8 @@ #define CPU_REF_HZ 14745000l /* reference clock */ #define CPU_SYS_HZ (4*CPU_REF_HZ)/* system clock */ +#define CPU_APB_HZ (CPU_SYS_HZ/2)/* APB clock */ +#define CPU_VPB_HZ CPU_APB_HZ /* VPB clock = APB clock, multiple definition */ unsigned long cpu_ref_hz; /* actual external XTAL reference */ unsigned long cpu_sys_hz; /* actual system clock frequency */ -- 2.39.2