So today I finally got the transceiver for our ADD project working. It’s a trivial little thing; it just sends and receives 32 bits of data at a time over a serial connection, using Manchester encoding. It was relatively tricky to do, though; harder than I expected. Transmission’s easy; receiving not so much, as there’s an element of guess work involved in interpreting the data, and guessing is always horrible to implement in logic.
Once that was working, I added CRC-16 CCITT support. It’s massive overkill for a four-byte packet, which I find amusing, but it is a useful thing to have implemented, and will hopefully garner a bit of appreciation come marking time. The CRC stuff gave me some grief; trying to mesh in a serial CRC generator and verifier with the existing code was a bit messy. But in the end it came out alright. There’s a few niggling potential issues still, mainly to do with end of transmission and skew, but I’m pretty sure we can bang those out pretty directly.
‘course, since ADD’s due next week, I suspect I’ll be spending a fair bit of time in the labs ’till then. I actually finished at 2pm today, and don’t have anything on until next Wednesday – woo! five day weekend! – except, of course, all this work to do. 🙁
Still, I like this ADD project, and it’s one of the last few things due this semester. Exams are only a few weeks away, and then it’s break time; four weeks, more or less, I think. I’m looking forward to it.