Previous journal: | Next journal: |
---|---|
0148-2023-09-28.md | 0150-2023-10-02.md |
- I want to make raybox-zero able to read data from a memory of some kind.
- SPI seems most likely at the moment, due to low pin count available on TT05.
- SPI Flash ROM is pretty standard and cheap these days. I've ordered some on eBay (W25Q32FVSIG, W25Q64BVAIG) and order some on DigiKey (W25Q40CLSNIG-ND, W25Q16JVSSIQ-ND, AT25EU0011A-SSHN-TCT-ND, GD25Q20CTIGR, W25Q32JVSFIQ).
- I've also desoldered a BergMicro 25Q80ASSIG (8Mbit) from an ESP-01, and put it on a breakout board. This device should hopefully be able to do at least 25MHz transfers, maybe 60~120MHz, and possibly much higher with DSPI or QSPI.
- I'm going to try using my Bus Pirate v3.5 to read it, then program it.
My BP had been specially flashed with JTAG (Bus-Blaster-like) firmware, because it was hooked up to the JTAG port of my XC9572XL test board. I might need to reflash it.
- When I plug it into my Win 11 laptop it shows up in Device Manager as an FT232 device, with a warning symbol, but after going to Properties I was able to 'update driver' and then it shows up as 'USB Serial Port (COM3)'.
- Next step: What serial UI do we get from the BP? I'll install a terminal program, or do USB pass-thru to a Linux VM.
- I installed PuTTY and as Dangerous Prototypes advises, the JTAG firmware doesn't have a serial terminal, so it doesn't respond meaningfully.
- In terms of putting on normal BP firmware, I'm not clear on the difference between bootloader versions, BP versions,a nd firmware versions.
- Oh, according to 0026, I started with
Firmware v6.1 r1676 Bootloader v4.4
. The official firmware downloads doco says that firmware 6.1 is the official firmware, though there's newer community-maintained stuff here on GitHub.
- Download BusPirate.package.v6.1.zip (cached here) and extract it.
- Unplug the BP and short pins PGC and PGD of the ICSP header, and plug in the USB cable.
- 'MODE' LED will hopefully be lit, indicating it's in the bootloader. I think you need to keep the pins shorted for the duration of this exercise.
- Go into
BPv3-firmware
- Run
BusPirate-firmware\ds30 Loader GUI.exe
- Let it download and install .NET if required
- Make sure your COM port is selected.
- For
Hex-file
, locateBPv3-frimware-v6.1.hex
(sic) - Click the
Download
button. Don't try to interact with the app while it's writing the flash: I found it interrupted it and caused an error. I was able to retry theDownload
button, though, and it succeeded:Initiating download... Searching for bl . Found PIC24FJ64GA002 fw ver. 1.0.2 Waiting for bootloader to be ready...ok Writing flash...ok Download finished Tx 65.2kB / Rx 382 bytes / 12.4s
- Exit the ds30 Loader GUI and unplug the BP's USB.
- Disconnect PGC/PGD, and plug the BP back in.
- Open a terminal program (e.g. PuTTY, and select 'Serial' mode) and try connecting to the BP's COM port.
- Issue the
i
command. NOTE: First time I tried, it didn't respond. Not sure why. I tried again, hit ENTER, then got theHiZ
prompt. Didi
command again and got to display firmware info:HiZ>i Bus Pirate v3.5 Firmware v6.1 r1676 Bootloader v4.4 DEVID:0x0447 REVID:0x3043 (24FJ64GA002 B5) http://dangerousprototypes.com HiZ>
- Bus Pirate JTAG notes (and references to Bus Pirate JTAG XSVF player) are found in 0026, 0027, and 0028.
- Now that we've got an SPI slave implemented in raybox-zero and the FPGA, we could use the Bus Pirate to SPI stuff to it, if for some reason using PicoDeo is unsuitable.
- Could also try BP SPI sniffing on raybox-zero.
- Bus Pirate Community Firmware 7.0 per repo.
- Flashing SPI flash ROM with Bus Pirate
- Possible datasheet for BG25Q80ASSIG (Berg Micro and Eon might be the same?)
- Similar part datasheet
- BP dumping SPI flash