What steps will reproduce the problem?
1. SPI transfer with + 1024 bytes
What is the expected output? What do you see instead?
Its blocking... I expect a result :-)
What version of the product are you using? On what operating system?
libmpsse-1.2-1
Linux lars-pc 3.5.0-22-generic #34-Ubuntu SMP Tue Jan 8 21:47:00 UTC 2013
x86_64 x86_64 x86_64 GNU/Linux
Please provide any additional information below.
There is a bug inside the Transfer function.
Also I had to decrease the SPI_TRANSFER_SIZE.
diff --git a/spi/mpsse.c b/spi/mpsse.c
index 8347b0b..dca3cee 100644
@@ -767,14 +767,14 @@ char *Transfer(struct mpsse_context *mpsse, char *data,
int size)
memset(buf, 0, size);
/* When sending and recieving, FTDI chips don't seem to like large data blocks. Limit the size of each block to SPI_TRANSFER_SIZE */
- rxsize = size - n;
- if(rxsize > SPI_TRANSFER_SIZE)
- {
- rxsize = SPI_TRANSFER_SIZE;
- }
while(n < size)
{
+ rxsize = size - n;
+ if(rxsize > SPI_TRANSFER_SIZE)
+ {
+ rxsize = SPI_TRANSFER_SIZE;
+ }
txdata = build_block_buffer(mpsse, mpsse->txrx, (unsigned char *) (data + n), rxsize, &data_size);
if(txdata)
{
diff --git a/spi/mpsse.h b/spi/mpsse.h
index cc6da43..1c8234f 100644
@@ -12,7 +12,7 @@
#define CHUNK_SIZE 65535
#define SPI_RW_SIZE (63 * 1024)
-#define SPI_TRANSFER_SIZE 1024
+#define SPI_TRANSFER_SIZE 512
#define I2C_TRANSFER_SIZE 64
#define LATENCY_MS 2
Original issue reported on code.google.com by webla...@googlemail.com on 2 Feb 2013 at 10:34
Original issue reported on code.google.com by
webla...@googlemail.com
on 2 Feb 2013 at 10:34