by i-Bot » Wed Apr 16, 2008 9:37 am
by i-Bot
Wed Apr 16, 2008 9:37 am
The uOLED-96-PROP is certainly challenged on I/O with only really 4 pins available. I only use 1 pin for the AX12 interface, since it is half duplex. However it is possible to have multiple serial buses on the same uOLED.
My carrier board has a 5Volt regulator to drop the 9.6V AX12 supply. It also has an NMOS FET as the voltage translator to/from 3.3V for the serial data.
The AX code is in assembler and would not run off an expander port at 1M bps
If you are looking to a carrier board, it should be small, and have the voltage regulator and the logic translator.
I2C does seem the way to go for other expansion. This would allow available I2C devices like accelerometers, compass, sonar to be used.
For my code, I have been concentrating more on the CM-uOLED code, which is the controller. I diverged from the work at Crustcrawler, though gained some good ideas there. The Crustcrawler code would not work on the uOLED due to the 64MHz clock. I made new code which does work OK at 64M. I also integrated the serial protocol and the checksum into the assembler part. The object just exposes spin methods for the bus commands. I am now looking to read MTN motion files from the SD card and interpet them into bus commands using a COG dedicated to a motion engine.
I have not made much more progress on the AX-uOLED code, which is the peripheral. This has a different interface since it exposes methods to manage an area of Hub RAM similar to the memory map of the AX devices. A seperate COG runs the assembler program which continually monitors the serial bus looking for our ID or the broadcast ID, perfoms commands, and reads/write to the hub RAM. I completed the memory interface, though I had to add I2C and EEPROM assembler routines to use the program EEPROM to save the lower memory segment. The new TX and RX routines in the CM version could also be used in the AX. I am not sure when I will return to this version. I still see no simple way to send data from BCP, except byte by byte, hence my focus on the CM. I already made routines to display 16bit bitmaps on the uOLED from SD card which I use on the RoboNova, but again see no easy way to send filenames from BCP.
The uOLED-96-PROP is certainly challenged on I/O with only really 4 pins available. I only use 1 pin for the AX12 interface, since it is half duplex. However it is possible to have multiple serial buses on the same uOLED.
My carrier board has a 5Volt regulator to drop the 9.6V AX12 supply. It also has an NMOS FET as the voltage translator to/from 3.3V for the serial data.
The AX code is in assembler and would not run off an expander port at 1M bps
If you are looking to a carrier board, it should be small, and have the voltage regulator and the logic translator.
I2C does seem the way to go for other expansion. This would allow available I2C devices like accelerometers, compass, sonar to be used.
For my code, I have been concentrating more on the CM-uOLED code, which is the controller. I diverged from the work at Crustcrawler, though gained some good ideas there. The Crustcrawler code would not work on the uOLED due to the 64MHz clock. I made new code which does work OK at 64M. I also integrated the serial protocol and the checksum into the assembler part. The object just exposes spin methods for the bus commands. I am now looking to read MTN motion files from the SD card and interpet them into bus commands using a COG dedicated to a motion engine.
I have not made much more progress on the AX-uOLED code, which is the peripheral. This has a different interface since it exposes methods to manage an area of Hub RAM similar to the memory map of the AX devices. A seperate COG runs the assembler program which continually monitors the serial bus looking for our ID or the broadcast ID, perfoms commands, and reads/write to the hub RAM. I completed the memory interface, though I had to add I2C and EEPROM assembler routines to use the program EEPROM to save the lower memory segment. The new TX and RX routines in the CM version could also be used in the AX. I am not sure when I will return to this version. I still see no simple way to send data from BCP, except byte by byte, hence my focus on the CM. I already made routines to display 16bit bitmaps on the uOLED from SD card which I use on the RoboNova, but again see no easy way to send filenames from BCP.