View Single Post
  #4   Spotlight this post!  
Unread 15-02-2008, 11:56
dcbrown dcbrown is offline
Registered User
AKA: Bud
no team
Team Role: Mentor
 
Join Date: Jan 2005
Rookie Year: 2005
Location: Hollis,NH
Posts: 236
dcbrown has much to be proud ofdcbrown has much to be proud ofdcbrown has much to be proud ofdcbrown has much to be proud ofdcbrown has much to be proud ofdcbrown has much to be proud ofdcbrown has much to be proud ofdcbrown has much to be proud ofdcbrown has much to be proud ofdcbrown has much to be proud of
Re: Interrupts, limit switches, and IR board

There are two sources of the pullups - one inside the chip for PORTB pins (digital inputs 1-6), and the other within the IFI black robot controller case for digital inputs 7-18.

See IFI diagram for controller pullup information.

Code:
PORTB is a bidirectional I/O port. PORTB can be software
programmed for internal weak pull-ups on all inputs.
DS39646B-page 15


bit 7 RBPU: PORTB Pull-up Enable bit
1 = All PORTB pull-ups are disabled
0 = PORTB pull-ups are enabled by individual port latch values

DS39646B-page 122
So if !RPBU is asserted (0) AND the PORTB input pin is configured as input, then a weak pullup resistor to +5V is enabled on-chip for the robot controller's digital inputs 1-6.

The other digital lines 7-18 always have a 100k pullup supplied by IFI whether input or output.

The internal PORTB pullups are enabled within the code build environments by default. In IFI file ifi_library.c:

Code:
Initialize_Registers()
:
.
  TRISH = 0xFF;
  ADCON1 = 0x00;          /*all analog inputs; no digital*/
  INTCON2bits.NOT_RBPU = 0;  /*enable PORTB pull-ups (for bootloader interrupt)*/
  PSPCONbits.PSPMODE = 0;
  MEMCONbits.EBDIS = 1;   /*use PORTD for I/Os, not for external memory interface*/
The other resistors/capcitors shown; 1k/0.001uf on 1-6 and 680/0.01uf on lines 7-18 are passive RC networks to help reduce/eliminate input glitches seen on these lines due to noise and make/break actions of mechanical switches (i.e. to de-bounce inputs).

RC Networks effectively act as a time delay for the signal/signal change.

Attached is a schematic of a typical limit switch input into the robot controller.
Attached Thumbnails
Click image for larger version

Name:	limitswitch.JPG
Views:	56
Size:	26.1 KB
ID:	6274  

Last edited by dcbrown : 15-02-2008 at 12:12.