Monday, January 14, 2013

I've just learned about UpVerter, an online, in-the-cloud schematic, simulation and PCB layout EDA tool. And it's affordable, for open-source designers, you can use it for free. Or pay for private projects. Compared to KiCad or Eagle, this is interesting as it's easier to collaborate on designs.

Though I haven't yet figured out how to import Eagle libraries, which would be useful. I have and intend to make more stuff that I'd post under LGPL or GPL there in Eagle 5 format. I'd like to upload some things toward an FPGA 68k softcore into Motorola 68060 socket widget as discussed here.

I've set up a project for such a thing at UpVerter as well as a linked project at GitHub for VHDL/Verilog code.

Friday, May 18, 2012

HDMI is also PCI-Express too

After my previous post about using eSATA and/or USB3 ports as PCI-Express connections, I was told that someone already uses mini-HDMI connectors in much the same way.

The people at (aka make various adapters for external PCI-Express test slots and use mini-HDMI cables between their different boards to carry the PCI-Express signals. I don't know if they are custom cables or if they are plain standard mini-HDMI cables. And they only use this to cable between their own PCI-Express boards. But it does make it tempting to mux out an HDMI port on a laptop to do either HDMI video or to carry PCI-Express to one of these external slots as a standard feature. Especially while I'm wondering how to pay for HDMI membership/certification etc. The port can be useful as PCI-Express until it is allowed to enable the video side of that mux. Then, if Bplus used standard HDMI cables, then we should be good to go with any HDMI to mini-HDMI cable, or work out an arrangement for custom HDMI to mini-HDMI cables if necessary.

I had been aware of Bplus's products, but was not aware until now that they were using mini-HDMI connectors. And they provide schematics for many of their adapter boards to show us how they connect to this mini-HDMI port, so we should be able to have some fun here!

Labels: , ,

Friday, April 13, 2012

PCI-Express over eSATA and/or USB3

The other day, for some reason, I got to wondering if one could put PCI-Express through a sata cable. The combo eSATA with USB2 for power might do the trick, if the USB2 part of the cable has the data wires for the PCI clock. If we had a combo wire with all the USB3 stuff as well, perhaps that gives us a x2 cable, or two x1 slots. This could use the cool Tragant/DeLock 65285 combo eSATA/USB3/USB2 connector. But we'd need a custom cable and cable connector for that, as I haven't seen one readily available. This connector just makes it easy to have the option of plugging in USB2 or USB3 or eSATA or eSATA+power. I don't think a connecter/cable has yet been made to carry all of those at once.

Ok, why would anyone want yet another PCI-Express cable/connector? Well, if someone, like me, wants to repurpose a case, which has an eSATA/USB2 combo port, this is a convenient way to get more good stuff out of thatbhole in the casework. Maybe the case doesn't have a standard PCI-Express cable port to make use of. And maybe I don't have the option to add or modify existing case holes.
OK, but how do the signals work with this new combo eSATA/USB3/USB2/PCI-Express definition? Mux the PCIe refclock with the USB2 data signals. Then mux the PCIe diff pairs with the SATA diff pairs and/or the USB3 superspeed diff pairs. If doing it only on USB3 diff pairs then this could even work on standard USB3 (which also standardly carry USB2) port connectors, but again I'm not aware of existing cable/connecters that carry both USB2 and USB3 all wires at once, so a new cable/connector likely needs customized for this new purpose.

The muxes would be the same things you might use between PCI-Express and USB3 in an ExpressCard2 slot, or between SATA and PCI-Express in an mSATA slot. TI and others already make suitable muxes for these purposes.

What about speeds? SATA can do 6Gbps, I'm not sure if that includes the eSATA variant or not. If so, then it can carry PCI-Express GEN2 5Gbps speed transfers. If not, then throttle back to PCI-Express GEN1 2.5Gbps speed if that fits into the eSATA spec. USB3 SuperSpeed is 5Gbps, so it can be an effective PCI-Express GEN2 carrier. PCI-Express GEN3 8Gbps devices will have to throttle back to a speed that fits into the connector and cabling. But PCI-Express is designed to do that kind of thing, so as long as it sees an upstream link of a workable GEN speed, it'll automatically do that. This might require a GEN1 or a GEN2 switch or something between a GEN3 host and a GEN3 device to work, but I'll live with that. Perhaps there's a mechanism to detect that transfers are not going well at GEN3 speeds and slow down to GEN2 (and then GEN1 if GEN2 is still not good) until things do work well, I don't know.

Now, how do we determine which kind of thing is connected to this newly defined combo port? ExpressCard2 has a mode select pin, as does mSATA in SATA spec 3.1. (earlier mSATA devices may not have this mode select capability if they were designed/manufactured before this spec update, I don't really know the situation here that well) My proposed cable won't have this capability. So, as with my earlier ponderings about how to Autoconfig (tm) a mini-PCIe slot that may or may not have a valid mode identifier present, do it in software. It just makes scanning and enumerating whatever is plugged into this slot more complicated than if we know what kind of thing will be there.

When pondering the mSATA mini-PCIe slot situation, it seemed like putting SATA communications into a PCIe device  wouldn't necessarily be harmful, nor would putting PCIe communications into a SATA device. Pick whichever one runs at a lower diff-pair voltage to try first, just to make sure we don't harm the device with the wrong signalling. If a device is found, then we're done. If not, then try the next higher diff-pair voltage connection, and if something is found, then done. etc...

So, how do we do this in a more complicated cable? USB2 has a method of identifying USB2 devices. I assume that USB3 SuperSpeed wires do as well. I'm not sure about eSATA. So, if neither USB2 nor USB3 dvices are detected, then look for eSATA and PCI-Express. Which order to try in? Whichever would be lowest voltage goes first. When doing PCI-Express over this connector, then mux the USB2 data lines over to the PCIe ref clock connection. Seems pretty reasonable.

And that's my crazy idea for the day.

Labels: , , , ,

Tuesday, February 21, 2012

Mini PCI-Express is also USB2 is also mSATA

I didn't realize that the mini PCI-Express card format has USB2 data signals as well. Or that some cards to fit these sockets are purely USB2. (WLAN is PCIe, WWAN is USB2 from the sounds of it) Interesting. I do not at this time find anything about USB3 SuperSpeed support in any standard use of this connection/form factor.

I also did not realize that SATA drives also come in this PCB form factor, termed mSATA. It seems that the SATA signals are muxed with the PCI-Express signals (or replace them completely for an mSATA specific slot without PCIe) similar to how ExpressCard2 muxes USB3 SuperSpeed signals with PCI_Express.

The Mini PCI-Express connector defines pins for a SIM card for cellular based wireless data such as 3G. The SIM card is not on the module itself, perhaps on the motherboard or possibly on an adapter card if the motherboard lacks this and you need it.

It seems the Mini PCI-Express module is useful for more than just WiFI+Bluetooth, which is all I was aware of previously. Such as a hardware video decoder.

Labels: , , , ,

Saturday, February 18, 2012

ExpressCard2 SERDES mux

It seems that rev 2 of Expresscard assigns the PCI-Express SERDES and USB3 superspeed SERDES to the same pins, and some muxing is required to support everything. Pericom has such a mux, and TI has one or two coming soon. Interesting.

For other people that are curious about how the PCI-Express Gen2 lanes and the USB3 lanes are muxed together for ExpressCard 2 slots, check out the ExpressCard2 Specification, and search for "PCI-Express signal switch" or "USB3 signal switch". Most of what I found are suitable for PCI-Express Gen1 (2.5Gbps) speed, but are not fast enough for USB3 or PCI-Express Gen2 (5Gbps) speed. One available is, and one or two coming soon from another vendor are as well. Check the speeds supported by your search results.

There's also a power controller involved, so it knows which power to provide, when, and when not to.

I think that this, with a PCI-Express lane and a USB3 port, should give a workable ExpressCard2 slot. There may be a little more, but I'll trip over that bridge when I get there. Probably firmware/software stuff to deal with too. The ComExpress spec talks about having some PCI-Express lanes being ExpressCard capable, and I haven't yet figured out exactly what they mean by that, if there's something special about the lane in the root controller for that, or what.


Friday, February 17, 2012

That's so tacky!

I've been trying to read up on doing BGA rework with the hot air gun. Articles and youtube videos suggest making use of gel flux. Googling for gel flux was frustrating at first. At some point I can to the realization that gel is one word for a thing with a variety of words. When you're ordering from Digikey, Amazon, etc. you'll probably want to search for the term tacky flux to find what you want. Some people call it paste flux. All the same thing I guess, in terms of viscosity and why you use it over liquid. The only thing left is to figure out if you want no-clean (you probably do), water soluble, halide-free, lead-free or tin-lead compatiblecharacteristics in tacky/paste/gel form.

It sounds like this tacky/paste/gel flux is what you want to use while reballing a BGA. The tackiness helps hold a loose ball on each pad until you get it under heat for reflow to really attach the solder balls. And some people use it with solder wick/braid in cleaning old solder off the BGA pads before reball or reflow on the PCB board.

Thursday, February 16, 2012

Preparing for a lot of hot air

I'm (very) gradually tooling up to be able to rework SMT and BGA devices on circuit boards. I've got a hot air station now, and some BGA type liquid flux, and have a preheater, hot air gun holder, and board holder on the long-range radar. Maybe someday I'll save up for them... Until then, I've got a toaster oven for preheating and making out humidity and such things.

My hot air station is the Aoyue 968A+. Relatively inexpensive for that sort of thing, and has a vacuum pen tool for moving around little SMT devices. Also has a soldering iron, but I'd rather that was a tweezer iron, and I do hope to order a tweezer to put in its place at some point. I already have a soldering iron that I'm pretty happy with, and would rather have a tweezer that would make some things like the AmigaOneXE DMA fix easier to do than holding my iron in one hand and my desoldering iron in the other hand and try to maneuver things that way without hurting myself. A holder would also be nice for the air gun so I can have hands free to drive pickup tweezers and vacuum pickup tools.

For my first projects, I intend to play with a couple old broken cell phones to get a feel for things, and then move on to removing parts from Mac G4 processor modules, and a similar AmigaOneXE module, for the purpose of mapping the Megarray connectors and perhaps work out an adapter between them. This project can be seen here.