Hello,

I have few questions on what I want to do.
<https://lh4.googleusercontent.com/-ez6O-wfZRHM/U3DaTJ1_XzI/AAAAAAAACw8/Io7KgMwfFKA/w890-h503-no/2014-05-12>I
 
am trying to sent information from and android device to the ioio to an 
FPGA board. I am using SPI protocol to send this info to the FPGA. The 
information that needs to be sent is stored in a byte array in the phone 
which is split in smaller arrays (64 bytes are max bytes that can be sent 
in one package(?)) and sent to the ioio. For now I choose a speed of 8MHz. 
I for now created a signal with alternating bits. From reading the 
resulting output (on the MOSI pin) with an oscilloscope I get a signal as 
seen in the picture to the right. This shows me that 8 bytes per approx. 3 
microseconds are sent with each containing 8 bits(which is correct).
 

   - 
*Is everything I assumed/explained/observed so far correct?(e.g. the max 
   package size) *
   - 
*is it possible to invert the MOSI or SS from the Android app code? *
   - *Is there a way to decrease the 3 microseconds per 8bytes?*
   
Altogether what would be more advantageous to us is to have a constant flow 
of bits being sent at >1MHz(so no stop in between from initialization of 
the stream. say if I send 16 bits, I do not want there to be a small space 
of nothing between 2 bytes(8bits)). If above is true then SPI won't be able 
to achieve this. 

   - *Any advice on how to achieve this? Or is it just better to continue 
   with SPI?*

I made a post before about what I am ultimately trying. I want to send a 
picture with the android to the IOIO and make the IOIO sent it on to an 
FPGA board which will drive a custom LED matrix system. The android will 
send bytes with R,G and B values in that order for each pixel and that info 
will be further handled at the FPGA.

The code for sending the bytes through the IOIO is as follows:

> @Override
> public void loop() throws ConnectionLostException {
>  
> byte[] buffer_= buffer; 
> int buffernum = (int) Math.ceil(buffer_.length/8);
>
> byte[] buffer1_= new byte[64];
> byte[] buffer2_= new byte[64];
> for (int i =0;i<buffernum;i++){ 
> System.arraycopy(buffer_, i*64, buffer1_, 0, 64);
> if ((i+1)<buffernum){
> System.arraycopy(buffer_, ++i*64, buffer2_, 0, 64);
> }
> try {
> ioio_.beginBatch();
> Thread.sleep(1);
>
> if ((i+1)<buffernum){
> spi_.writeReadAsync(0,buffer2_, buffer2_.length,
> buffer2_.length, null, 0);
> }
> spi_.writeRead(buffer1_, buffer1_.length,
> buffer1_.length, null, 0);
> ioio_.endBatch();
> } catch (InterruptedException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> }
>
> }
>

-- 
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.

Reply via email to