Wednesday, April 13, 2011

Preparing for Alpha 4

Alpha 4 is on the forge now. I decided to release it as soon as possible, due to eventual problems with programmer (which was not updated on last images, might require you to build your own).

Also a bug related to how compiler handles 64-bit values was fixed: again, it might break some computations, like baud rates, delays, and others.

I don't think win32 port will be ready by then, but other features will make it. The most prominent one is a new interrupt controller, and two external interrupt lines you can use (edge-triggered, high or low level, using PPS). Auto-cleanup of interrupt is also working for the latter, you still need to clear interrupt bits for internal devices for now.

Alvaro

Friday, April 8, 2011

Alpha 3 is out

I'm proud to announce Alpha 3 release of ZPUino.

As usual, you can find it in http://www.alvie.com/zpuino/

Here are the release notes:

Programmer/bootloader

* Programmer now uses a dual-speed transfer. It starts at 115200 baud for identification, then ramps up speed if required.
* Some bugfixes and refactoring.
* Preliminary direct memory upload. Still untested.

Core

* New main ZPU core: ZPU Premium. You should expect almost a 3x performance increase, when compared with old core.
* New PPS implementation. Things should have become clearer now. See more information on PPS page
* IO selection is now clearer, so to ease adding new devices. See Implementing or porting IO devices document for more information
* Fixed RAM indexing, which caused synthesis warnings

Boards

* Added per-board SPI clock dividers for bootloader

Spartan 3E Evaluation Board

* First prebuilt image for this board
* Design was not being properly built, fixed that.
* Changed clock speed to 96MHz, instead of 100MHz. This helps meeting timing and give accurate baud rate dividers
* Fixed GPIO mappings
* Added proper IO pads

Documentation

* Added IO device tutorial: Implementing or porting IO devices
* Added Advanced IO: Advanced IO
* Added PPS documentation for users: Peripheral Pin Select

Known Issues

* There is still no Win32 port. Some dificculties arose so I'm delaying to next release. But good news is that compiler is now built, but other parts of the toolchain still need some tweaking, as well as the IDE set up.
* Resetting the serial port sometimes fails when using a real RS232 cable. This is probably due to ringing - I'll address this on next release (this only affects S3E evaluation board, but since there's a manual reset button you can get it to work)
* S3E P&R is having difficulties due to both DCM used, but it does meet timing. However I'll address that on next release, to speed up the implementation process.

Wednesday, March 30, 2011

New bootloader, Win32 support

Although there was a preliminary programmer for win32, I only recently realised that win32 does not actually support natively serial speeds above 256Kbaud. This stroke me as very odd, we're on the 21th century now, with advent of serial links not rs232-based (like USB serial controllers) having speeds of 1Mbaud, 3Mbaud or even higher is very common, it's weird why Microsoft did not expand its baudrate selection to higher speeds.

Anyway.

So to support win32, we've to get that speed down, so I decided on a two-steps approach. We can initially talk to ZPUino at a reasonably lower speed (115200), and then depending on OS and eventually board features rise this speed to something more acceptable (which would be 1/3Mbaud on Unices, 256Kbaud on Windows). This requires changes to bootloader and to programmer which I am ultimating as I write.

Also for win32 support we need the compilers. Those are building now, if everything goes well I hope full win32 support will be on next Alpha version (which, by the way, will be due this weekend). The programmer already has a fix for the insane command line processing in mingw32 (or is it msvc?), so everything seems to be on rails.

Alvie

Wednesday, March 2, 2011

Tuesday, February 15, 2011

Delays

As you all noticed, Alpha 2 is a bit delayed. This is due to several reasons:

1) I'm integrating a new UART, because current one performs not very well at high bit rates.
2) ADC direct interface took some time, it's stabilizing now.
3) Some more unplanned changes are coming in, like CRC queuing.
4) A faster ZPUino is also on the forge. Some operations are important, and I'd like to merge them in for alpha 2.
5) Documentation is laggin behind because I don't have much spare time lately.

So, stay tuned.
Alvie

Wednesday, January 19, 2011

Website down

Website http://www.alvie.com/zpuino is currently down due to hardware problems in my hosting company, Awardspace.

I hope they'll fix problems quickly.

Alvie