Board configuration and cache driver for the new Propeller Platform USB Board
David Betz
Posts: 14,516
I've attached a board configuration file for Martin Hodge's new Propeller Platform USB board with the SPI flash footprint. This uses the generic SPI flash cache driver and is the first public use of the propeller-load feature of board subtypes. This configuration file will work with PP-USB boards with the SPI flash and SD card configured on P0-P4 or configured on P16-P20.
Warning: This is completely untested since I don't have one of these boards.
To use this board configuration file with the devices on P0-P4:
Warning: This is completely untested since I don't have one of these boards.
To use this board configuration file with the devices on P0-P4:
propeller-load -b pp-usb-2To use this board configuration file with the devices on P16-P20:
propeller-load -b pp-usb-2:alternateI'm not sure if the subtype can be specified in SimpleIDE. Maybe Steve will comment on that.
cfg
768B
Comments
Does this mean the PP-USB-2 is close to becoming a reality??? Soon, we'll be able to get our grubby little bits on it??
When I add that file to C:\propgcc\propeller-load\ the following options appear in SIDE's "Board Type" drop-down:
pp-usb-2
pp-usb-2:DEFAULT
pp-usb-2:ALTERNATE
pp-usb-2-SDLOAD
pp-usb-2-SDXMMC
I'm assuming that the "DEFAULT" one is the one I want.
What I'm seeing in the cfg is
Are the "cache-param" entries what controls comms to the flash chip? If so, shouldn't cache-param1 need to be 0x02000121 ? (the miso and sck parms seem to be swapped)
Should I be using an SD card at the same time?
Which memory model(s) should I test with?
I'm trying to get the hello.c that opens up with SIDE to work.
But with regard to the cache-param1. I understand the difference between the data in and out, but according to the comment on that line ii is set to pin 1, which is the CLK line, and cc is set to pin 0, which is the do. The problem (if I'm understanding it correctly) is miso and sck are swapped, not miso and mosi.
I think you're right. The two are reversed. I told you it was untested! :-)
Apparently the feature has been in the loader for some time, but I missed that somehow.
SimpleIDE Version 0-6-11+ should work fine if I understood the feature definition correctly.
--Steve
Have you had any luck getting PropGCC working with your new board? Need any help?
Thanks,
David
At the hardware level, I'm not able to get any activity from any pin on my scope using the cache driver, regardless of what configuration I use.
In SIDE I used:
Board Type: PPUSB-2
Memory Model: XMMC
Is this the correct testing method?
Also, this chip is capable of quad SPI. Do these drivers handle that? It'd be nice to measure any speed difference too.
There is an sqi_flash_cache.spin driver that should be able to run your chip in quadspi mode. You configure it in a similar manner to the way the single spi chip is configured. One restriction though is that the four data pins have to be adjacent.
D'oh!
Shouldn't SIDE retain the original source file with the same name as the project if it already exists?
EDIT: OK, I found the problem. I created the project in a different path than demos/ebasic. I then tried to create a project in the correct directory, but it appears that SIDE will only create projects in new directories, so I just copied the ebasic.side file from the other path to resolve this.
It would be nice if SIDE could create a project in an existing directory and use the existing source file with the same name as the project if it exists.
Hi Dave.
I'll look into not letting an original file be over-written.
A solution for using an existing main file is available.
The "Set Project to Current File" button looks like a COG. It can be used with an existing main file.
You'll have to choose your own board type of course.
The ebasic2 in the repository doesn't like line numbers and I don't get it, so I'm avoiding it for now.
addit:
I've added David's syntax manual for ebasic. This particular version does not support NEW, LOAD, and SAVE, but everything else should work.
Here is some basic code that I've been using for a while to see if performance is reasonable. The fastest XMMC solutions run it very quickly.
This is caused by gdbstub not having expr.o in it's object list. We are having some other issues with the build right now.
You can sit tight until we resolve the issues, or stay on revision 1395 with the gdbstub build step removed.
Thanks,
--Steve
IO0 - IO3 = 22 - 25
SCK = 26
/CS = 27