You do not have to use Port E strobes if what you’re interfacing to does not require the /CS signal to go low before the start of the read or write cycle. You can use /IORD as your /CS signal if this is the case. Otherwise, you will need to enable at least one of the Port E pins to get the longer /CS cycle.
Any of the Port E pins can be used as I/O strobes, each one has an ***igned address range. See I/O Bank Control Registers in section 10 of the Rabbit 3000 User Manual for a complete explanation.
/IOWR and /IORD are separate signals available on the RCM3700 connector on pins 32 and 33 respectively.
/////////////////////////////////////////////////////////////////////////
// Configure Port E
/////////////////////////////////////////////////////////////////////////
WrPortI(PECR, &PECRShadow, 0); // clear all bits to pclk/2
WrPortI(PEFR, &PEFRShadow, 1); // PE0 is I/O /CS strobe
WrPortI(PEDR, &PEDRShadow, 0xFF); // set all bits high
WrPortI(PEDDR, &PEDDRShadow, 0xFF); // set all bits to output
// set up the external I/O control registers
WrPortI(IB0CR, &IB0CRShadow, 0x88); // Setup PE0 to be CS w/ 3 waits
WrPortI(SPCR, &SPCRShadow, 0x8C); // Enables AUX I/O
After this I/O writes to address 0 - 0x1FFF will read/write to the I/O bus
You do not have to use Port E strobes if what you’re interfacing to does not require the /CS signal to go low before the start of the read or write cycle. You can use /IORD as your /CS signal if this is the case. Otherwise, you will need to enable at least one of the Port E pins to get the longer /CS cycle.
Any of the Port E pins can be used as I/O strobes, each one has it’s own address range. See I/O Bank Control Registers in section 10 of the Rabbit 3000 User Manual for a complete explanation.
/IOWR and /IORD are separate signals available on the RCM3700 connector on pins 32 and 33 respectively.
/////////////////////////////////////////////////////////////////////////
// Configure Port E
/////////////////////////////////////////////////////////////////////////
WrPortI(PECR, &PECRShadow, 0); // clear all bits to pclk/2
WrPortI(PEFR, &PEFRShadow, 1); // PE0 is I/O /CS strobe
WrPortI(PEDR, &PEDRShadow, 0xFF); // set all bits high
WrPortI(PEDDR, &PEDDRShadow, 0xFF); // set all bits to output
// set up the external I/O control registers
WrPortI(IB0CR, &IB0CRShadow, 0x88); // Setup PE0 to be CS w/ 3 waits
WrPortI(SPCR, &SPCRShadow, 0x8C); // Enables AUX I/O
After this I/O writes to address 0 - 0x1FFF will read/write to the I/O bus
thanks for your quick reply.
but,what i still don’t see is why an IOWR signal is not
generated by my software command wrporte to a peripheral device.
what configurations (or proper commands) must i set in order to generate that signal?
(if some configurations are necessery).
thanks.
I’m expanding the I/O digital capacity of a RCM3305 using a 74HCT14 and a mix of 74HCT375 and 74HCT244. Using PE7 as “Chip Select” I note there is no settling time between data bus set and PE7 assertion. Everything is made in the same cycle time. By programming the PE7 as “Read/Write strobe” I get about 15ns between data bus set and PE7 assertion. But this is still a too short time for the HCT family. The wait states you can set in IB7CR, allow only to have a longer low state of PE7. I need instead to have the high-low transition on PE7 after about 30-40ns.