Friday, May 11, 2012

1.0.1 slightly delayed

Hi,

just to let you know that 1.0.1 release is slightly delayed - It was scheduled for May 13th, but due to a few (non-technical) reasons it's now due on May 15th.

This is what is expected:

  • The multiplier and shifter are now merged together. Smaller implementation.
  • Added a new ZPU instruction, FMUL16, opcode (01h), which performs a fixed-point 16:16 multiplication. Useful for FFT and other math computations.
  • Multiplier is now signed instead of unsigned
  • SPI controller is now able to do 16, 24 and 32-bit transfers
  • UART now has a bit depicting if all transmission has ended. Needed to fix a bug when your sketch changed baudrate and it was still transmitting.
  • Updated UARTSTATUS register index on IDE
  • IDE now reports a better size for sketches, including program and code size.
  • Removed misinclusion of <new> in some headers
  • IDE can now build and include asssembly (.S) files in the sketch folder
  • SPI interface is now directly connected on most boards, so to speed up sampling.
  • Added new board (Papilio One 250 with extra 2Kb RAM). All P1 250 are compatible.
  • SmallFS was updated to use the new SPI multibyte transfer sizes.
  • A new HDL core: a 16:16 fixed point square root IP
As always, expecting your feedback.

Alvie

Thursday, April 12, 2012

New ZPUino cores available

A few new ZPUino cores are now available. These are variants of the main design, and can be found on the "variants" folder of the relevant board. Additionaly you can find there the prebuild bitfiles and some documentation, inside the "release/latest" subfolders.

New cores are:

P1 500 "Apollo" variant:
- Includes an YM2149 audio synthesizer

P1 500 "sid" variant:
- Includes an SID audio synthesizer

P1 250 "Apollo" variant:
- Includes an YM2149 audio synthesizer, and an extra serial port.

Other cores to follow in the next few days.

Alvie

HDL Repository has moved

Due to some recent issues with repo.or.gz, I moved the HDL repository into github.

https://github.com/alvieboy/ZPUino-HDL.

To change your current checkout, do:

git remote add github git://github.com/alvieboy/ZPUino-HDL.git
git fetch github
git branch --set-upstream master remotes/github/master


All should work, I hope.

Alvie

Tuesday, April 10, 2012

ZPUino 1.0 Released

Yes, that is true.

ZPUino 1.0 is now available for you to use and enjoy.

Expect some updates on next few days - release cycles are about to change, we're switching to release early, release often.

As always, direct any questions to zpuino@alvie.com.

All information in the usual place
Enjoy!.

Friday, March 16, 2012

Preparing release 1.0

I think it's time now to wrap up all bits and release a 1.0 version, which hopefully will be before the end of March.

What to expect from this release ? well, basically:
  • The new improved extreme core (things will go faster)
  • Smaller generated code for sketches
  • Upload-to-RAM feature
  • New timer infrastructure (means, PWM on steroids)
  • Easier to tailor to your own needs
  • New VGA interfaces
  • Optional I2C (integration from OpenCores)
  • Faster SmallFS implementation
  • Arduino 1.0 IDE
  • Eventually more memory... this depends on the board itself.
  • Per-board variants (like I2C, VGA)
  • Audio chips!! YM2149, Pokey and SID. Note that due to these "chip" sizes, it might not fit your FPGA.
  • Papilio Plus support (S6LX4 for now)
For the hardcore details:
  • New DMA interface (not controller). It's used for VGA, so it can use regular memory as framebuffer.
  • Better external memory integration. This one is still under test, but might make it.
  • PWM have now 2 comparators (low and high). Also you can add as much PWM as you wish per timer.
  • Decreased serial FIFO: means, more block ram memory available.
  • Other goodies. See official repo branch for more details.
Other stuff is in the forge, but might not make it for this release. I think I've delayed it for too long now. Release early, release often.

As always, feel free to send in your comments to zpuino@alvie.com.

PS: Did I told you I will also publish a ZX-Spectrum VGA compatible output, and that it will be accompanied by a "arduino sketch" Jet Set Willy game engine implementation (not a 100% implementation, but close) ? Yes, it's true. And you can have fun making your own maps, sprites and variants!. I'm just finishing some documentation, so you can go and make it a 100% implementation if you wish.

Alvie

Thursday, January 12, 2012

How complex ?

How complex can a voltmeter be, with ZPUino, my yet-to-be-released SerPro3 software and a Gadget Factory ADC wing ?

Well, judge for yourselves:

This is ZPUino code (29 lines):

#include <SerPro3.h>
#include <SPI.h>
#include <Papilio.h>

SERPRO_ARDUINO_BEGIN();

Papilio::ADC8_Wing myadc;

void setup()
{
Serial.begin(115200);
myadc.begin( Papilio::Wing_A_Low );
}

uint16_t sample(int channel)
{
return myadc.sample(channel);
}

void loop()
{
if (Serial.available())
SerPro::processData(Serial.read());
}

EXPORT_FUNCTION(1,sample);

SERPRO_ARDUINO_END();


And this is PC code (23 lines, Linux):

#include <SerPro/SerPro-glib.h>

SERPRO_GLIB_BEGIN();
IMPORT_FUNCTION(1,sample,uint16_t(int));

void go()
{
while(1) {
printf("Voltage: %.02f\n", ((double)sample(0)*3.3)/255.0 );
usleep(500000);
}
}

int main(int argc,char **argv)
{
SerProGLIB::init(argv[1],B115200);
SerProGLIB::start();
SerProGLIB::waitConnection();

go();
}

SERPRO_GLIB_END();


And this is how it runs, with ADC connected (channel 0) to 1.2V power rail:

$ ~/sketchbook/remote/pc/remote /dev/ttyUSB1
Channel set up OK
Voltage: 1.20
Voltage: 1.20
Voltage: 1.20
Voltage: 1.20
Voltage: 1.20


Not much of a hassle, is it ?

Tuesday, December 13, 2011

Looking for "alpha" testers

I'm currently looking for "alpha" testers for the upcoming 1.0 version, which uses the new Arduino IDE and a new, improved core.

In case you are interested in testing it, please drop me a note. !
Alvie