Slicekit Hardware Manual
-
- Member++
- Posts: 27
- Joined: Thu Apr 15, 2010 4:52 pm
Slicekit Hardware Manual
A colleague of mine just built a custom board to plug into the TRIANGLE slot of a Slicekit. The one bit ports he selected (P1A0 and P1D0) did not function as expected, and the schematic shows that these ports are connected to the output of a multiplexer (U6). It looks like the STAR slot has a similar trap. I recommend updating the tables in the Hardware Manual to point out which pins are not freely available to the user.
-
- Experienced Member
- Posts: 111
- Joined: Sun Mar 06, 2011 11:39 pm
I think the XS1-L16 boot section in the SliceKit Hardware Manual makes it reasonably clear that some pins are multiplexed between SPI flash and triangle/star slots.
By the way, including module_slicekit_support in the project will automatically set those multiplexed pins for use with the triangle and star slots.
By the way, including module_slicekit_support in the project will automatically set those multiplexed pins for use with the triangle and star slots.
-
- Member++
- Posts: 27
- Joined: Thu Apr 15, 2010 4:52 pm
Thanks for the correct and informative reply. This is what happens when I do not read every page carefully. I still think it would be nice to flag the afflicted pins in the tables with a note to read the XS1-L16 boot section. It looks like you have given me a simple solution to my colleague's problem.
-
- Experienced Member
- Posts: 111
- Joined: Sun Mar 06, 2011 11:39 pm
I'm glad I could help.
I agree. It would make designing Slice boards much less hazardous, especially in situations where the design uses the SPI flash after booting.I still think it would be nice to flag the afflicted pins in the tables with a note to read the XS1-L16 boot section.
-
- Member++
- Posts: 27
- Joined: Thu Apr 15, 2010 4:52 pm
TSC,
I have followed your advice, but the A and D ports are still being held down by the outputs of the MUX chip. This is the active content of my Makefile:
TARGET = XK-SK-L2
USED_MODULES = module_slicekit_support
XCC_FLAGS_Debug = -g -O0 -Wcodes -Xmapper -Wcodes
XCC_FLAGS_Release = -g -O3 -Wcodes -Xmapper -Wcodes
VERBOSE = 0
XMOS_MAKE_PATH ?= ../..
ifneq ($(wildcard $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common),)
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
else
include ../module_xcommon/build/Makefile.common
endif
I have attached all of the (simple) code. When I run xmake I see:
Creating dependencies for toggle_ports.xc
Creating dependencies for main.xc
Using modules: module_slicekit_support
Compiling main.xc
Compiling toggle_ports.xc
Creating app_Brian_Gordon.xe
Build Complete
Done
Any idea what I might be missing?
Regards,
Robert Jarnot
I have followed your advice, but the A and D ports are still being held down by the outputs of the MUX chip. This is the active content of my Makefile:
TARGET = XK-SK-L2
USED_MODULES = module_slicekit_support
XCC_FLAGS_Debug = -g -O0 -Wcodes -Xmapper -Wcodes
XCC_FLAGS_Release = -g -O3 -Wcodes -Xmapper -Wcodes
VERBOSE = 0
XMOS_MAKE_PATH ?= ../..
ifneq ($(wildcard $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common),)
include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common
else
include ../module_xcommon/build/Makefile.common
endif
I have attached all of the (simple) code. When I run xmake I see:
Creating dependencies for toggle_ports.xc
Creating dependencies for main.xc
Using modules: module_slicekit_support
Compiling main.xc
Compiling toggle_ports.xc
Creating app_Brian_Gordon.xe
Build Complete
Done
Any idea what I might be missing?
Regards,
Robert Jarnot
You do not have the required permissions to view the files attached to this post.
-
- Experienced Member
- Posts: 111
- Joined: Sun Mar 06, 2011 11:39 pm
From module_slicekit_support:
to
So in your makefile, changeIf this module is used when the application target is not SLICEKIT-L2 or SLICEKIT-L16 then this module will do nothing.
Code: Select all
TARGET = XK-SK-L2
Code: Select all
TARGET = SLICEKIT-L16
-
- Member++
- Posts: 27
- Joined: Thu Apr 15, 2010 4:52 pm
Oops. That was a silly error. I have changed the Makefile and recompiled the project, but the A and D ports are still being held down by the MUX chip. I get the same result when using SLICEKIT-L2 as the target. The Makefile is now:
and I have tried TARGET = SLICEKIT-L16 too, with the same results.
Code: Select all
TARGET = SLICEKIT-L2
APP_NAME = app_Brian_Gordon
USED_MODULES = module_slicekit_support
XCC_FLAGS_Debug = -g -O0 -Wcodes -Xmapper -Wcodes
XCC_FLAGS_Release = -g -O3 -Wcodes -Xmapper -Wcodes
VERBOSE = 0
-
- Experienced Member
- Posts: 111
- Joined: Sun Mar 06, 2011 11:39 pm
Hmm, I thought that would have done the trick.
Try calling the below function before any other code. It should do what module_slicekit_support is supposed to do.
Try calling the below function before any other code. It should do what module_slicekit_support is supposed to do.
Code: Select all
on tile[0]: out port p8d = XS1_PORT_8D; //Port controlling mux for SPI vs IO for X0D0 (P1A0), X0D1 (P1B0), X0D10 (P1C0), X0D11 (P1D0)
/*
* Switches muxed one-bit ports on tile 0 from SPI flash to connectors for general use.
* Ports controlled: X0D0 (P1A0) , X0D1 (P1B0), X0D10 (P1C0) ,X0D11 (P1D0)
*/
void enableMuxedPorts(){
p8d <: 0b10000000; //Send one to DFF.
sync(p8d);
p8d <: 0b11000000; //Latch one into DFF to disable SPI flash and enable ports.
sync(p8d);
}
-
- XCore Legend
- Posts: 1274
- Joined: Thu Dec 10, 2009 10:20 pm
There was an Advisory with the first version of the SliceKit, not sure if it is relevant in this case but worth checking.
regards
Al
regards
Al
-
- Member++
- Posts: 27
- Joined: Thu Apr 15, 2010 4:52 pm
Folknology, thanks for the link, but the advisory was not for this particular issue. I looked at the schematics, and it seems that U6 has OE_N hardwired low. This means that X0D0_EXT and X0D11_EXT can be used as outputs if pin 1 of U6 (S) is held low. I do not see how either of these pins can be used as inputs from the TRIANGLE slot. This does not explain why the advice given earlier in this thread does not enable me to use X0D0_EXT and X0D11_EXT as outputs however. I still am of the opinion that the board documentation is not completely correct. I would like to thank everyone who has posted to this thread.