Main Site Documentation

Accessing tsc2046 via SPI


#1

Hello,

i wish to use the Vbat pin on the tsc2046 controller on my chipworkx system, however when i attempt to use create my interface, i get a pin not available. i’m guessing that this has to do with the interface already being used by Spot.Touch. is there a workaround or a different method that one should use to read these pins?

my construction code (errors on s = new SPI(batconfig))
the error is


 #### Exception System.Exception - CLR_E_PIN_UNAVAILABLE (1) ####
    #### Message: 
    #### Microsoft.SPOT.Hardware.Port::.ctor [IP: 0000] ####
    #### Microsoft.SPOT.Hardware.OutputPort::.ctor [IP: 0006] ####
    #### Microsoft.SPOT.Hardware.SPI::.ctor [IP: 004d] ####
    #### GUI_Test.Program::Main [IP: 01e7] ####
A first chance exception of type 'System.Exception' occurred in Microsoft.SPOT.Hardware.dll


SPI.Configuration Batconfig = new SPI.Configuration((Cpu.Pin)ChipworkX.Pin.PB22, false, 100, 10, false, false, 10, SPI.SPI_module.SPI1);
SPI s = new SPI(Batconfig);

i got PB22 from the schematic, this could also be the issue.


#2

This is not supported as the chip is used internally with the touch drivers.


#3

is there any way to access the pins from the touch controller (such as disable touch input first…)
or do we need to wait for a new firmware release which will give access to the pins.


#4

I started a new project (one which did not initialise Microsoft.SPOT.TOUCH interface) and was able to access and read the pins.

I take it, without altering the Drivers directly there is no way to change the interaction to allow for reading of the additional pins?


#5

Correct


#6

is this looking to be changed in future, and at present is there a way to dispose/uninitialise the touch interface to allow for access to the pins?


#7

I do not think it will change but you can add a simple ADC using SPI/I2C/onewire which will give your design more flexibility at a very minimal cost.