Parts suggestions-

USB AVR Programmer and SPI interface. Adafruit's USBtinyISP.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
buhman
 
Posts: 5
Joined: Fri Aug 10, 2012 10:00 pm

Parts suggestions-

Post by buhman »

First: the parts:

On the parts list check, http://www.ladyada.net/make/usbtinyisp/parts.html you suggested digikey part 151-1081-ND ; I found out the hard and frustrating way that that connector is actually complete [EDIT]. The through-hole pins are very slim, and bend easily. This in combination with there being a rear aluminum cover causes problems.

The pins are in such close proximity to the rear cover that it doesn't take much to end up shorting those two rear pins to the rear of the case. This was very frustrating; it wasn't until I plugged just the connector itself in to a non-stupid-sony-vaio-laptop that dmesg started telling me about how the port was being shut down because there was too much current. With nothing attached to the pins, I became enlightened to the fact that the connector itself was becoming shorted.

I heavily suggest, from experience, that the parts list be changed to suggest digikey part A31725-ND ; much sturdier, no stupid rear-cover to short out the leads, identical footprint, and very much worth the extra $0.66.

You then suggest a 12MHz resonator. This turned out to be more problematic than I anticipated. I actually constructed my usbtiny on a breadboard (I didn't want to buy your PCB and I liked the idea of doing raw usb signaling on a breadboard).

The main trouble with breadboarding a resonator is unlike a crystal, because the two XTAL pins aren't adjacent, you can't just shove it directly on the breadboard and then pop on the two caps. This actually caused more problems than I anticipated. I stuck the in front of the 2313 on the board, and jumpered it to the xtal pins. This then later got in the way of my original breadboard routing plan, so I then put it on the opposite side of the breadboard, and used two more jumpers (meaning triple the capacitance between the 2313 and the resonator in comparison to a crystal).

This extra capacitance actually ended up causing funky timing problems (writes and reads would fail inconsistently), that I eventually solved by rerouting things back over to the other side of the breadboard, and only using a single pair of jumpers.

I suggest replacing the resonator with a crystal and two caps. Of course this would require a different board layout, but I don't think overall cost should increase that much. Had I thought for a moment and not followed the schematic so blindly, I think my frustration level would have been reduced dramatically.

Finally there's also an error on the schematic, http://www.ladyada.net/images/usbtinyis ... sp2sch.png . You have pin 11 and 12 swapped on the symbol for IC2D--that is, the symbol itself is flipped, but the actual pin assignments are correct. This also caused some amount of confusion when I was comparing the 74AHC125 datasheet to what you had written on the schematic.

Here's what I made: (attached) ; the USB connector pictured is actually a vertical connector that I also used that seemed to work the best on the breadboard with the copper wire soldered on (least mechanical stress). It's targeting a mega1284p. After dealing with several problems with the capacitance of the breadboard nodes, along with the other things I mentioned, it works surprisingly very well.

The other changes I made were using a ferrite bead to help reduce noise on Vcc, and a zener diode pulling the reset pin high, both of which are the recommended/optimal ways to do this according to Atmel: http://www.atmel.com/images/doc2521.pdf.d
Last edited by buhman on Sat Aug 11, 2012 9:23 pm, edited 3 times in total.

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Parts suggestions

Post by adafruit »

hiya!

this is the adafruit support forums for our customers who purchase our kit which works for thousands and thousands of customers. you made your own version, using your own parts - that's awesome! that's why we put the documentation out there. that's for the feedback about your design and project!

cheers,
adafruit support, phil

buhman
 
Posts: 5
Joined: Fri Aug 10, 2012 10:00 pm

Re: Parts suggestions; errors on schematic

Post by buhman »

adafruit wrote: this is the adafruit support forums for our customers who purchase our kit
I'm not talking about errors/problems with your kit.
adafruit wrote: that's why we put the documentation out there.
And that's what I'm here to discuss: the problems I found while working with your documentation. My specific implementation is less important than your documentation, and I am attempting to help you rectify a few small issues that I encountered while reading them.

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Parts suggestions

Post by adafruit »

buhman wrote:And that's what I'm here to discuss: the problems I found while working with your documentation. My specific implementation is less important than your documentation, and I am attempting to help you rectify a few small issues that I encountered while reading them.
yup! we understand that, thanks again for sharing, we appreciate it!

cheers,
adafruit support

buhman
 
Posts: 5
Joined: Fri Aug 10, 2012 10:00 pm

Re: Parts suggestions;

Post by buhman »

I've also noticed another fairly severe problem with the design. I want my ISP to draw power from the USB host, but I don't want the USB host to power the target.

The initial thing I tried was only jumpering ground from the ISP to the target; the problem is, when the ISP becomes unpowered (unplugged from USB host), the buffer is clamped to 0-vcc where vcc is zero. This of course pulls the reset line of the target low, which is obviously not a good thing in this case.

I believe more suitable would be a level translator instead, that way each side of the buffer/level translator would be driven at the I/O level for the ISP and target, respectively. This would also allow the ISP power supply to be isolated from the target. I believe the MC10H124 would be suitable for this purpose, digikey part number MC10H124PGOS-ND.

The propagation delay characteristics are better than that of the 74AHC125, making it also theoretically possible to communicate with the target at faster rates.

It also helps that the MC10H124 has a common strobe, rather than one OE line for each buffer line, it would make it easier to both route on a breadboard and on a PCB, and would likely make communication more reliable.

And it would work with the usbtiny firmware without any modification.

Furthermore, the usbtiny appears to be doing 5V signaling with the USB host; this is no doubt a fairly bad idea. If the level translator I suggested was used, Vcc could be connected to the target and Vdd would be ISP levels. The 5V from the USB is in fact intended to make it easy to employ the use of a 3.3V LDO to make it easy to power the USB target; with the addition of a LDO (also inexpensive), and running the 2313 at 3.3V the usbtiny would start to look fairly respectable.

Without the 3.3V LDO, your 1.5k pull-ups are far too small.

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Parts suggestions

Post by adafruit »

thanks, we've sold thousands of these kits without any of those issues, we'll of course check out your feedback on your own version from the one you made on your own with others parts, etc.

thanks again!
adafruit support, phil

buhman
 
Posts: 5
Joined: Fri Aug 10, 2012 10:00 pm

Re: Parts suggestions;

Post by buhman »

adafruit wrote:thanks, we've sold thousands of these kits without any of those issues, we'll of course check out your feedback on your own version from the one you made on your own with others parts, etc.
I am talking strictly in terms of your schematic.

[EDIT]

These are problems with your design that I have been testing and fixing in my own implementation.
These are problems with your design, both the schematic, related documentation, and in your kits (if you sell the same components you recommend in your documentation):
1) It is not directly possible to simultaneously power the usbtinyisp from the USB host and isolate the USB power from the target board.
2) The usbtinyisp is using 5V signaling rather than using a LDO as intended which is a direct violation of the USB standard, and could potentially damage the USB host.
3) Digikey part 151-1081-ND is constructed in such a way that makes it very easy for the connector to short internally. It is flimsy, and is not forgiving with respect to mechanical stresses.
4) The IC2D symbol on your schematic is flipped the wrong way.
5) You are not taking proper care to eliminate digital switching noise on the 2313, and have not decoupled the MCU from the power rails appropriately, creating a condition where a high-current loop across the entire Vcc rail is possible, rather than just between the capacitor and the MCU.
6) Using a resistor alone as a pullup for the reset pin is non-optimal.
7) Being a fairly high-speed USB device, a resonator could cause more trouble than it's worth when communicating with the USB host; a crystal would be more appropriate.

The only problem that I have mentioned that is (partially) specific to my implementation is the whole part about the *routing* of a resonator in comparison to a crystal.

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Parts suggestions;

Post by adafruit »

hi again,

we've noted your feedback, thanks again. we have just a few rules here - we keep the comments positive and polite here - you're welcome to post again in the future - just stick to the rules :)

thanks!
-adafruit

Locked
Please be positive and constructive with your questions and comments.

Return to “USBtinyISP”