[email protected] wrote:
On Monday, 17 September 2018 22:36:28 UTC+1, Theo wrote:
Sounds like fun.
Fingers crossed!
The protocol is rather interesting. I think doing it in a CPLD (basic FPGA) would probably be most flexible, but I can understand that's a
place you don't want to go. Also, you need to a device with 5V
capability, which is quite rare nowadays.
I hadn't heard of CPLDs before, although to be fair I didn't know much
about FPGAs until a couple of days ago. I'll do some research into CPLD
test boards. Even if I don't use it for this project, it'll be good to learn.
I've used the Altera MAX-II and some from Lattice (a long time ago). The Altera ones use their FPGA tools, which are a bit unwieldy but OK when you
get into them.
I'd start with a chip that does 5V, and a dev board that has some example projects you can modify. You don't need to know a whole lot of Verilog or
VHDL to write basic logic. It's better if you can run your code in a
simulator first, because then you can more easily see what's going on than trying to probe hardware.
Converting to parallel with shift registers is a really good idea. How
would that work with the data heading back to the Psion? Would I need to keep an eye on the first three bits from the Psion for a data request command, then get the output shift register to send data back?
Something like that. You could clock the input and output shift registers
at the same time and then select one based on the direction. Or you could
have 8 bit in/out shift registers and then implement the remaining 4 bits in discrete logic.
Do you have oscilloscope traces[1]? That's where I'd start. (I wonder if there's a way to work out which end is driving at any given time? For instance, gimp the power supply so the SSD voltage is slightly lower than the other, or something like that?)
I haven't got an oscilloscope, but I've just bought the logic analyser you linked to. Very pleased that Sigrok is open source and runs on Linux.
The only examples of the protocol I have are from the HDK.[1] I'm going to make an adapter so that I can use an SSD from outside the Psion. That
would make it easier for me to use a separate power source for the SSD,
too. Alternatively, could I put something in the middle that would
monitor the signals and separate them? Thinking about it, maybe a CPLD
would do the trick...
One useful thing about CPLDs is you can largely decouple the physical/board design from the logic. You can put down the CPLD on the PCB and then figure out what logic you need later - as long as it still fits within the CPLD.
They are also handy for voltage conversion - for example, if you wanted to attach to a Raspberry Pi or similar which has 3.3V I/O - you just wire up
I/Os of different voltages to different I/O banks on the CPLD, and set the IOVCC of each bank to the voltage you need.
So a little breakout board with a CPLD, a connector for an ESP8266 (or
whatever you want), and some header pins for probing or taking to a
computer, might be a very useful first step.
Hmm, now I look it seems 5V capable CPLDs are getting rare now.
It might be worth trying an Altera MAX II board with an EPM240 part:
https://www.openimpulse.com/blog/products-page/product-category/max-ii-epm240-cpld-minimal-development-board/
https://www.ebay.co.uk/itm/1PCS-Altera-MAX-II-EPM240-CPLD-development-board-learning-board-breadboard-NEW-C/191911917944
and then adding a clamp diode/resistor arrangement described in ch8:
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max2/max2_mii5v1.pdf
While this board is cheap, there's not a whole lot of info available for it.
So you could also look at other MAX II boards with better documentation/tutorials. There are also tutorials for larger FPGAs (the tools/design flow is largely the same) but you'd need to do some translation for your board.
Thanks - looks like I'm going to need it!
:-)
Theo
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)