08/28/2017 at 18:31 •
The TinyFPGA B2 boards are available to buy today from Tindie: https://www.tindie.com/products/tinyfpga/tinyfpga-b2/
Take a look and buy the tiniest FPGA board with this many logic resources!
- 08/28/2017 at 16:11 • 0 comments
08/25/2017 at 06:33 •
The firmware and hardware of the production programmer/tester for the B-series boards is finished. This is what I use to program the bootloader onto the SPI flash and test all of the components of the board. The TinyFPGA B-Series boards have many more components than the #TinyFPGA A-Series boards and there is a lot more that can go wrong.
During PCB manufacture the final step is electrical test. The bare PCBs are tested automatically using a machine that probes all of the traces and ensures there are no shorts or opens. After the board is populated with all of its components further tests must be made. The connectivity of each of the components must be tested as well as their basic functionality. This is what the pogo-bed tester firmware currently does:
- Test 1.2v and 3.3v levels from the voltage regulators.
- Program and read back bootloader bitstream in SPI flash.
- Test the clock and PLL by using the PLL to generate a new clock and use a verilog counter to divide the clock into pulses that can be counted by the #Teensy 3.0 & 3.1 & 3.2 & 3.5 & 3.6 microcontroller on the tester. The PLL needs to be tested because there are external decoupling capacitors on dedicated pins for the FPGA's internal PLL.
- Test each of the IO pins to ensure the connection from the through-hole on the board is good all the way to the fabric of the FPGA.
So far all of the boards are passing, however I anticipate there will be some boards that fail due to one reason or another. Any failing boards will be analyzed and feedback sent to the manufacturer and/or updates made to the PCB layout.
With current progress the hardware is ready to be listed on Tindie for sale, however I will need to make sure there is a getting started guide that can get people up and running with the board quickly.
08/21/2017 at 05:38 •
The production tester and programmer PCBs don't arrive from OSH Park until late next week. I wanted to get a head start so I hacked together a more convenient prototype than a basic solderless breadboard. This one uses pogo-pins and has all the necessary connections to program and test the board.
It's an ugly piece of kit, but does the job. I'm using one of the #Teensy 3.0 & 3.1 & 3.2 & 3.5 & 3.6 boards as the brains of the tester. Teensy 3.6 is perfect for the task. It has a built in micro SD card slot, USB device and host mode at the same time, and plenty of analog and digital IO for testing all the pins of the B-series boards as well as any indicators or displays I may want to add.
I test a board by pressing on it's reset button while pushing it on the pogo pins at the same time. The microswitch will activate when the board is pressed firmly against the pins. I've found that programming will fail if the board is not firm on the pogo pins. It takes several seconds per board for the full program, verify, and test cycle. I may want a lever to hold down the board while it is being tested.
I ran about ten boards through the programming cycle to find and fix any bugs. Ultimately one of the B2 boards had a defect. Looks like a faulty SPI flash chip at this point. The detailed failure information from the tester says it always fails at a specific address in flash. Interesting failure. Maybe ESD related, I'll need to take some more precautions going forward. Anways I can replace the flash chip at a later date and use the reworked board for a free giveaway.
A few more things need to be done before I can list the board on Tindie:
- B-Series getting started guide
- USB bootloader production testing features
- Similar to boundary scan. Just need the ability to drive and sample pins.
- Tester features
- Need to add support for USB Host mode to ensure the board enumerates and functions properly after being programmed
- Need to test all the IO pins
- Need to ensure 3.3 and 1.2 volt outputs are within range
- Need to check 16MHz clock
- Program/test/package all the B2 boards
- This programmer/tester could even be rugged enough for the current run of B2 boards.
Happy with current progress.
08/19/2017 at 06:03 •
I spent some time last night sketching up a quick PCB for testing and programming TinyFPGA B1 and B2 boards. I previously made a tester for the TinyFPGA A1 and A1 boards. I followed the general strategy that sparkfun uses for their boards. The A-Series tester looks like this:
I press the board onto the pogo pins, the Teensy 3.0 microcontroller tests all the pins via JTAG boundary scan and lights up the green LED if it passes. This rig made it pretty easy to test all of the A1 and A2 prototype and production boards.
The B-Series boards are a bit more complex and have a few more things to test. Some of the differences:
- The iCE40 FPGAs do not have JTAG, so no boundary scan is available
- They need to be programmed with the bootloader
- They have additional components to test
- SPI Flash
- 16MHz Clock
- 3.3 and 1.2 voltages regulators
Because of these extra requirements I've decided to upgraded to a Teensy 3.6. It's probably overkill, but it has the extra pins I needed as well as a built-in SD card slot and high clock speed. So I can do things like a basic test of the 16MHz clock and output of the voltage regulators. Additionally the extra pins give me the opportunity for more control and feedback during testing: I can integrate a display for pass/fail information. I could even have multiple bitstream images on the SD card in case I want to offer pre-programmed designs in addition to the basic bootloader.
The tester PCB ended up being pretty simple though:
I will almost certainly be hacking in some changes to the tester once I get it back from OSH Park, but I have already taken too long to make this programmer and so I wanted to start moving faster. I gave myself a decently sized breadboard area to add any buttons, indicators, or LCD.
Meanwhile I have a simple firmware development setup for the Teensy. This will let me have my firmware finished and tested in time for the actual production testing hardware. I have the bootloader programming portion of the tester firmware complete and am now working on the testing portion.
The PCBs should come back late next week. With some luck I'll be able to get it working and list the first batch of TinyFPGA B2 boards on Tindie.
08/17/2017 at 05:17 •
I sent an order to the factory for TinyFPGA B2 boards a few weeks back and they have finally arrived. I've tested three of the boards and they appear to be in good working order. However, I have quite a few more to test and I have been putting off making a test rig for it. So today I'm working on a simple pogo-pin test and program rig that will load the USB bootloader bitstream onto the SPI flash and test the clock, voltage regulators, and all IO pins on the board.
And I'm off to KiCad to design my pogo-pin test rig!