|
Building the Maximite Expander.
Issues to be aware of.
Before starting there are a few issues with the original published circuit and layout of the Maximite, that need to be understood. These issues will determine to some degree how the expander and Maximite are connected.
The first issue is the 26W Right Angle connector on the Maximite. Due to an incorrect footprint in the PCB design software the pin numbering on the board (and circuit) is reversed with respect to the pin numbering on the actual connector. This can be resolved in a few different ways.
- Remove the Right angle connector and fit a standard straight connector the right way around (my recommended option).
- Cut a new notch in the right angle connector, allowing the plug from the ribbon cable to be inserted the correct way with respect to the board and circuit pin numbering.
- Make up a special interconnecting cable that is reversed at one end.
I would (and have) chosen the first option, as it removes the need to remember and allow for any error when connecting expanders in the future. They only plug in one way, and the pin numbering is consistent throughout.
The second issue is Pins 3 & 4 on the same 26W IDC connector originally published in the Silicon Chip article are reversed. The circuit as published with the Altronics kit (or at least the one I got) is correct. Pin 3 is +3.3V and Pin 4 is +5V. There was also an error in the published circuit as shown on Geoff Grahams web site, but that may have been fixed. So be careful when reading the circuits from various sources.
The last and least consequential issue is the designators for the 2 voltage regulators were reversed on the circuit published in the Silicon Chip article. Again this has been corrected in the documentation provided with the Altronics kit.
Terminology
Throughout this document the terms PIN and Channel are used to mean the same thing i.e an I/O interface port known as a PIN on the Maximite.
Maximite Expander Notes.
One of the first things you may notice when assembling the Maximite Expander is almost all the resistor values are 10K. This may seem strange and normally you would be correct, however this was done for a few very simple reasons.
- It makes it easier to assemble.
- The design of the circuit makes these values non critical, and 10K is within the ballpark.
- The circuit may wish to be altered to interface with specific equipment, and so other values may be needed anyway.
When assembling the expander for a specific task, you only need to install the components related to the functionality you are wishing to achieve. For example if you are only going to control external devices then none of the input circuitry would need to be populated. The same in reverse of course if you were only going to monitor inputs. Or Perhaps 5 channels configured as inputs and 5 as outputs.
If on the other hand you are building the expander as a general purpose platform that may change its role over time, then fully populating the board is a good option.
Cascading Two Expanders (and only 2)
If you have the need to use more than 10 channels, the two Expander boards can be cascaded to give access to all 20 channels of the Maximite. Before doing this it is important to understand the master slave relationship of the two expander boards.
The board connected to the Maximite is known as the Master, and the second cascaded board is the slave. The boards are connected with a short ribbon cable from the second connector on the master (Con2) to the first connector on the Slave (Con1 the Maximite connector). Be sure to understand this before connecting and powering up the boards as problems may occur if you are trying to drive the same Maximite input from 2 incorrectly wired expanders. The reason for this is it makes the boards identical and interchangeable with channels 11-20 being rewired to appear as channels 1-10 on the second connector (Con2).
Assembly
The assembly should be straight forward, and all the normal assembly rules and checks for correct component placement and orentation should be used. So if you have already assembled the Maximite, then assembling the Expander is easy.
Having said that a couple of tips;
Be sure to get the external connector header pins as vertical as possible as this affects how the push on screw blocks will fit. If you havent yet assembled the Maximite, give consideration to replacing the right angle 26W IDC connector with a straight one the correct way round.
Crimping the IDC connectors onto the ribbon cable can be done in a small vice. Be sure to align the red stripe in the cable with the pin 1 arrow on the connector. Check the alignment of the conductors with the pin knives before gently squeezing it in the vice. The cable should then have the excess trimmed off and the tail looped back over the top and the strain relief fitted by hand. Some time should be taken when fitting these plugs as it is possible to crimp them correctly in 2 orentations, so be sure to understand which way they need to face and allow for the strain relief loopback before actually crimping.


Circuit operation & configuration
The circuit for each channel is very straight forward and hopefully easy to understand.
The components used and their values can be changed or ommitted as required.
The Maximite channels as presented on the 26W IDC connector are as follows.
| Channels (Pins) |
Functionality |
| |
|
| 1-10 |
Analog Input (3.3V) |
| |
Digital Output (3.3V) |
| |
Digital Input (3.3V) |
| |
Interrupt (low and High) |
| |
|
| 11-20 |
Digital Output (3.3V) |
| |
Digital Input (5V) |
| |
Open Collector Output (max pull up 5V) |
| |
Interrupt (low and High) |
| |
|
| 11-14 |
Frequency Input |
| |
Period Input |
| |
Counting Input |
When using the expander it is possible to achieve additional functionality as follows;
| Channels (Pins) |
Functionality |
|
|
| 1-10 |
Analog Input (3.3V) |
| |
Digital Output (to selected VCC for that channel i.e. 12V - 24V) |
| |
Digital Input (from selected VCC for that channel i.e.12V - 24V) |
| |
Interrupt (low and High) |
| |
Open Collector output (max pullup VCC for that channel i.e.12V - 24V) |
| |
Direct Drive loads such as relays. |
| |
|
| 11-20 |
Digital Output (to selected VCC for that channel i.e.12V - 24V) |
| |
Digital Input (from selected VCC for that channel i.e.12V - 24V) |
| |
Open Collector output (max pullup VCC for that channel i.e.12V - 24V) |
| |
Interrupt (low and High) (from selected VCC for that channel i.e.12V - 24V) |
| |
|
| 11-14 |
Frequency Input |
| |
Period Input |
| |
Counting Input |
| |
|
| |
|
| |
|
Each channel on the expander is identical, however although the expander may support such functionality as "Analog Input" on every channel, it is still dependent on the coresponding Maximite channel to support the same functionality.
You should note that Open Collector operation is available on all channels, with the removal of the pullup resistor on the collector of the output transistor (eg R4 on Channel 1).
RS232 Serial Communications
The hardware required for serial RS232 communications has been included on the V2 board, however this will not work until the serial functionality has been added to the Maximite firmware in a future release.
The hardware provides a TTL to RS232 level converter to convert the Maximites 3.3V logic to RS232 levels (+/- 13V).
There are 2 input and 2 output channels wired to provide the following functionality;
- RX Data
- TX Data
- RTS
- CTS
These functions are wired to a DB9 Female connector configured as a DCE, thus allowing a straight through connection to a PC.
The other side of the converter is connected to a 4 pin header. This header has the above listed functions present and can be jumpered with a piece of wire to the appropriately configured channels in place of the 3 way jumpers that are present.
Given that this functionality does not yet exist in the Maximite firmware, this configuration information is provissional.
Inverted Logic
When using the Maximite Expander digital inputs or outputs, the levels are inverted. So a voltage of 3.3V output on a Maximite output pin would result in a voltage of 0V on the coresponding Expander output pin.
This is due to the use of a single transistor to provide isolation, and although it may initially seem confusing there is a simple solution to use in code.
At the beginning of a progral assign 2 constants as follows;
10 High = 0
20 Low = 1
Then whenever you wish to set or read a pin you use the constants High & Low instead of 1 & 0.
eg 50 PIN(1) = High
Will set the output on the expander channel to high as expected.
This also has the benefit of making the code more readable.
|