8 ms·
ARMing a Breadboard – Everyone Should Program an ARM
- ck2 11y agoSo if you have a breadboard and a USB to serial adapter, you could build the bare bones version of this for about $6 and maybe break the bank at $15 if you had to buy everything. I've got a usb to serial adapter just sitting here, definitely trying this project for just $6 Wish it only needed 5V supply, I have endless phone chargers laying around from 500ma to 2a
- falcolas 11y agoThankfully, a circuit for dropping the 5v input to 3.3v is really easy to build. It only requires a pair of capacitors and a 3.3v regulator, only about $2 of materials total.
- Turbo_hedgehog 11y agoYou can also use a voltage divider if you are willing to suffer a bit of leakage current. That's just 2 resistors.
- ajross 11y agoThe linear regulators we are talking about are basically voltage dividers with feedback. They aren't significantly more efficient than your design, though they are ton less noisy.
- deleted 11y ago[deleted]
- yuubi 11y agoBecause of that feedback, you get to use your load as the lower half of the divider, so the total current drawn from the source is the load current plus a few microamps for the regulator's internals. In the passive voltage divider circuit, if the load varies its current draw, you have to have a resistor in parallel with the load so that the total current through both the load and the resistor doesn't vary significantly (where "significant" is derived from your tolerance for voltage variation).
- snops 11y agoWhile at peak current, the efficiency of a voltage divider is the same as a linear regulator, at lower currents a voltage regulator has significant benefits. This is because the quiescent current used by an unloaded voltage regulator can be very low (500nA for the TPS783!), while for a voltage divider to be sufficiently "stiff" its quiescent current should be about 10X the max load current. As a lot of microcontroller applications alternate between a low sleep current (several uA) and bursts of high run current (several mA), a voltage divider is significantly (>10000X!) more power hungry then a linear regulator in practice, even if the worst case efficiency for both is closer.
- snarfy 11y agoIf you don't have the cable, an arduino uno also works as a usb to serial adapter. https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard To make 3.3V out of 5V you can use a voltage regulator.
- ajross 11y agoIf you want to do anything even semi-reliable with this thing you'll want a regulator on the board anyway. Wall warts are notoriously noisy.
- togusa 11y agoThis. New switch mode ones are crappy, really crappy! I have a stash of old linear ones that aren't fortunately. Worth their weight in gold.
- deleted 11y ago[deleted]
- deutronium 11y agoAlternatively the STM32F4 Discovery Board and STM32F29 Discovery Boards, are both really good too. I think the STM32F4 board is around £12 if I recall correctly.
- 0xcde4c3db 11y agoIf you're interested in low-level code (assembly, JITs, Forth, etc.), note that official documentation for the ARM ISA has considerable encumbrance. It's not like most architectures where you just go to the manufacturer's website and download a PDF of the programming manual; ARM makes you register an account and agree to a rather restrictive clickwrap license (something to the effect of "you're only allowed to use this manual to support our products, not to compete with us"). This seems to not be common knowledge. Maybe the atmosphere of typical ARM applications is already so buried under NDAs that nobody cares, or maybe people just punch "ARM Architecture Reference Manual" into Google and grab one of the many slightly-outdated copies that are floating around on .edu servers. But I found it pretty surprising after seeing how widespread ARM is in "open" hardware.
- d9fb698e010974b 11y agoThat shouldn't encumber most people though. How many people who don't already know that have the skills to seriously compete with ARM? Probably none.
- 0xcde4c3db 11y agoHistorically, it hasn't really taken "serious competition" to invite threats. There's a reason that the best-known open-source ARM implementation explicitly only targets ARMv2 (which dates from the days when the "A" stood for "Acorn") [1]. That said, people who just want to play with ARM-based hardware can get pretty far by leaning on the GNU support and third-party documentation (there are some Game Boy Advance documents that cover the ARMv4 instruction set, for example). [1]: http://opencores.org/project,amber http://opencores.org/project,amber
- pcwalton 11y agoThe situation still isn't great, but this has gotten better over time with the documentation on infocenter.arm.com, which Google usually pulls up as a top result when you search for various ARM instructions. For example, Googling for "arm tbl" brings up this: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/TBL_advsimd_vector.html http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.... which contains links to the rest of the AArch64 instruction set. The documentation has scary "Superseded" notices, but it's all basically accurate and it's enough to do low-level programming.
- foldr 11y agoThe STM32 dev boards already make this pretty easy. (Although setting up a free toolchain is a bit of a pain.)
- deutronium 11y agoReally?, it's pretty easy in my opinion on Debian/Ubuntu at least. I just installed gcc and use openocd to program. I'm fairly sure I just did "sudo apt-get install gcc-arm-none-eabi" for the compiler. http://libopencm3.org/wiki/Main_Page http://libopencm3.org/wiki/Main_Page is worth looking at too, in case you haven't seen it.
- foldr 11y ago>I just installed gcc and use openocd to program. Come on, there's a lot of 'just' there. It's not too bad if you just want to play with the discovery board, but there's very little documentation on how to use the discovery board as a programmer. The official docs for the discovery board don't give you crucial information about jumper settings, and I ended up having to download some bloated Windows tool from STM just to output a suitable .ld script for the STM32F030K6. I'm sure it's not as difficult as it used to be, but it's vastly less straightforward than setting up an AVR toolchain. To be honest, the page you linked to contains no useful information. I can see that it's some kind of peripheral library. It doesn't look like it does anything in particular that StdPeriph doesn't already do (and 90% of example code uses StdPeripg). Plus the github page warns that the API is unstable. Again, compare to AVR. The arm tools are much better of course, but it's so much harder for a beginner to find answers to simple questions. E.g., can I reset an STM32F0K6 with only two pins using OpenOCD and the STLink programmer on the discovery board? (The answer appears to be yes, but it's not readily googleable.)
- gshrikant 11y agoMaybe 3-4 years ago. With the Launchpad version of gcc for ARM controllers, OpenOCD and gdb, it is a breeze now.
- foldr 11y ago
- ChuckMcM 11y agoI too am often surprised at how often people reach for an Atmel 8 bit AVR chip rather than an ARM. It is a testament to the momentum that Atmel built, the avr-freaks community and the amazing cost effectiveness of it all. But now we're seeing ARM chips with built in clocks, and fewer base components required and I think the end of that AVR dominance is on the horizon. And that is why Dialog is buying Atmel[1]. Getting started with ARM is easy with one of ST's Nucleo boards (which are kinda Arduino Shield compatible, the biggest issue I have hit is that i2c at 3.3v is an issue on some boards). Their Discovery boards are even more capable but can be a bit more work to breadboard with. Once ARM put out a supported GCC on launchpad.net it really made it easy to get a development environment up (no more crosstool or other package for building a cross compiler). [1] http://fortune.com/2015/09/21/dialog-buying-atmel/ http://fortune.com/2015/09/21/dialog-buying-atmel/
- the-dude 11y agoWith a development board: yes. But if you want to do hack something on a breadboard or make your own PCB it is really convenient to have THD ( through hole device ). The ARM used in the article is the only TDH available AFAIK.
- sokoloff 11y agoBreadboard, yes, but if you're making your own PCB, I'd argue that SMD for the micro is easier (not to include BGA, but everything with perimeter pins, I think SMD is easier, even for the home hobbyist). For SMD-only parts, there are SMD to DIP adapters readily available to let you use them on breadboards; for relatively low-frequency digital work, there's no problem using them, so being available in through-hole isn't a practical advantage.
- ChuckMcM 11y agoAnd the "winner" is something like the Teensy which is an SMD part but its mounted on a board that gives it pins like a DIP chip.
- Sanddancer 11y ago
- MissingGear 11y agoAn an electronics hobbyist wannabe, may I please have the links for parts / assembling the 5v to 3.3v circuit needed to power this thing ?
- deleted 11y ago[deleted]
- gte525u 11y agoLook at the application notes for any LDO 3.3V linear regulator i.e., MCP1702. Or you can power it from a 3.3V USB Serial cable...
- durkie 11y agoIf you're interested in a higher-power version, I just used the SC189 3.3V switching power supply in a design of ours. It can supply 1.5A (provided of course your upstream power can too). The datasheet (at http://www.semtech.com/images/datasheet/sc189.pdf http://www.semtech.com/images/datasheet/sc189.pdf) has several example circuits.
- togusa 11y agoIf you've got a breadboard, just grab one of these and plug it into it. http://www.aliexpress.com/item/MB102-Breadboard-Power-Supply-Module-3-3V-5V-For-Solderless/1938037153.html?spm=2114.01020208.3.20.uNNX5j&ws_ab_test=201556_2,201527_4_71_72_73_74_75,201560_9 http://www.aliexpress.com/item/MB102-Breadboard-Power-Supply...
- d9fb698e010974b 11y agoOthers are suggesting power supplies, but I think you can just use a voltage divider from a 5V supply. Like maybe a 2.7K resistor followed by a 5.6K to ground?
- analog31 11y agoIt needs to be regulated, because the microcontroller draws varying amounts of current. But a simple regulator is just a three-legged IC and a capacitor.
- ju-st 11y agoYou can buy Arduinos on Aliexpress for USD1.80[1] and there are no comparable offers for ARM boards. [1] aliexpress.com/item/Free-Shipping-Nano-3-0-Controller-Board-Compatible-with-Arduino-Nano-CH340-USB-Driver/2021663360.html
- togusa 11y agoI bought 5 Arduino Uno R3 clones for $2.39 a piece off AliExpress and they were pretty good apart from shitty soldering on the headers. They fill the "can't be bothered to read the 500 page long datasheet" niche for me nicely. I remember having to get along with datasheets and simple programmers and writing PIC assembly back in the 1990s and I'm glad that time is gone.
- kefka 11y agoThat's not true. They are just hidden. Stm8, $1.28 http://m.aliexpress.com/item/32351992629.html http://m.aliexpress.com/item/32351992629.html Stm32, $3.06 http://m.aliexpress.com/item/1568685935.html http://m.aliexpress.com/item/1568685935.html Edit: my phone did a stupid.
- ju-st 11y agoNice! So there is basically no reason to buy Atmega anymore (for me, at least).
- kefka 11y agoThe only reason is network effect. Most "shields" and devices are tested and libraries made easily available for Arduino/Atmel 324P. Going to ARM means having to rebuild some of your toolkit, or finding it. But again, it's ARM. And the "more expensive one" is 32bit.
- nascentmind 11y agoThere are very good TI Cortex M3 and M4 Tiva Launchpad boards (for $12.99) and for the ultra low power applications the MSP432 cortex M4 launchpad boards (for $12.99) with very good documentation and support.
- analog31 11y agoBut perhaps the largest hurdle is that most of the chips are surface mount devices. This used to be a deterrent for me, but these days I just whip out my ExpressPCB and make a breakout board for the part that I'm interested in playing with. The price is really manageable. Typically my breakout board includes a few basic goodies such as decoupling caps, and a 3.3 V regulator. But I appreciate the simplicity of being able to just breadboard something. One reason that this works so well is the chip has a built-in serial bootloader. That's a nice touch.
- d9fb698e010974b 11y agoThis is really cool. One cautionary thing though. I think that because of breadboard capacitance if you try any sort of high frequency stuff on the breadboard (like >= 10MHz) you'll get all sorts of weird effects. (This is just a breadboard problem that occurs at high frequencies, not an ARM problem). I'm just an amateur in this area, so if someone who is more knowledgeable could confirm or deny with I wrote above that would be great.
- NonEUCitizen 11y ago1. Others estimate higher max frequency. This one's on the high side of estimates: http://dangerousprototypes.com/2011/12/05/breadboard-limitations/ http://dangerousprototypes.com/2011/12/05/breadboard-limitat... [might have to ask EE friends about transmission line termination at those frequencies] 2. See also this video (and comments on video) where they measure: https://www.youtube.com/watch?v=6GIscUsnlM0 https://www.youtube.com/watch?v=6GIscUsnlM0
- fit2rule 11y agoThis thread, which includes contributions from some very skilled ARM hackers, has been a true delight to keep up with lately: https://boards.openpandora.org/topic/5600089-jumping-into-arm-assembly/?page=1 https://boards.openpandora.org/topic/5600089-jumping-into-ar... Jumping into ARM assembly .. with notaz' help!
- Animats 11y agoThat's a nice little part, but it has very limited memory: 32 kB on-chip flash, 4 kB RAM. That's less than some Atmel ATMega-based Arduinos. The Arduino Due (an ARM CPU) has 512 KB flash, 96KB RAM. To get more memory, though, you have to go surface-mount.
- vardump 11y ago4 kB RAM + 32 kB flash is plenty for a lot of projects, assuming it's possible to execute directly from flash. Just attach SPI flash for extra data storage.
- teh_klev 11y agoblue raincoat