t wouldn't be that hard to fan out most of the pin of mid-size BGAs e.g. 100-200 pins on 2-layer board. Small BGAs are not a problem at all.
for simple and stupid, attiny and v-usb?It is an option but without any price advantage. Cheapest attiny + 3.3V vreg IC = EFM8 I suggested. Add a crystal and it becomes more expensive. Yes it can be hacked to adjust RC oscillator cal and run crystal-less but is a dubious option and I had bad experience with it. Also needs termination resistors.
Do you have any examples for fanning out a medium sized BGA with a 2-layer board? What is the pin pitch? Things like eMMC doesn't count as for all those pins only 10 or so needed to be fanned out and all the remaining pins are just GND's, VDD's or NC's.
The pitch is a different story. 0.5mm BGA pitch is very hard. I looked at TI power regulator TPS62180 for an FPGA board. It is 0.5mm BGA. 6A! Many pins are combined, so may be I could've fan it out, but I decided it is too much for me and went with QFN.
You do need layers to fan out bigger BGA, although it wouldn't be that hard to fan out most of the pin of mid-size BGAs e.g. 100-200 pins on 2-layer board. Small BGAs are not a problem at all.
I would also like to know how you would fan out the STM32F4's UFBGA100 package. on e.g 4 layers without blind/buried vias or even via in pad. with normal process not 3.5/3.5mil and 0.2mm holes
I would also like to know how you would fan out the STM32F4's UFBGA100 package. on e.g 4 layers without blind/buried vias or even via in pad. with normal process not 3.5/3.5mil and 0.2mm holes
Obviously, if your minimum trace width is not small enough to put the trace between vias, you cannot do this. Similarly, if you minimum drill with annular ring isn't big enough to fit between ball pads, you must put your vias into ball pads. However, this has nothing to do with the number of layers. Given thin enough traces/drills you certainly can fan it out on 2-layer board.
Of course, with 0.4/0.5 mm pitch you need thinner traces, which will be expensive. But if the process to fan out 0.4mm BGA is to expensive for you, it doesn't mean you're stuck with DIPs and SOICs. For 1.0mm pitch this is not a problem, and 0.8mm pitch is still fine with dog-bones and 5mil traces.
For 1.0mm pitch this is not a problem, and 0.8mm pitch is still fine with dog-bones and 5mil traces.Do you have an example of this?
which is more than ordering a reel from microchip direct or digikey (unless they charge more in china for some obscure reason)
according to google 7 RMB = 0.89 EUR
SOIC 14 pin, Industrial temperature range
http://www.microchipdirect.com/ProductSearch.aspx?Keywords=ATSAMD11C14A-SSUT
100-1000 0.80 EUR
1000-5000 0.74 EUR
5000+ 0.70 EUR
and this one, extended temperature range, costs even less on digikey!!! (WTF?) https://www.digikey.it/product-detail/it/ATSAMD11C14A-SSNT/1611-ATSAMD11C14A-SSNTCT-ND/6832729?curr=it&WT.z_cid=ref_octopart_dkc_buynow&site=us
SOIC 20 pin, Industrial temperature range
http://www.microchipdirect.com/ProductSearch.aspx?keywords=ATSAMD11D14A-SSUT&utm_source=octopart&utm_medium=cpc&utm_campaign=buynow
100-1000 0.88 EUR
1000-5000 0.80 EUR
5000+ 0.77 EUR
QFN, Industrial Temperature range
http://www.microchipdirect.com/ProductSearch.aspx?Keywords=ATSAMD11D14A-MUT
100-1000 0.92 EUR
1000-5000 0.84 EUR
5000+ 0.80 EUR
Shipping takes forever though.
I've just ordered a ATSAMD11-XPRO dev kit from Arrow US for < AUD$37 and that included delivery via FED-EX, Wow! This is a great deal for those of us in Oz/NZ given the price others are asking.
Yeah, please can you explain why it would take forever?
Yeah, please can you explain why it would take forever?
The EFM8UB1 is available in a QSSOP or QFN package (EFM8UB11 for the QSOP, EFM8UB10 for the QFN).
It's extremely low-cost, and readily available in China (my China board houses have no problem getting them for <10 yuan in small volume).
It's a fantastic part and can be flashed and debugged using a $35 SiLabs USB Debug Adapter, or its $10 clones (search on Taobao for either).
Simplicity Studio, the IDE, is Eclipse-based and completely free. It runs well on Windows, macOS, and Linux. Includes a full, free license to Keil C51 (the 8051 C compiler).
The GUI code generator tool built-in (called Simplicity Configurator) has support for all the peripherals, as well as the USB stack, so it's completely seamless. Really nice property-pane configuration of all the endpoints and descriptors that makes the whole thing a breeze. Silicon Labs also has a USBXpress library that basically gives you a "black box" solution for exchanging byte arrays with a computer --- they provide the library on the part, the USB driver, and a DLL you can call into. It's super easy to use, but obviously has some limitations inherent to its design.
I honestly have no idea why people fuck around with trying to make ancient ATtiny microcontrollers and other AVR parts emulate USB with weird external zener clamp diodes and a bit-banged stack for low-speed, 1.1 operation. It would be one thing if those parts were, like ten times cheaper than the USB-equipped MCUs, but they're actually often more expensive. Ridiculous.
The Atmel SAM D11 has USB, but the only small packages it comes in is QFN, which the OP rejected (I disagree with that, as I have no issues hand-soldering them with a hot plate, hot air gun, or reflow oven, but whatever). Be sure to verify this, but if I remember correctly, it's got the same business as the other Atmel USB chips have: external crystal required, external pull-up resistors, external series resistors, blah blah blah.
Atmel START is pretty clunky compared to Simplicity Configurator, and it doesn't seem to have any GUI for configuring USB descriptors or endpoints.
The PIC16F1454 comes in a TSSOP package, and Microchip Code Configurator has some basic support for the MLA USB stack, but I think they only supported a single endpoint last I checked. No control over polling vs async callbacks, etc. The MCU itself isn't bad, though (crystal-less, attached directly to the USB pins with no external pull-ups or anything, built-in 3.3V regulator). And Microchip has lots of demos in their MLA library. The PIC32MM has some USB support, too, and it's going to be the same deal.
I don't have time to mess around with crappy dev tools anymore — especially on small-run projects and prototypes. Stick the Silicon Labs stuff — you'll save yourself a world of hurt.
[...] Simplicity Studio, the IDE, is Eclipse-based and completely free. It runs well on Windows, macOS, and Linux. Includes a full, free license to Keil C51 (the 8051 C compiler).
The GUI code generator tool built-in (called Simplicity Configurator) has support for all the peripherals, as well as the USB stack, so it's completely seamless. Really nice property-pane configuration of all the endpoints and descriptors that makes the whole thing a breeze. Silicon Labs also has a USBXpress library that basically gives you a "black box" solution for exchanging byte arrays with a computer --- they provide the library on the part, the USB driver, and a DLL you can call into. It's super easy to use, but obviously has some limitations inherent to its design.
Does this stack work under macOS or Linux?
var board = await ConnectionService.Instance.GetFirstDeviceAsync(); // get the first board out there
await board.ConnectAsync();
board.Pwm1.Enabled = true; // start PWM1 output
board.Pwm1.DutyCycle = 0.7; // turn the LED to 70%
The Atmel SAM D11 has USB, but the only small packages it comes in is QFN, which the OP rejected (I disagree with that, as I have no issues hand-soldering them with a hot plate, hot air gun, or reflow oven, but whatever). Be sure to verify this, but if I remember correctly, it's got the same business as the other Atmel USB chips have: external crystal required, external pull-up resistors, external series resistors, blah blah blah.
You might want to check the data sheet. On the first point you are incorrect [...] It comes in 14 & 20-pin SOIC.
You might want to check the data sheet. On the first point you are incorrect [...] It comes in 14 & 20-pin SOIC.
I would not consider a 14 or 20-pin SOIC a "small package" as the OP asked — but I suppose that's up for debate. I guess to me, 4x4mm is about the cut-off for what I would consider "small"
You're totally right about the other points, though. Unlike all the other Atmel parts, the new SAM D11 has clock recovery and internal resistors, so you won't need external components. Thanks for the correction.
I still think you're going to run into more development friction than with the Silicon Labs parts when it comes to the USB stack, simply because how simple it is to use Simplicity Studio to configure everything.
How would SiLabs parts fare without Simplicity Studio?
Or can Simplicity Studio work under macOS or Linux? What kind of debug probe is required here?
And I am very uncomfortable with Keil C51 (and ARMCC v5, ARMCC v6 does not count for it is based on LLVM/clang) since it is not even C99 feature complete (while all my code is have almost completely converted to C11/C++14, which my usual compilers, GCC and LLVM/clang accepts.)
How would SiLabs parts fare without Simplicity Studio?SiLabs header files use compiler-agnostic #defines for everything, purposely to allow developing with different compilers. If you're looking for a FOSS route, try SDCC. Never used it myself, though.Or can Simplicity Studio work under macOS or Linux? What kind of debug probe is required here?Yes, as I've mentioned (now twice... ) Simplicity Studio is fully cross-compatible with macOS and Linux. The official Silicon Labs debug probe is called the USB Debug Adapter; it's $35. There are several clones.
However, Simplicity Studio also has full support for regular old Segger J-Link probes (which is awesome! you can use your ARM tools for EFM8 development). I routinely go back and forth between both of them. Note that with J-Link, you have to manually specify the attached target to Simplicity Studio; with USB Debug Adapters, this is automatic. Flash speed on J-Link is faster, but not noticeably so.
You can program them in Keil uVision, too, but obviously that's Windows-only. Because Simplicity Studio is Eclipse-based, obviously the GUI is "native" in all three platforms. Under the hood, SiLabs spent a *lot* of time building nice installers that prepackages an internal WINE system to call the command-line C51 tools (yes, you get a full version of Keil C51 for free when you download Simplicity Studio).
And I am very uncomfortable with Keil C51 (and ARMCC v5, ARMCC v6 does not count for it is based on LLVM/clang) since it is not even C99 feature complete (while all my code is have almost completely converted to C11/C++14, which my usual compilers, GCC and LLVM/clang accepts.)Yup, that's the thing that sucks about Keil C51. Not because of its lack of C11 support, but because it's a bizarre compiler. But honestly, it doesn't seem to affect my productivity much. The biggest trap for newbies is all the reserved words; I spent a good 20 minutes trying to figure out why "uint8_t data = 5;" wouldn't compile (it threw weird error messages), until I realized that "data" is a reserved word. Now my "data" variables are named "datuh" or "dater" or "dayta" etc
As for C99 / C11, for small embedded projects, the biggest language feature I see from C90 to C99 is declaring variables inside loop constructs, honestly. And maybe variadic macros. Everything else is either widely supported already (stdint, one-line comments), or probably not relevant (or good) for embedded programming (VLAs, restrict pointers, flexible array members). Again, this stuff is awesome when I'm building big embedded projects (networking stacks are great to implement in C99/C11), but not on little 8051 projects, in my opinion.
QFNs are superior to TQFPs or SSOPs because they take less space for the same die size all other things being equal.
QFNs are superior to TQFPs or SSOPs because they take less space for the same die size all other things being equal.And you don't get bent pins, or solder wicking between pins. If you can avoid soldering the die pad (i.e. device doesn't require it for heat) that makes rework a lot easier. As long as you extend the pads outside the outline, it's no harder to hand-work with than QFP