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?

Postby ztrail » Sat Jan 27, 2018 8:03 pm

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?
CousinItt
Active Member
Posts: 61
Joined: Wed May 31, 2017 6:55 pm

Postby CousinItt » Mon Jan 29, 2018 3:36 pm

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

Postby ztrail » Mon Jan 29, 2018 9:01 pm

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?
CousinItt
Active Member
Posts: 61
Joined: Wed May 31, 2017 6:55 pm

Postby CousinItt » Mon Jan 29, 2018 9:47 pm

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

Postby ztrail » Tue Jan 30, 2018 1:16 am

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/arielnh56/high-resolution-absolute-encoder-128-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: 158
Joined: Tue Mar 26, 2013 12:10 pm
Contact:

Postby johned » Tue Jan 30, 2018 11:19 am

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
CousinItt
Active Member
Posts: 61
Joined: Wed May 31, 2017 6:55 pm

Postby CousinItt » Tue Jan 30, 2018 12:23 pm

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: 158
Joined: Tue Mar 26, 2013 12:10 pm
Contact:

Postby johned » Tue Jan 30, 2018 12:36 pm

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
CousinItt
Active Member
Posts: 61
Joined: Wed May 31, 2017 6:55 pm

Postby CousinItt » Tue Jan 30, 2018 1:17 pm

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

Postby johned » Tue Jan 30, 2018 1:21 pm

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

Who is online

Users browsing this forum: No registered users and 20 guests