Today I reviewed the SPI mode. Big embarrassing bug! This was the first mode I added to the rev1 PCB, which had a completely different pinout. The library had not been updated since then -or- the updated code got lost in the shuffle/never pushed and merged. Easy fix, but embarrassing none the less.
REV1 alternated the buffer control pins for easy routing:
BIO0-IO | BIO0-Direction | BIO1-IO | BIO1-Direction | etc
While the routing was nice, when I implemented the buffered I2C mode in PIO it was clear we had a problem. The PIO doesn’t allow arbitrary pin assignment: for many things you set the first pin number (such as data out), and the other functions (such as clock, data in, etc) follow on consecutive pins. Thus we ended up with something like this:
BIO0…7-Direction | BIO0…7-IO
Please be sure to download the latest auto builds, I’ll be clearing out the dust from development all week: