on RCM6700 can't control parallel port B( bit 1).

I try to write to all parallel ports of Rabbit 6000 with WrPortI(PADR, NULL, 1);
However, there is a bit 1 in port B, that refuses to work.
It’s always null( I check it by BitRdPortI( PBDR, 1 )).
I tried to change values in SPCR and SBPR, but it didn’t help.
I would appreciate any advice.

Please see section 9.3 Operation
The following steps must be taken before using Parallel Port B.

Of the Rabbit 6000 User Manual located at


Hi Margaret,
Thank you, for your answer. In Manual been told, that one should use SPCR to set port A and port B. I use SPCR to set port A and it works fine. How can I use it for port B?


PB1 is used for the programming port serial clock.

While you are communicating with Dynamic C you will not be able to program this pin or use it for other things.

Once you are done and put the board in standalone mode you can use serial port A and PB1 as you see fit.

Thank you, trooper2, for your answer. Now I realize, that the issue is, that I can’t change lone pin from low to high in any specific pin. I can change the port all pins value, by sending WrPortI(PBDR, &PBDRShadow, value). Will be gald for any help, on this topic.

You can, depending on how you have set up the SPCR register (external IO, slave port, etc.) See complete details in the Rabbit 6000 user manual, chapters 8 and 9.

If you are still wanting to set up PB1 you will not be able to run in debug mode.

Hi trooper2, again.
I tried different variations of SCPR settings. It still doesn’t work ( Port C although).
Is there a default value for SCPR, to make ports C, B to work as output?

It’s the SPCR register, not the SCPR register. The manual explains what setting to make for all outputs on parallel port B. See Chapter 9.3.

SPCR has to be set correctly and you also need to set PBDDR and possibly PBxCR.