Connecting a WiFi sliceCARD to xCORE-200 eXplorerKIT?

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
Post Reply
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

Connecting a WiFi sliceCARD to xCORE-200 eXplorerKIT?

Post by aclassifier »

I have studied this and to me it looks like I would have enough I/O pins available to connect a PCIe breakout board to an xCORE-200 eXplorerKIT (the breakout board I would need to build myself)?

But I don't think such a breakout board would be possible for any sliceCARD, since 25M_STAR, 25M_TRI and SLI_RST_N are not general I/O pins but come from some core 0 sub circuit?

My note about this is at http://www.teigfam.net/oyvind/home/tech ... a_pciegpio, but here's the main figure (JPG, but I have a PDF there):

Image


--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
Gothmag
XCore Addict
Posts: 129
Joined: Wed May 11, 2016 3:50 pm

Post by Gothmag »

If the WiFi slice really is just SPI it's going to work just fine hardware wise if you make an I/F board for the pcie or solder to gold fingers. Need to make sure there is enough power supplied too, wifi can be expensive. The software is likey another story and might need alot of changes to work, or it could just need pin re-assignments, I haven't looked. I do wonder why though. You could set up a number of other modules like really cheap esp8266 modules and simply communicate with them over a UART which costs very little on the xmos side. It'd be cheaper and easier I think and since WiFi is already pretty awful for tight timings you lose very little.

It would definitely be possible though just depends on how much work you're willing to do to make it work.
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

Post by aclassifier »

A lot. This would also be a WiFi course for me. And the aquarium controller does have a startKIT embedded in its very tight box, but there is space for the WiFi sliceCARD. The biggest hurdle may be the number of chanends and code space available. That's also why I would want to start with the xCORE-200 eXplorerKIT with no ceiling. About timing I would think that the WiFi sliceCARD drivers would take care of that, if at all, since it only really talks SPI. After all it already has a TiWi-SL chip on board that does all the protocolling and draws max 250 mA @ 3V TX.

But what about the 25M_STAR, 25M_TRI and SLI_RST_N arguments and the possible impossibility of making a general PCIe breakout board for the xCORE-200 eXplorerKIT?
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
Gothmag
XCore Addict
Posts: 129
Joined: Wed May 11, 2016 3:50 pm

Post by Gothmag »

I'll look at the wifi slice specific details when I have a little more time(few hours) but from what I can see... If you just want to interface the WiFi slice with an explorerkit it doesn't look like you need the clock or reset you just add headers for whatever pins are required. If you do need the clock you could probably pass it through in software, if reset is needed you have to implement in software or solder a wire to the board to pull it out since the explorerkit best access is at button. Then you just deal with the software side. This is mostly where I need to look a little deeper. The hardware interfacing is dead simple, the software might not be if the WiFi software interface is locked to their slice port representation because you'll be replacing all of the instances of those IO with your custom IO interface or modifying their representation of ports. The startkit is incredibly limited for memory which for me makes it more of a demo board than a dev board since it is tough to integrate much hardware and still have memory for an actual program so might be challenging. I'll respond back later after I've looked at details.
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

Post by aclassifier »

Thanks!

I think the pin issue with the WiFi was mostly solved here: http://www.teigfam.net/oyvind/home/tech ... n_startkit

I have been impressed with the startKIT! I have a full controller with several tasks, interfaces, channels and a 132*32 bit I2C OLED display, I2C calendar/clock, I2C temp chips, I2C FRAM, control of 3 LED strips and 2 heating elements (long wires) - 3 buttons "and all"! But I would be surprised if I got the WiFi sliceCARD in there in addition to all this. But it's at least a socket there for it!

Thats's why I considered the xCORE-200 eXplorerKIT as a "startKIT2".
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
Gothmag
XCore Addict
Posts: 129
Joined: Wed May 11, 2016 3:50 pm

Post by Gothmag »

Yea, so the hardware side is definitely simple, as long as your setup can manage the SPI speeds then you're fine, it's just routing from a to b. Software side it looks like you're defining an SPI master interface along with a wifi_tiwisl_ctrl_ports_t for interrupt and power enable. So software side you should be alright as well assuming the lib compiles properly since it's essentially just an interface over SPI.
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

Post by aclassifier »

I built a breakout board. See url above, but a later chapter. Now I need to test it..
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

Post by aclassifier »

Now I am rather confused (from http://www.teigfam.net/oyvind/home/tech ... he_drivers):

Installing the drivers

From when I started (but didn’t finish) trying this for the startKIT I had this software installed in xTIMEcomposer:
  • module_wifi_tiwisl 1v0
  • module_spi_master 1v0
  • module_spi_slave 1v0
I deleted them all to start afresh. I went to a thread I started on XCore a while ago: Chicken and egg: xTIMEcomposer and GitHub and reread it. I then installed these:
  • In the Libraries tab that searches content from https://www.xmos.com in xTIMEcomposer SPI Library [lib_spi – 3.0.2]
  • In this tab there is nothing like wifi or tiwisl and particularly not module_wifi_tiwisl. I guess it’s because it’s a module and not a library
  • Instead I went to GitHub at https://github.com/xmos where I found lib_wifi. But I think this is a newer, more generalised library and not what I’m looking for. It’s dependent on lib_xtcp(>=5.1.0) lib_ethernet(>=3.0.3) lib_gpio(>=1.0.0) lib_filesystem(>=0.0.1) lib_xassert(>=2.0.0) lib_logging(>=2.0.0) lib_locks(>=2.0.2) but it doesn’t say anything about tiwisl
  • However, the Wi-Fi TiWi-SL Module Driver is probably what I’m after. It’s version 1.1.1rc0.a November 11, 2013. But where is the code?
  • Right now I am confused. Will lib_csp run easily with the Module Driver above? Or should I just find the newest of the initial three?
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
Gothmag
XCore Addict
Posts: 129
Joined: Wed May 11, 2016 3:50 pm

Post by Gothmag »

The module I looked at was https://github.com/xcore/sc_wifi for determining what would be required. The code IS old. It is not in the same structure as new libs/modules but I'm pretty sure it can be worked around by manually adding it to the workspace with some re-structuring. It also has examples. lib_wifi does seem to be a newer lib if they properly supported it but I'm not sure they do, as in it seems almost entirely abandoned by them and I don't think a slice with that wifi module was ever released. They also don't seem to have any lib/module/examples accessible from within xTimeComposer itself as you mentioned. Since the wifi slice listed on the xmos.com website is specifically the XA-SK-WIFI-TIWISL I'd probably start with adapting sc_wifi I linked at the beginning. It's possible they have the old examples still but someone at XMOS may have to find it.
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

Post by aclassifier »

Thanks for the advice. Starting with sc_wifi although old (it must have basically worked, I assume) is probably a good idea.

I edited and removed some text here since I got it to work using the app_tiwisl_simple_webserver! (http://www.teigfam.net/oyvind/home/tech ... emo_worked (Disclaimer: no money, no ads no gifts etc., my blog is only a hobby for fun)
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
Post Reply