Hi,
I'm trying to implement a code to communicate with a RFID MFRC522 sensor
via SPI, but I'm having some issues. The board model is exactly like this
one *http://aura-comms.com/media/catalog/product/r/f/rfid-rc522-pinout.png*
<http://aura-comms.com/media/catalog/product/r/f/rfid-rc522-pinout.png>,
The reason I chose this model, it's because of it's popularity and
affordability, but I couldn't find any implementation of it for IOIO, so I
decided to port a code from Arduino to IOIO.
There are several Arduino implementations, but, for the sake of simplicity,
I chose the simplest one, in order to test the communication first. When I
try to communicate with the board, IOIO always returns the following
message:
[D/IOIOConnectionRegistry] Successfully added bootstrap class:
ioio.lib.pc.SerialPortIOIOConnectionBootstrap
[D/SerialPortIOIOConnectionBootstrap] Adding serial port
/dev/tty.usbmodemfd121
[D/IOIOImpl] Waiting for IOIO connection
[V/IOIOImpl] Waiting for underlying connection
[V/IOIOImpl] Waiting for handshake
[I/IncomingState] IOIO Connection established. Hardware ID: SPRK0020
Bootloader ID: IOIO0400 Firmware ID: IOIO0500
[V/IOIOImpl] Querying for required interface ID
[V/IOIOImpl] Required interface ID is supported
[I/IOIOImpl] IOIO connection established
[E/IOIOProtocol] Protocol error:
ioio.lib.impl.IOIOProtocol$ProtocolError:
java.lang.ArrayIndexOutOfBoundsException
at ioio.lib.impl.IOIOProtocol$IncomingThread.run(IOIOProtocol.java:941)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at ioio.lib.impl.SpiMasterImpl.dataReceived(SpiMasterImpl.java:156)
at
ioio.lib.impl.IncomingState$DataModuleState.dataReceived(IncomingState.java:120)
at ioio.lib.impl.IncomingState.handleSpiData(IncomingState.java:412)
at ioio.lib.impl.IOIOProtocol$IncomingThread.run(IOIOProtocol.java:807)
[D/IOIOImpl] Physical disconnect.
Doing some basic debug, I found that apparently the board is returning more
bytes than expected.
Here are my ports configuration: 10 -> SDA, 13 -> SCK, 11 -> MOSI, 12 ->
MISO, 5 -> RST.
Here is the Arduino code (which works perfectly):
*http://pastebin.com/BpVUUCwa* <http://pastebin.com/BpVUUCwa>
Here is my ported IOIO code: *http://pastebin.com/5AJKZXnR*
<http://pastebin.com/5AJKZXnR>
I tried several parameter variarions of openSpiMaster, but the results were
always the same. I also tried the MISO-MOSI loopback and it worked fine.
Spite of having a good Java knowledge, I'm not an expert on peripheral
communication, so I might be screwing some bitwise operation.
Could someone, please, help me to solve this or point me to a direction
where I could find some solution.
Thanks in advance,
Renato
--
You received this message because you are subscribed to the Google Groups
"ioio-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.