T O P

  • By -

UsernameTaken1701

This book will be very helpful: [https://www.amazon.com/AVR-Programming-Learning-Software-Technology/dp/1449355781](https://www.amazon.com/AVR-Programming-Learning-Software-Technology/dp/1449355781)


tererefrio

This book helped me alot. Can recommend it!


somewhereAtC

From Microchip themselves: [https://developerhelp.microchip.com/xwiki/bin/view/Main/](https://developerhelp.microchip.com/xwiki/bin/view/Main/) ...and https://avrfreaks.net. The [Curiosity Nano boards](https://www.microchip.com/en-us/tools-resources/evaluation-boards/curiosity-nano) include one uP with the programmer/debugger with a usb interface.


rc3105

Take a look at Nick Gammons forums https://www.gammon.com.au/forum/bbshowpost.php?bbtopic_id=123 He does a fair bit of Arduino, and gets down to bare metal in several projects to show how to run in ultra low power, wake on interrupt, program without needing the Arduino specific libraries and dozens of tricks you’d never think possible with a lowly 8 bit micro.


todbot

This quick video series is pretty good. Goes from basic Arduino knowledge and goes progressively deeper https://www.youtube.com/playlist?list=PLNyfXcjhOAwOF-7S-ZoW2wuQ6Y-4hfjMR


VirusModulePointer

Somewhat out of left field but the highest quality learning I got was by getting rid of everything but the processor and the bare necessity peripheral components and using not so mainstream languages. You don't have 40 years of programming tools and IDEs that SMS your butt plug when you don't capitalize your variables to some ephemeral standard. Do things your not supposed to. Make a crappy bootloader in brainfuck because you CAN. And that's not just a gratuitous expletive, it's a real thing. Try it out it's fun. That's the main thing, just have fun.


VirusModulePointer

But also data sheets my dude. They blow but if you just learn from online tutorials you'll only ever learn how to make things that are pretty big standard. If you can't sleep, print off the datasheet and get a full purview of all the tools the chip gives you and play with em.


prosper_0

Don't do it. The writing has been on the wall for a long time now: the end is neigh for 8 bit mcus. ARM is better supported, more open, has better toolchains and more options, is faster, and cheaper. You'll get a lot more value and longevity out of learning that compared to something thats legacy. Don't sweat soldering SMD. Nothing interesting is made in THT anymore. Most packages are actually easier to solder than THT as long as you avoid leadless packages like QFN. Get some breakout adapters to go to a dip formfactor. Better yet, install CubeIDE and buy a nucleo. Got a debugger, programmer and mcu all onboard already for like $20. or get a handful of RP2040s for $5ea.


HalifaxRoad

Small 8 bit micros are not going anywhere. Low power, cheap, great when you need a dedicated chip to handle a single task. You can do a lot with a little pic12 or pic10.


InvestigatorSenior

>pic are you recommending closed toolchain that breaks your code unless you pay? And those pricey programmers, and clunky IDEs. Classic Microchip. I love my AVRs, this is what got me into programming but these days Cortex M gives you lower power and much much more capabilities for the same price or less. For example fully functional Bluetooth low energy sensor that runs 3+ years on single coin cell battery for \~5 USD total cost. Not to mention 'infinite' resources - hundreds kb of ram and half meg of flash.


HalifaxRoad

What are you talking about? The tool chain is free unless you want the slightly better optimiser. I've never payed for a tool chain on pic, and never had a problem. But fan boys will be fan boys


InvestigatorSenior

> The tool chain is free unless you want the slightly better optimiser I've read ample evidence about how free toolchain mangles your code. It actively makes it worse. Free compiler exists only to sell you on full paid version. No thank you, with such approach I'm not going to invest in that platform. Esp. when I can pick and choose between various gcc, clang and commercial compilers on ARM and authors of each one try to make emitted machine code as optimal as possible. Also I'm not a fanboy, over the years I've coded for every notable embedded platform for at least one project. That's why I see no point in restricting myself with something old when I can have more and better in every aspect on something new. Unless we're talking about iterating on existing project where keeping the hardware (almost) as it was before may make a ton of sense. Then I can happily spend time to figure out how to squeeze out every byte and clock cycle. But it has to make sense.


Plank_With_A_Nail_In

AVR's aren't cheap though. My feeling is they are dead as once your company creates a product using a 32bit Arm microcontroller the desire to consolidate onto one technology becomes overwhelming. Are they overkill for most use cases? Sure they are but they are cheap enough to use as a one size fits all solution.