Building a REX: Difference between revisions

From Tandy Tech
Jump to navigation Jump to search
Line 154: Line 154:


* Hook up the "platform usb" programmer to the jtag pins with the short section of single row pin header.
* Hook up the "platform usb" programmer to the jtag pins with the short section of single row pin header.
:(The staggered/offset holes makes tension on the straight row of pins, which holds them in place and makes a solid contact without any fancy spring loaded sockets. Google "C-MOD S6 Manual" and see the drawing, or see the Pictures link above.)
:(The staggered/offset holes makes tension on the straight row of pins, which holds them in place and makes a solid contact without any fancy spring loaded sockets or clips.
:[[file:rex_jtag_pins.png]][[file:rex_programmer_hookup.jpg|320px]]
:[[file:rex_jtag_pins.png]][[file:rex_programmer_hookup.jpg|320px]]


Line 170: Line 170:


[http://www.club100.org/memfiles/index.php?&direction=0&order=&directory=Steve%20Adolph/REX%204.9%20Beta 4.9 update files]
[http://www.club100.org/memfiles/index.php?&direction=0&order=&directory=Steve%20Adolph/REX%204.9%20Beta 4.9 update files]
TODO: This step needs you to run a tpdd server on a modern machine, install a dos on the M100. Should walk through the process of using teeny and dlplus.


==References==
==References==

Revision as of 11:22, 8 April 2017

Building a REX from scratch, using the files and info released by Stephen Adolph.
Brian K. White - bw.aljex@gmail.com
Files Used
Pictures

Parts/Materials

Bill of Materials. Order each of these.
These are parts to build 3 REX boards, because you can't order fewer than 3 boards from OSHPark. If you only want to build one board, you'll have to order 3 pcbs from OSHPark, reduce the quantities of the parts on the DigiKey cart, and just discard 2 of the pcbs from OSHPark.

When you press "order it" you get 3 boards.
This cart is pre-loaded with quantities to build 3 REX boards.
Order 1 flash chip per REX. (so, 3 chips if you want to build 3 boards)
Pick any version of the chip which matches this pattern:
AM29F800BB-##E*
Where:
## = Speed: 90 or lower (90 or faster)
E = Package: Only E, TSOP
* = Temperature range: Any
Example (what I got):
AM29F800BB-70EK
  • Non-electronic materials
Don't use foam double sided tape, use thin tape. The tape and the card stock are for building up a couple mm thickness of spacer on the back side of the REX, and you specifically want it to be solid material that does not compress, so that the REX remains parallel to the bottom of the socket, not tilted, and so that it's impossible to push the REX too far into the socket, past the point where the socket pins snap out over top of the REX, risking damage to the socket pins when you try to remove the REX after that. You may have to cut the tape with scissors to make it thinner than 1/2", more like 3/8 like the ribbon.

Tools

  • Xilinx "Platform USB" programmer.
I used this actual ebay item: http://ebay.com/itm/112073269777
But ebay links die after a while, so if/when the link above is dead, just search for "Xilinx Platform USB" on ebay or amazon etc.
There are a lot of overpriced programmers, and I include the official Xilinx ones in that group. There is no reason I can see why a jtag programmer should cost $200.
So, go on ebay and search exactly "xilinx usb", then sort by "price+shipping, lowest first, and filter by buy-it-now.
Then skip the cables and adapters until you get to the actual programmers. You want one of the kits that has the programmer and several adapter cables, all for about $25.
Then expand the item pictures and verify that it says DLC9G or DLC9LP, or DLC9. Prefer DLC9G most, then DLC9LP. DLC9 is oldest but would still work fine for this. DLC10 probably works too, if you feel like spending the money.
Don't search for DLC9G or DLC9LP directly by name, you will only get the overpriced ones. Search "xilinx usb" and then look at the pics.
  • "Modern" pc to run the Xilinx ISE software to run the programmer, and the also to run a TPDD server to server complete the programming process and get software onto the M100.
Modern, only in comparison to the Model 100. I used a 12 year old laptop about equivalent to a $200 netbook, running a current Ubuntu 16.04. Point being it is possible to do the job with very little, ie a netbook, even one running linux instead of windows or osx. It did require several gigs of hd space for the Xilinx software though, and that was for the stripped down "LabTools" package, not even the full ISE. But the OS and all software are free. Getting the LabTools software installed and working, and getting the special usb drivers working DID require some non-trivial futzing around. But I described all that [Here] if you want to use Linux.
  • Sandpaper medium grit (120 or so), and a cutting board or other soldi flat surface.
This is to grind down the edges of the board until the through-holes are half gone, leaving "castellated" board edge terminals.
  • Soldering pen. Do not necessarily need anything fancy. I used this one:
http://www.microcenter.com/product/391332/12_Watt_Miniature_Corded_Soldering_Iron
  • Solder, fine pitch, rosin core. I used this
https://www.radioshack.com/products/radioshack-1oz-silver-sdr015
Notice 0.015" Diameter. You don't have to use quite that fine, I just like it for this.
As long as I'm posting links from MicroCenter...
http://www.microcenter.com/product/448396/No-Clean_Flux_Core_Solder_Sn63-Pb37_-_2_Ounce_Spool
It doesn't say so on the MicroCenter site, but the manufacturer site shows that part number is .020 diameter. Perfect. Not silver bearing, but the 63/37 mix is ideal.
  • Flux. Almost anything will get the job done for a one-off project. I used:
http://www.microcenter.com/product/444655/SRA_No-Clean_312_Flux_Pens
Or the strongest reading glasses you can get at the local Walgreens, maybe add a headband led light.
Getting into the really optional stuff here... just for cleaning the flux residue off later. And theoretically both the flux pen and the flux in the solder above (not the Radio Shack one) claim to be cleanable with only warm water, or not need to be cleaned at all if you don't want. But I like to use 99.9% alcohol so the part dries completely immediately.

It's also handy to have a Molex socket like the one in a Model 100, just as a way to make the simple physical connection to provide power to the REX during programming. It is awkward to do that without the socket, since you have to hold 2 wires to 2 of the "castellated" edge terminals (the half-holes), AND also hold a jumper wire from vcc(on the jtag) to a teeny spot on one side of the R3 resistor, AND hit the Enter button on a laptop to kick off the programming process, WHILE holding all 3 of those.

The sockets are no longer available new, but I (Brian White bw.aljex@gmail.com) happen to have a little over 100 of them I lucked into cheap. So contact me and I'll just give you one.

I stuck the socket right into a breadboard and then used jumper wires to bring 5vdc to pins 1 and 14.
You can see it in a few of the Pictures.

Otherwise, the next best option is to just use your Model 100. Back up any files you care about off m100, and just pop the rex into the m100 and turn the m100 on. The m100 is now providing +5vdc to the rex, and you should be able to program the rex as long as the m100 is on.

What am I forgetting...

  • test hook (to clip on to the jtag vcc pin)
http://ebay.com/itm/262802420892
  • piece of wire to go from the test hook to R3 during programming.
  • breadboard and 5vdc power supply (phone charger with plug cut off), if not using your M100 to provide power for programming.
  • 6 pins snapped from a single-row male pin header.
http://www.microcenter.com/product/426789/10_01_40_Single_Row_Headers
Just a little 6 pin section snapped off of one stick. The rest are not needed, but you almost can't buy them in any smaller quantity.

Later, you also need

  • Monoprice 479 cable, for connecting the M100 to the modern pc to complete the software load. if you get exactly this cable, then you do not need any other gender-changer or null-modem adapters between the Model 100 and the modern pc (or more likely, the usb-serial adapter on the modern pc).
  • Very likely need a usb-serial adapter too, since no modern pc has a serial port. Anything will do. Even the cheapest junkiest Prolific-based cable is good enough, and has the right 9 pin connector the match the cable above.

Assembly

Shape the PCB

Place a sheet of medium grit sand paper on a cutting board and sand the long edges of the pcb down until the holes are about half gone. Use the white marker lines in the corners. Sand until the edge of the board is almost to the lines, but the lines are still there.

Electronic Components

Install these parts:

AM29F800BB (pin 1 marker dot is hard to see because it's copper not silkscreen, but it's there)
XCR3064XL
LP2980
R1 = 0 ohm
R3 = 10K ohm
C4 = 1.0 uF

All other locations left empty.

Simple Drag Technique to solder the chips with an ordinary solder pen and flux. No fancy professional soldering station needed.

Orientation of the chips:

Spacer & Extractor

1/2" double sided tape
Cereal box
3/8" Ribbon

Apply double sided tape to bottom of REX (The side with only the flash chip and no writing).

Cut a length of about 2 1/2" of ribbon, and melt the cut edges with the soldering pen to keep them from fraying. Stick the rex to the center of the ribbon, aligned lengthwise.

Turn the REX over and add another piece of double sided tape on top of the ribbon.

Cut a piece of cereal box about 1/2" x 1-1/4", and stick that to the tape.

Flash the Firmware

There are two things to flash;

  • The .jed, which configures the blank CPLD into a functional circuit or device. You must flash the .jed first.
  • The firmware, which (I think?) runs on the device created by the .jed ?, and (this part is certain) includes an option-rom image loaded in one of the 32k blocks of flash, which contains REXMGR.

.jed

  • Install LabTools 14.7 from Xilinx
https://drive.google.com/folderview?id=0Bys6eLbSbYyhVFBQSW1pclpjaWM
  • Supply +5vdc to pin 1 of the board edge, and gnd to pin 14.
Same as the M100 would do when installed.
Simplest is use an empty Molex socket on a breadboard, and snap the module into the socket the same way it would be in a M100. Or I suppose you could just use an actual Model 100/102/200, if you didn't care about the data on it.
(link to searchable part numbers, there are at least two companies that made the sockets and carriers.)
(Contact Brian White bw.aljex@gmail.com for a socket. I got a load of 130 of them cheap.)
  • Hook up the "platform usb" programmer to the jtag pins with the short section of single row pin header.
(The staggered/offset holes makes tension on the straight row of pins, which holds them in place and makes a solid contact without any fancy spring loaded sockets or clips.
  • Temporarily pull PORT_EN high on the cpld by temporarily jumping from the jtag vcc to R3, on the side closest to the center of the board. (Be careful and get this right. The other side of R3 is GND. If you short vcc to gnd you may burn out the LP2980 3.3vdc regulator on the rex.) Just clip a test clip to the jtag vcc pin and manually hold the other end touching the side of R3 for the few seconds it takes iMPACT to program.
  • While holding the PORT_EN jumper in place, use iMPACT to program the .jed file.

firmware

Follow the directions for the 4.9 update.
This happens to also serve as a way to do a first-time flash of the firmware and REXMGR software.

4.9 update directions

4.9 update files

TODO: This step needs you to run a tpdd server on a modern machine, install a dos on the M100. Should walk through the process of using teeny and dlplus.

References

User Manual

Sources and support files

PCB