46
Messages
This section allows you to view all Messages made by this member. Note that you can only see Messages made in areas you currently have access to.
Messages - andersm
47
Project development, ideas, and suggestions / Re: USB Isochrnous Transfer Mode
48
Project development, ideas, and suggestions / Re: USB Isochrnous Transfer Mode
Every OS I know of supports opening audio devices at their native resolution and sample depth, it's just more APIs you have to learn.
49
Project development, ideas, and suggestions / Re: USB Isochrnous Transfer Mode
Next, if your bandwidth requirements are small enough, it'll be easier to make an interrupt transfer based HID device. Interrupt transfers don't guarantee that the polling rate set in the descriptor will actually be used, but in my experience it will as long as there's no other bottlenecks in the system.
If you need more bandwidth than interrupt transfers allow, making eg. a class-compliant audio device removes the need for host drivers. However, getting all the details right can be tricky, especially as different OSes interpret the specifications slightly differently. The problem will then be to read out the raw data without the OS audio subsystem performing sample rate conversions or anything else. Also keep in mind that iso transfers don't support retries, so if there's an error the data is lost forever.
50
Bus Pirate Support / Re: STM32 F103C8T6 Programming?
51
Project development, ideas, and suggestions / Re: Advice on how to work with Atheros AR7240 CPU + AR9331 C
52
Project development, ideas, and suggestions / Re: Alternative to Raspberry Pi?
53
Project development, ideas, and suggestions / Re: Alternative to Raspberry Pi?
There's been tons of those Android HDMI dongles released lately. Many use the same Allwinner Soc, but some are using Cortex-A9s or Cortex-A5s. There's even a MIPS-based one coming soon. A few examples:
http://liliputing.com/2012/06/oval-elep ... linux.html
http://liliputing.com/2012/06/kimdecent ... d-4-0.html
http://liliputing.com/2012/06/geniatech ... ex-a9.html
http://liliputing.com/2012/06/cx-01-53- ... stick.html
http://liliputing.com/2012/07/equiso-sm ... stick.html
http://liliputing.com/2012/07/ippea-tv- ... stick.html
If you want something more complete, there's devices like the Mele A1000 or the Gooseberry board.
54
General discussion / Re: Allwinner.....
I suppose we're lucky to actually get the Linux source code for the Allwinner chips, so there's no massive-scale GPL violations going on as is usually the case (though how many of those cheap tablets/HDMI dongles/whatever actually come with the sources or the necessary notifications?)
55
Project development, ideas, and suggestions / Re: Alternative to Raspberry Pi?
56
General discussion / Re: Allwinner.....
57
Project development, ideas, and suggestions / Re: Alternative to Raspberry Pi?
58
Bus Pirate Support / Re: Should the BP vX understand USB?
The OpenVizsla was successfully funded, but they're still working on it. They seem to be using an XMOS+FPGA combo for the capture engine.
It still costs a bit of cash and is limited to full speed (12Mbit), but the Beagle USB 12 is quite nice and is supported under Windows, Linux and OS X. The Packet-Master USB12 is in the same price- and feature-class, but only supports Windows.
59
Bus Pirate Support / Re: Problems with I2C binary mode write-read
Code: [Select]
int bp_bin_i2c_write_read_bulk(BP *bp, const unsigned char *write_buf, size_t write_count,...and it is called like this:
unsigned char *read_buf, size_t read_count)
{
__debug__("WRITE %u, READ %un", write_count, read_count);
_bp_check_state(bp, BP_STATE_BIN_I2C);
unsigned char wbuf[5] = { BP_BIN_I2C_BULK_RW, write_count >> 8 & 0xFF, write_count & 0xFF,
read_count >> 8 & 0xFF, read_count & 0xFF };
if (bp_write(bp, wbuf, 5) != BP_SUCCESS)
return BP_FAILURE;
if (write_count > 0 && bp_write(bp, write_buf, write_count) != BP_SUCCESS)
return BP_FAILURE;
if (bp_read(bp, wbuf, 1) != BP_SUCCESS)
return BP_FAILURE;
if (wbuf[0] == 0)
return BP_FAILURE;
if (read_count > 0 && bp_read(bp, read_buf, read_count) != BP_SUCCESS)
return BP_FAILURE;
return BP_SUCCESS;
}
Code: [Select]
const unsigned char wbuf[1] = { (I2C1_ADDRESS << 1) | 1 };
if (bp_bin_i2c_write_read_bulk(bp, wbuf, 1, (unsigned char*)&packet, sizeof(packet)) != BP_SUCCESS)
{
printf("Error reading data packet.n");
return BP_FAILURE;
}
return BP_SUCCESS;
The bp_write()/bp_read() calls work fine when reading bytes manually, so I believe they work as advertised.
60
Bus Pirate Support / Problems with I2C binary mode write-read
Using a logic analyzer I can see that the device address is written and acknowledged, but when reading the Bus Pirate never ACKs any of the incoming bytes. I've tested with a BP3 and a BP4 (both running firmware 6.1), using my own code based on libusbpirate and by entering the commands manually into Hercules. Any suggestions will be greatly appreciated (even a "works for me"), as I've run out of ideas.