Universal Programmer

As teased on social media, @smdprutser built hardware and added a new up command in SPI mode.

I’m trying to get a handle on all the features, leaving useful documentation here.

Command actions:

  • test (test programmer pins/IO expanders)
  • vtest (test voltage)
  • til305 (the LED demo from social media)
  • dram (supporting 4164, 41256)
  • logic (test patterns to verify 14/16/20/24/28/40 40xx and 74xx logic chips)
  • buffer (load a file into the buffer for programming, with 128K limitation)
  • eeprom (read/write/erase/id various 27xx type EEPROMs, high voltage types)

Links:

2 Likes

Hardware notes:

I would put a 4.7v zener on the VPP feedback to bus pirate and ensure the resistors are scaled in a way the feedback should always be less than 4.3 volts. See for example the circuit of the DDR4 breakout.

The current device hardware is 32 pins, so 40 pin stuff is out of the question? Adding a 3rd IO expander would be able to do all 40 pins, plus one 8 bit port left over for controlling stuff on the board (VPP, VCC). That would free two pins to set the VPP/VCC via PWM margining.

32 bit is the sweet spot as the mcu is also 32 bits, so every operation is quite easy to do with standard c operations. adding more pins require more fiddeling.

Also the overhead is quite high to address the io expanders (a 32pin read write is 16 bytes on the SPI bus. 40 (or 48) pin would add 8 writes op the SPI bus. Speed will drop quite a bit.

Will add the zener later on. good catch.

2 Likes

Ah sure, good point about the extra 16 bits of write.

SPI DACs could be used to margin the VPP/VCC. For example the MCP49x, but then it needs an additional CS pin we don’t have.

Could gain two pins by also adding SPI ADCs and remove VCCH and VPPH, then replace with CS pins for ADC and DAC… but that’s getting way out there.

they are bytes no bits :face_blowing_a_kiss: But still significant difference.

Love to develop my own silicon to minimize the overhead..

1 Like

Could use a USB power delivery trigger to provide a PPS voltage from a USB plug. Still needs 2 pins and you only get one voltage.

1 Like

Seems like there’s some new additions:

  • spirom
  • display (dl1414, til305)
  • ram (4164, 41256, 6264, 62256, 621024)
1 Like

Since we have the names of the logic ICs in a nice struct we can print the available devices when the type is unknown. Not pretty yet, that needs a bot more work. Maybe tabs?

Added some basic help. It doesn’t cover a fraction of the sub-actions, but it helps show some of the available features.

1 Like

Since we have the names of the logic ICs in a nice struct we can print the available devices when the type is unknown. Not pretty yet, that needs a bot more work. Maybe tabs?

Maybe split them up by CMOS vs TTL first, then group them by function (logic gate, counter etc.) similar to the category on this list? This may be more useful than grouping by pin count only?

1 Like

Thx @smdprutser & @ian Being able to buy a handful of different chips from AliExpress and learn electronics and hardware hacking at low cost with that programmer sounds like a great idea to me. I use the aux cables in parallel a lot in the BPV6 trainings, we’re hacking with commands, and at the same time we watch on the logic analyzer what that command is doing underneath. It’s super educational.

Also, since it has so many free physical slots, I can make auxiliary boards that sit on top of the ZIF for lots of things. I love the UP idea.

1 Like

It is an amazing project from @smdprutser!

Thanks @dreg ! we are expecting to get the ‘almost’ final hardware next week and move from there.

feel free to share your ideas for adapter boards. ‘UP’ can provide 32 (flexible) IO’s with flexible Vio (iirc 1.8v upto 5v) and multiple (other) supplyvoltages.

1 Like

@tayken you are still around and still got your old avatar! Sup…?

1 Like

One of the most useful things about this kind of ZIF-boards is that you can also make an adapter with a custom TH+IDCx-board (for polarity), and then use a Pomona-style clip or some custom pogo-thing-setup to probe external PCBs and do things there, both for hardware hacking and for my own PCBs.

1 Like