TomGeorge:
What do you want to do with the microcontroller?
What is your electronics, programming, arduino, hardware experience?
Depending on what you want to do, will govern what parts of the sheet you need.
What I want to do with the uC is not really what's driving this question. I'm just curious about (1) who reads the datasheet, (2) what data they find relevant (what their intentions are when referencing a data sheet) (3) typical data flow that are a part of common uC operations (writes to prog mem, program execution).
I'm curious about (1) because I'm a "computer systems engineering" student (a program that combines courses from both EE and CS), aspiring to be an embed engineer. I'm also an electronics hobbyist.
We don't do double the workload (as one would if you double-majored) but, at the sacrifice of some depth, we gain a broader perspective of a system.
In particular, my core course load included:
- Basic circuits analysis
- Intro to the math behind DSP, DSP, & stochastic processes
- Intro to digital logic & computer architecture
- Some labs that required us to find info. on MIDI specs and exposed us to the workflow of programming an FPGA (we used a Terassic dev/edu board).
- My course electives: Feedback of Dynamic Systems, Data structures & Algorithms, Algorithms (a more formal treatment of algorithms), Intro to CS Logic (the material that teaches you the fundamentals of how to think like a computer scientists that sets you up to write proofs)
With those courses under my belt, I can "identify" some elements in an ATMega datasheet but understanding how they work together is more involved, especially since the components aren't "broken out" and everything is hidden on a tiny 28-pin package. For the components that I can't identify, the datasheet does a good job explaining what they are but it doesn't provide examples of their use (like the "example" problems in a calc book).
TomGeorge:
What is your electronics, programming, arduino, hardware experience?
Depending on what you want to do, will govern what parts of the sheet you need.
Basic knowledge of electronics - enough to identify discrete components - but not really enough to "understand" the function of small (5-6 discrete components + some transistors) circuit topology, especially if they involve BJTs/MOSFETs. I can probably write an equation and draw you a plot of a voltage at some node in some circuit for a given driving input voltage but I'll likely make some mistakes.
I've written enough programs to understand the basic elements of a programming language (variables, scoping, control loops, program flow/functions, data structures, bit-operations, pointers, classes). C/C++, Java, Bash Scripting, Python (just started), Matlab (a little bit of DSP), little HTML & CSS, Processing. There are some "more advanced" fundamental topics about C/C++ that I haven't learned. I've heard of but don't know design patterns, code refactoring, organization, and website programming.
I think I'm a bit beyond using the arduino as a platform for "artists and beginners". I find myself more curious about the C/C++ code libraries that abstracts communication with the digital components on the ATMega.