14. OPTOCOUPLER OPERATION

Diamond-MM-48-AT contains 4 optocoupler inputs with programmable polarity, programmable edge detection capability, and interrupt capability on edge detection. These lines accept inputs up to 28VDC. The transition between logic 0 and 1 occurs at approximately 1.5VDC and is guaranteed to be 1 at 3VDC or above.

The POL jumper on jumper block J6 selects the logic polarity of the 4 register bits OPTO3-0. The POL jumper can be read with the POL bit in Base + 8. The POL register bit indicates the value of an open circuit or logic 0 input signal:

 

 

OPTO3-0 readback value

POL jumper

POL bit

Vin < 1.5VDC

Vin > 3VDC

Out

0

0

1

In

1

1

0

To enable edge detection on any optocoupler, set the corresponding OENn bit to 1, and then select the desired edge polarity with POLn. POLn = 0 selects falling edge, and POLn = 1 selects rising edge. NOTE: The edge polarity is determined with respect to the polarity selected with the POL jumper. If the POL jumper is in, an input voltage change from 0V to 3V is considered a falling edge, not a rising edge.

Whenever you read the optocoupler logic level data OPTO3-0 in Base + 7, you also read the edge status data in the upper 4 bits OEDGE3-0. Reading this register clears the OEDGE3-0 data, so successive reads will show a change in the value of these bits to 0. Note that if an input toggles in both directions between reads, you will still see the change because the OEDGEn bit will be 1 even though the logic level remains the same.

The board may also be programmed to generate interrupts when any selected edge occurs. To enable interrupts on edge detection, set the OINTE bit in Base + 11. when OINTE = 1, any edge programmed in the above manner will generate an interrupt and set the OINT bit in Base + 11. The interrupt routine reads the data by reading from Base + 7, and then it clears the interrupt request by writing a 1 to the CLRO bit in Base + 11.

NOTE: Diamond-MM-48-AT has 4 distinct interrupt circuits that may request interrupt service independently of each other. A PC/104 bus interrupt request will occur when any one of the circuits requests service. As long as any circuit is still requesting service, the interrupt request will stay active. This means that writing to the CLRO bit may not clear the bus interrupt request even though it clears the specific optocoupler input interrupt request. The interrupt service routine is responsible for determining which of the three circuits is requesting service and handling all of them as needed.

Procedure for enabling interrupts on selected edges

1.Select the desired input channel(s) by setting OENn = 1 for each one to be detected.

2.Select the desired edge polarity for each enabled channel by setting POLn appropriately. NOTE: Steps 1 and 2 are done together with a single write operation to Base + 6.

3.Enable optocoupler interrupts by setting the OINTE bit in Base + 11.

4.When an interrupt occurs, read the edge and logic level data from Base + 7.

5.After reading the edge and logic data, write a 1 to the CLRO bit in Base + 11 to clear the interrupt request.

6.When interrupt activity is no longer needed, write a 0 to the OINTE bit to disable optocoupler interrupts.

Diamond-MM-48-AT User Manual V1.01

Page 38

Page 38
Image 38
Diamond Power Products MM-48-AT user manual Optocoupler Operation, Procedure for enabling interrupts on selected edges