alvieboy Posted September 24, 2010 Report Share Posted September 24, 2010 Hi, ZPUino, being a SoC, includes some "classical" IO devices, such as UART, SPI and timers. It's a fairly small design however, using (as I write) only 18% of one S3E500. So there is plenty of space to implement other device handlers in hardware. One I'm already planning to add is a full USB 1.1 or 2.0 controller core (you'll only need proper transceivers). What hardware devices would you like to see on this SoC ? Right now we have: 1 UART, 2 SPI, 1 SigmaDelta, 2 16-bit timers (PWM-capable), 1 CRC16, plus 32-bit GPIO and interrupt controller. GPIO pins can have special functions, like in most SoC. That's the case for most IO pins on ZPUino. Álvaro Link to comment Share on other sites More sharing options...
Jack Gassett Posted September 24, 2010 Report Share Posted September 24, 2010 It looks like you have all the basic cores covered! I just took a look at the ATmega328 datasheet to see if there was anything we were missing and the only thing I see is I2C. One neat thing that we can do that will greatly simplify adding support and will end up with better compatibility for the ZPUino is to take the peripherals from a AVR168 project that I have and implement them in the ZPUino. That way we can have a USART that behaves the exact same way that the Arduino expects it to behave. Or Timers that have the same registers and bits etc, we can just change the memory location if we need to. We can even make the ports act the same with the familiar DDRx, PINx, and PORTx designations. It would all be under control of the ZPUino with the benefits of a 32 bit processor and the 100Mhz speed but the peripherals would have maximum compatibility! And best of all we already have high quality VHDL modules for all of this functionality, in the end it will make adding support for the ZPUino into the Arduino codebase even easier. So back to the original topic, I'm stoked about the USB controller. I've been meaning to make a USB Wing with just the USB transceivers for some time now. It will be really awesome if we can make it a USB Host. I already have an Ethernet Wing with an RMII transceiver, but the problem is I have not seen an Open Source core that supports RMII yet, only the larger MII interface. We also have a VGA Wing so it would be neat to make or adapt a VGA core. We also have a Stepper Controller Wing and we already have a custom core that could be integrated. I'm very excited about this ZPUino project! Jack. Link to comment Share on other sites More sharing options...
alvieboy Posted September 28, 2010 Author Report Share Posted September 28, 2010 I2C should be quite straightforward to implement. Mapping registers directly should not be a good idea, because one is a 8-bit micro, the other one a 32-bit You'd lose some interesting stuff like 32-bit SPI reads. However software can be of great help here, and we can virtually map those familiar registers in the real ones. USB host (at least for USB1.1) should be very easy to implement, not quite sure about its size though. I'll take a look at Reduced MII to see what we can do about that. VGA might be harder, because we have little RAM already (are you planning any 8 or 16 bit external SRAM Wing?) Right now I'm improving bootloader and C startup routines (make them smaller and more efficient) so that we can compile C++ and use out-of-the-box. Might need some changes to toolchain code, not yet sure, but those should not be hard to do either. Álvaro Link to comment Share on other sites More sharing options...
Jack Gassett Posted September 28, 2010 Report Share Posted September 28, 2010 USB: I've read that USB cores can get pretty big, if a USB host core turns out to take to much resources then we can always make a Wing with a physical USB Host chip. It is worth the effort to be able to add $5 Wifi dongles. The VGA Wing I currently have is only capable of 8 colors, so the video memory that would be required is pretty small. A SRAM Wing poses some challenges but I do have a design that is nearing completion that is a Papilio One with SRAM. Jack. Link to comment Share on other sites More sharing options...
alvieboy Posted October 4, 2010 Author Report Share Posted October 4, 2010 Right now, with a few HW additions, ZPUino uses 20% of an S3E500, so there should be enough room for USB host/device (if they don't require too much blockram). SRAM would be wonderful, even if we have to deploy some sort of cache to speed up things a bit. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.