XK-AUDIO-216-MC free GPIO pins?

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
ztrail
Junior Member
Posts: 7
Joined: Mon Dec 11, 2017 4:53 am

XK-AUDIO-216-MC free GPIO pins?

Post by ztrail »

I have a XK-AUDIO-216-MC I'd like to add some HID devices, rotary controls, mostly.

Am I correct that all the GPIO pins are already reserved for other functions?

Any ideas for modifications to board to free up some inputs?

I'm not planning to use the coaxial connections, for example.

or could/should I setup a bus to an off-board processor to connect the controls?

What do you recommend?
User avatar
CousinItt
Respected Member
Posts: 365
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

I looked at the schematic for the board and I can't see any I/O that's directly taken to a connector. If you're not using MIDI, there are the serial input and output that you could use to communicate with an off-board processor.
ztrail
Junior Member
Posts: 7
Joined: Mon Dec 11, 2017 4:53 am

Post by ztrail »

Thanks CousinItt,

after thinking about this a bit, it seems the best solution is to use the i2C bus and put an i2C enabled encoder on it.

There's a couple guys on Tindie that can provide a ready-made item.

Comments?
User avatar
CousinItt
Respected Member
Posts: 365
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

Do you have access to the I2C bus, other than by tacking on wires?

If you're using the existing bus, you just need to check the 3V3 signalling level is compatible and there is no addressing conflict and then you should be fine.

I'm assuming that the bus runs at 100 kHz (the limit for the CS2100 - I've not checked the other parts) and there's plenty of slack time - I2C is used typically for configuration of audio devices and then goes quiet. Also note some manufacturers prefer the I2C isn't used once that's done to minimise noise. For example, the CS2100 data sheet says "to avoid potential interference problems, the control port pins should remain static if no operation is required."
ztrail
Junior Member
Posts: 7
Joined: Mon Dec 11, 2017 4:53 am

Post by ztrail »

There are SCL and SDA solder rings on the MC board. I'd attach some headers for access.

I'm considering this: https://www.tindie.com/products/arielnh ... positions/

It uses the TI PCF8574 which runs 3.3v and 100mhz max.

Both the address ranges offered, 0x20 - 0x27 and 0x38 - 0x3F, are out the way of the three devices listed in the hardware guide: CS5368 0x4C, CS4384 0x18, CS2100 0x4E.

The controls are for gain and balance, one of each.
User avatar
johned
XCore Addict
Posts: 185
Joined: Tue Mar 26, 2013 12:10 pm

Post by johned »

If you're not using MIDI, you could use the MIDI_TX and MIDI_RX pins for the i2c connectivity.
See the hardware manual : https://www.xmos.com/download/private/x ... 1.2%29.pdf.
Best regards,
John
User avatar
CousinItt
Respected Member
Posts: 365
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

ztrail - sounds good.

John - the I2C SDA signal is bidirectional - wouldn't using the MIDI lines involve a bit of surgery?
User avatar
johned
XCore Addict
Posts: 185
Joined: Tue Mar 26, 2013 12:10 pm

Post by johned »

All of the I/O on the xmos device is software programmable and you just connect your software modules to the required GPIO pins. if you implement i2c on the MIDI GPIO pins then you can solder a header to MI_TX and MI_RX through holes on the board and from there connect to your i2c device.
Best regards,
John
User avatar
CousinItt
Respected Member
Posts: 365
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

Hi John, I meant that the MIDI RX line is permanently driven by U31 and R171 = 220R.
User avatar
johned
XCore Addict
Posts: 185
Joined: Tue Mar 26, 2013 12:10 pm

Post by johned »

Ah yes, it is, sorry, my mistake.

Another option would be to use the ADC and DAC in TDM mode so that it only requires one GPIO for each direction. You could then re-task the other GPIOs for i2c.
The benefit of this is that the headers are already fitted to the board.

All the best,
John