After playing with a PIC18F2550 on a K8055 board for several months now, I finally ordered, assembled and (of course) modified a K8055N as well. A few initial comments about that:
[ul]
[li]I have learned a lot about USB since I started working on this. And that is an understatement.[/li]
[li]The original name for the Open Source Firmware was probably very confusing. I hope calling it “Open8055” from now on will be better.[/li]
[li]The K8055N kit is made in the same high quality kit standard as the K8055 was done. It just worked as advertised after assembly. No surprise there. Two thumbs up for Velleman from here.[/li]
[li]Although their optical appearance is very similar, the K8055N has a few differences to the K8055. Nothing that can’t be dealt with in #ifdef/#else/#endif sections if we are talking about the basic K8055(N) functionality. [/li]
[li]The PIC18F24J50, used on the K8055N, is more different to a PIC18F2550 than I initially thought. It has no EEPROM, it uses different registers to configure ADC and other things, some IO pins are shared differently … oh well, we’ll figure the rest out as we go.[/li]
[li]I decided to start over from scratch, so forget anything you read about the K8055 Open Source Project so far.[/li][/ul]
A new approach.
As said, things are to be called Open8055 from now on.
I have started a new software tree from scratch and am incorporating features from the old project bit by bit. What I have so far:
[ul]
[li]A boot loader for the K8055 board converted to PIC18F2550. The application (Open8055 Firmware) is loaded at 0x1200. The boot loader activates if sk5+sk6 are set for card address 3.[/li]
[li]A boot loader for the K8055N board with a PIC18F24J50 (as shipped). The application (Open8055 Firmware) is loaded at 0x1400. The boot loader activates if sk5+sk6 are set for card address 3. This boot loader can probably be modified to load the Firmware at 0x1200.[/li]
[li]A rudimentary Open8055 Firmware that can be compiled for both PICs and loaded with the above boot loaders. It identifies as idProduct 0x55F0…0x55F2 (card address 0, 1 or 2) according to the sk5, sk6 configuration. The firmware is blinking output 8 once per second and is reflecting the 5 input ports on the digital output ports 1…5, so I know that the Timer3 code and digital I/O is working. Well, it also (and most importantly) confirms that the boot loaders as well as the firmware code itself are working PIC and board independent to this point.[/li]
[li]The firmware is already using the low priority interrupt vector for USB communication, so that’s out of the way too.[/li][/ul]
What’s next?
I need input for the Open8055.dll API. I didn’t even start writing that code yet. So you are scribbling on a blank white-board for that one.
Any comments are welcome.
Regards,
Jan