The A/D converter in MINC offers a lot of flexibility – the main module already has 16 channels on it, the top 8 of which may be configured as differential channels. The first four can be connected to the potmeters on the front panel for easy input of analog values. But there’s more – you can add additional modules for more single ended or differential channels by adding MNCAM multiplexer modules. And you can add MNCAG modules, which add only 4 channels, but with a programmable gain amplifier and a choice of voltage, current or resistance measurements. And finally there’s a also a MNCTP module – a dedicated preamplifier for thermocouple sensors.
Little is known about the MNCAG and MNCTP modules – the schematics for those are missing in the available field maintenance print sets, and while MNCAG is mentioned in the surviving manuals, MNCTP is from a later date than the latest manuals we have so far been able to find. What little we know is mostly from experimenting with the MINC BASIC – that includes support for both modules – and digging through the listing of the VMNA MAINDEC.
From that listing we have been able to figure out how the MNCAD would keep track of the types of the extension modules one could place in the MINC chassis – there is a simple side channel that allows the MNCAD to send a 4-bit value to each channel, and that is reported back in the top 4 bits of the conversion result buffer when the enable_id bit in the CSR is set. Easy enough, once you know how it works – the details are on the page about MNCAD in the menu.
What wasn’t so easy though was to figure out an elegant way to make it possible to configure all the different channel types for PDP2011. The mncad.vhd module is generic for all PDP2011 systems – but there are already several variants for popular FPGA boards that have different A/D hardware on them, and that obviously can’t be in a generic component. The best example probably being the de10-lite which has the A/D in it’s MAX10 chip already – with channel numbers up to 17. But also the tiny de0-nano has 8 A/D channels on it.
So how to do that – the question was on my mind for a long time, I even made an experimental setup that had the configuration in the mncad.vhd component but I didn’t like how it worked. So I sort-of abandoned that idea, but without a better alternative. Until a couple of weeks ago – when it finally occurred to me that all that is needed for the MNCTP and MNCAG modules is a couple bits to store the gain setting for each channel, and a way to send those bits and the channel code back to the MNCAD.
That’s what I’ve now added – two tiny modules in the mincdrv directory that do just that – store the gain settings, with outputs for programmable gain A/D components, should those ever be made – obviously, those would rely on specific and probably expensive A/D hardware that currently isn’t even remotely planned for, but whatever you could come up with would within reason work in this model, or not be suitable for a MINC machine at all.
Oh, as they say, ‘one last thing’ – there still is a limitation in the current setup. Channels can only be configured in groups of 8, and while I gather that is exactly how it would have been with ‘real’ MNCTP modules, the MNCAG would’ve allowed for groups of 4.