ÿþC A N B u s D r i v e r s f o r A t m e l C 5 1 P r o d u c t s
C A N
T h i s a p p l i c a t i o n n o t e d e s c r i b e s t h e C A N D r i v e r f u n c t i o n s V e r s i o n 1 . 0 . 0 f o r t h e C A N
M i c r o c o n t r o l l e r s
m i c r o c o n t r o l l e r T 8 9 C 5 1 C C 0 1 .
T h e p u r p o s e o f t h e s e f u n c t i o n s i s t o h e l p c u s t o m e r s t a r t a C A N a p p l i c a t i o n b y p r o v i d e
h i m s o m e b a s i c f u n c t i o n s .
A p p l i c a t i o n N o t e
T h e p a c k a g e c o n t a i n f o l l o w i n g f i l e s :
" c a n _ l i b . c
" c a n _ l i b . h
" c o m p i l e r . h
T h e K E I L c o m p i l e r w a s u s e d f o r c o m p i l a t i o n .
R e v . 4 2 2 9 B C A N 0 1 / 0 3
1
I n t e r f a c e D e s c r i p t i o n
T y p e s d e f i n i t i o n T y p e d e f d e c l a r e d i n c o m p i l e r . h f i l e .
" U c h a r : u n s i g n e d c h a r
" U i n t 1 6 : u n s i g n e d s h o r t
" U i n t 3 2 : u n s i g n e d l o n g
" I n t 1 6 : s i g n e d s h o r t
" I n t 3 2 : s i g n e d l o n g
T y p e d e f d e c l a r e d i n c a n _ l i b . h f i l e .
" c a n _ i d _ t : u n i o n
U i n t 3 2 e x t :
" e x t " f i e l d a l l o w s a c c e s s t o 2 9 - b i t i d e n t i f i e r ( e x t e n d e d m o d e ) .
U i n t 1 6 s t d :
" s t d " f i e l d a l l o w s a c c e s s t o 1 1 - b i t i d e n t i f i e r ( s t a n d a r d m o d e ) .
U c h a r t a b [ 4 ] :
" t a b " a l l o w a c c e s s b y b y t e t o i d e n t i f i e r .
" s t _ c a n _ m s g _ t : s t r u c t
c a n _ i d _ t i d :
i d e n t i f i e r o f t h e C A N m e s s a g e , 1 1 b i t s i n s t a n d a r d m o d e a n d 2 9 b i t s i n
e x t e n d e d m o d e .
U c h a r c t r l :
b 7 : R T R - > D a t a F r a m e = 0 o r R e m o t e F r a m e = 1 ( a c c e s s b y m a s k
M S K _ C T R L _ R T R )
b 4 : I D E - > S t a n d a r d = 0 o r E x t e n d e d = 1 ( a c c e s s b y m a s k M S K _ C T R L _ I D E )
b 3 : 0 D L C - > n u m b e r o f d a t a u s e d d l c _ t ( a c c e s s b y m a s k M S K _ C T R L _ D L C )
U c h a r * p t _ d a t a :
p o i n t e r o n U c h a r t a b l e o f d a t a ( s i z e m a x = 8 ) .
" c h a n n e l _ t : e n u m
C H A N N E L _ 0 . . C H A N N E L _ 1 4 , N O _ C H A N N E L
" d l c _ t : e n u m
C O N F _ D L C _ 0 . . C O N F _ D L C _ 8
2
C A N A p p l i c a t i o n N o t e
4 2 2 9 B C A N 0 1 / 0 3
C A N A p p l i c a t i o n N o t e
F u n c t i o n a l D e s c r i p t i o n
C a n S e t B R P T h i s f u n c t i o n i s u s e d t o i n i t i a l i z e t h e p r e s c a l e r o f C A N c o n t r o l l e r w i t h p a r a m e t e r
" p r e s c a l e r " .
1 . P r o t o t y p e :
v o i d C a n S e t B R P ( U c h a r p r e s c a l e r )
2 . I n p u t :
p r e s c a l e r : V a l u e o f f i e l d B R P ( B a u d R a t e P r e s c a l e r ) i n C A N B T 1 r e g i s t e r
3 . O u t p u t :
v o i d
C a n S e t S J W T h i s f u n c t i o n i s u s e d t o i n i t i a l i z e t h e r e _ S y n c h r o n i z a t i o n J u m p W i d t h o f C A N c o n t r o l l e r
w i t h p a r a m e t e r " s j w " .
1 . P r o t o t y p e :
v o i d C a n S e t S J W ( U c h a r s j w )
2 . I n p u t :
s j w : V a l u e o f f i e l d S J W ( r e - S y n c h r o n i z a t i o n J u m p W i d t h ) i n C A N B T 2 r e g i s t e r
3 . O u t p u t :
v o i d
C a n S e t P R S T h i s f u n c t i o n i s u s e d t o i n i t i a l i z e t h e p r o g r a m m i n g t i m e s e g m e n t o f C A N c o n t r o l l e r w i t h
p a r a m e t e r " p r s "
1 . P r o t o t y p e :
v o i d C a n S e t P R S ( U c h a r p r s )
2 . I n p u t :
p r s : V a l u e o f f i e l d P R S ( P r o g r a m m i n g t i m e S e g m e n t ) i n C A N B T 2 r e g i s t e r
3 . O u t p u t :
v o i d
C a n S e t P H S 2 T h i s f u n c t i o n i s u s e d t o i n i t i a l i z e t h e p h a s e s e g m e n t 2 o f C A N c o n t r o l l e r w i t h
p a r a m e t e r " p h s 2 " .
1 . P r o t o t y p e :
v o i d C a n S e t P H S 2 ( U c h a r p h s 2 ) ;
2 . I n p u t :
p h s 2 : V a l u e o f f i e l d P H S 2 ( P h a s e S e g m e n t 2 ) i n C A N B T 3 r e g i s t e r .
3 . O u t p u t :
v o i d
C a n S e t P H S 1 T h i s f u n c t i o n i s u s e d t o i n i t i a l i z e t h e p h a s e s e g m e n t 1 o f C A N c o n t r o l l e r w i t h p a r a m e t e r
" p h s 1 " .
1 . P r o t o t y p e :
v o i d C a n S e t P H S 1 ( U c h a r p h s 1 )
2 . I n p u t :
p h s 1 : V a l u e o f f i e l d P H S 1 ( P h a s e S e g m e n t 1 ) i n C A N B T 3 r e g i s t e r .
3 . O u t p u t :
v o i d
3
4 2 2 9 B C A N 0 1 / 0 3
C o n f C h a n n e l _ R x T h i s f u n c t i o n i s u s e d t o c o n f i g u r e a c h a n n e l i n r e c e p t i o n m o d e .
B e f o r e c a l l i n g t h i s f u n c t i o n t h e c o r r e s p o n d i n g c h a n n e l m u s t b e s e l e c t e d .
M a k e s u r e t h e c h a n n e l i s f r e e b e c a u s e n o v e r i f i c a t i o n i s p e r f o r m e d b y t h e f u n c t i o n .
T o i n c r e a s e t h a t t h e p e r f o r m a n c e g l o b a l v a r i a b l e s a r e u s e d .
1 . P r o t o t y p e :
v o i d C o n f C h a n n e l _ R x ( v o i d )
2 . I n p u t :
v o i d
3 . O u t p u t :
v o i d
4 . G l o b a l V a r i a b l e s :
c a n _ i d _ t c a n _ r x _ f i l t : V a l u e o f t h e f i l t e r f o r i d e n t i f i e r
c a n _ i t _ t c a n _ r x _ m s k : V a l u e o f t h e m a s k f o r i d e n t i f i e r
U c h a r c o n f _ r x :
b 7 : m a s k i d e f i e l d ( C O N F _ M S K _ I D E ) o r n o t ( C O N F _ N O M S K _ I D E )
b 5 : i f m a s k o n r t r f i e l d a c c e p t o n l y R T R f r a m e ( C O N F _ R T R ) o r d a t a f r a m e
( C O N F _ N O R T R )
b 4 : i f m a s k o n i d e f i e l d a c c e p t o n l y s t a n d a r d i d e n t i f i e r ( C O N F _ N O I D E ) o r
e x t e n d e d ( C O N F _ I D E )
b 2 : m a s k r t r f i e l d ( C O N F _ M S K _ R T R ) o r n o t ( C O N F _ N O M S K _ R T R )
b 0 : c o n f i g u r e c h a n n e l i n r e c e p t i o n ( C O N F _ N O B U F F E R ) o r i n b u f f e r
r e c e p t i o n ( C O N F _ B U F F E R )
5 . C E x a m p l e :
T o c o n f i g u r e c h a n n e l 3 i n r e c e p t i o n o n l y f o r s t a n d a r d f r a m e d a t a a c c e p t i n g
o n l y i d e n t i f i e r s t a r t b y 0 x 3 5 X .
c a n _ r x _ f i l t . s t d = 0 x 3 5 F ;
c a n _ r x _ m s k . s t d = 0 x 3 5 0 ;
c o n f _ r x =
C O N F _ N O I D E | C O N F _ M S K _ I D E | C O N F _ N O B U F F E R | C O N F _ N O R T R ;
C A N _ S E T _ C H A N N E L ( C H A N N E L _ 3 ) ;
C o n f C h a n n e l _ R x ( ) ;
S e n d C a n M s g T h i s f u n c t i o n i s u s e d t o s e n d a m e s s a g e o n t h e C A N b u s .
B e f o r e c a l l i n g t h i s f u n c t i o n t h e c o r r e s p o n d i n g c h a n n e l m u s t b e s e l e c t e d .
M a k e s u r e t h a t t h e c h a n n e l i s f r e e b e c a u s e n o v e r i f i c a t i o n i s p e r f o r m e d b y t h e f u n c t i o n .
T o i n c r e a s e t h e p e r f o r m a n c e g l o b a l v a r i a b l e s a r e u s e d .
1 . P r o t o t y p e :
v o i d S e n d C a n M s g ( v o i d )
2 . I n p u t :
v o i d
3 . O u t p u t :
v o i d
4 . G l o b a l V a r i a b l e s :
c a n _ i d _ t c a n _ t x _ i d : V a l u e o f t h e f i l t e r f o r i d e n t i f i e r
U c h a r * p t _ c a n d a t a _ t x : T a b l e w i t h d a t a t o t r a n s m i t
4
C A N A p p l i c a t i o n N o t e
4 2 2 9 B C A N 0 1 / 0 3
C A N A p p l i c a t i o n N o t e
U c h a r c o n f _ t x :
b 5 : r e m o t e f r a m e ( C O N F _ R T R ) o r d a t a f r a m e ( C O N F _ N O R T R )
b 4 : s t a n d a r d i d e n t i f i e r ( C O N F _ N O I D E ) o r e x t e n d e d i d e n t i f i e r ( C O N F _ I D E )
b 3 - 0 : n u m b e r o f d a t a b y t e s t o t r a n s m i t ( u s e d d l c _ t , C O N F _ D L C _ 0 . . .
C O N F _ D L C _ 8 )
5 . C E x a m p l e :
T o s e n d s t a n d a r d f r a m e w i t h i d = 0 x 3 1 8 , a n d 8 d a t a b y t e s .
U c h a r d a t a [ 8 ] = { 0 x 0 0 , 0 x 1 1 , 0 x 2 2 , 0 x 3 3 , 0 x 4 4 , 0 x 5 5 , 0 x 6 6 , 0 x 7 7 } ;
s t _ c a n _ m s g _ t c a n _ m s g _ t x = { 0 x 3 1 8 , C O N F _ N O I D E | C O N F _ N O R T R |
C O N F _ D L C _ 8 , d a t a [ ] } ;
c o n f _ t x = c a n _ m s g _ t x . c t r l ;
C A N _ S E T _ C H A N N E L ( C H A N N E L _ 3 ) ;
S e n d C a n M s g ( ) ;
R e a d C a n M s g T h i s f u n c t i o n i s u s e d t o r e a d a m e s s a g e r e c e i v e d o n " n u m _ c h a n n e l " a n d s t o r e i t i n t h e
s t r u c t u r e p t _ s t _ c a n _ m s g .
B e f o r e c a l l i n g t h i s f u n c t i o n t h e c o r r e s p o n d i n g c h a n n e l m u s t b e s e l e c t e d .
T o i n c r e a s e t h e p e r f o r m a n c e g l o b a l v a r i a b l e s a r e u s e d .
1 . P r o t o t y p e :
v o i d R e a d C a n M s g ( U c h a r n e x t _ c o n f )
2 . I n p u t :
U c h a r n e x t _ c o n f : T h i s f i e l d s e l e c t t h e c o n f i g u r a t i o n o f t h e c o r r e s p o n d i n g
c h a n n e l a f t e r r e a d i n g m e s s a g e .
c h a n n e l m u s t b e d i s a b l e = C H A N N E L _ D I S A B L E
c h a n n e l e n a b l e i n r e c e p t i o n w i t h s a m e c o n f i g u r a t i o n =
C H A N N E L _ R X _ E N A B L E
c h a n n e l m u s t b e e n a b l e w i t h s a m e c o n f i g u r a t i o n b u t i n b u f f e r m o d e =
C H A N N E L _ R X B _ E N A B L E .
3 . O u t p u t :
v o i d
4 . G l o b a l V a r i a b l e s :
c a n _ m s g _ t * p t _ s t _ c a n _ r x : a p p l i c a t i o n s t r u c t u r e f o r r e c e i v e d m e s s a g e .
5 . C E x a m p l e :
F o r r e a d m e s s a g e r e c e i v e d o n c h a n n e l 5 , a n d r e c o n f i g u r e t h e c h a n n e l i n
r e c e p t i o n .
U c h a r d a t a [ 8 ] ;
s t _ c a n _ m s g _ t c a n _ m s g _ r x = { 0 x 0 0 , 0 x 0 0 , d a t a [ 0 ] } ;
p t _ s t _ c a n _ r x = &