Commit cbcad65d authored by Jake Read's avatar Jake Read
Browse files

think done

parent 0258e709
...@@ -37,11 +37,11 @@ Depending on your chip, you'll need to find a programmer (device, i.e. the Atmel ...@@ -37,11 +37,11 @@ Depending on your chip, you'll need to find a programmer (device, i.e. the Atmel
While microcontrollers *include* tiny processors, they interface with the world with auxilliary circuits called **peripherals**. We can think of these like little bundled ASICs (application specific integrated circuits) that offload time-sensitive work from the processor. These also perform level shifting and current carrying capability. While microcontrollers *include* tiny processors, they interface with the world with auxilliary circuits called **peripherals**. We can think of these like little bundled ASICs (application specific integrated circuits) that offload time-sensitive work from the processor. These also perform level shifting and current carrying capability.
![die](XC2C32A_die.jpg) ![die](images/XC2C32A_die.jpg)
Here's the diagram for an XMEGA Here's the diagram for an XMEGA
![xmega](xmega-blocks.png) ![xmega](images/xmega-blocks.png)
Some common peripherals: Some common peripherals:
- [PORT / PIN for digital logic (high, low, input)](https://www.instructables.com/id/ATTiny-Port-Manipulation/) - [PORT / PIN for digital logic (high, low, input)](https://www.instructables.com/id/ATTiny-Port-Manipulation/)
...@@ -54,7 +54,7 @@ Some common peripherals: ...@@ -54,7 +54,7 @@ Some common peripherals:
If we imagine peripherals to be little machines that the processor operates, we can think of registers as *memory locations whose bits are switches* for those machines. This is a bit odd, but I find it a useful metaphor. When we write into register locations, we are switching these bits on and off. If we imagine peripherals to be little machines that the processor operates, we can think of registers as *memory locations whose bits are switches* for those machines. This is a bit odd, but I find it a useful metaphor. When we write into register locations, we are switching these bits on and off.
![handles](register.png) ![handles](images/register.png)
So! Figuring out which registers to read / write to is where we come to the datasheet. These provide extensive information on which registers do what, what order they need to be configured in, etc. So! Figuring out which registers to read / write to is where we come to the datasheet. These provide extensive information on which registers do what, what order they need to be configured in, etc.
...@@ -66,9 +66,26 @@ So! Figuring out which registers to read / write to is where we come to the data ...@@ -66,9 +66,26 @@ So! Figuring out which registers to read / write to is where we come to the data
Is a PITA, but hugely enabling. Here are two guides: [one](https://www.egr.msu.edu/classes/ece480/capstone/read_datasheet.pdf) and [two](https://www.sparkfun.com/tutorials/223). Is a PITA, but hugely enabling. Here are two guides: [one](https://www.egr.msu.edu/classes/ece480/capstone/read_datasheet.pdf) and [two](https://www.sparkfun.com/tutorials/223).
## CBA Examples
- [XMEGA: friendly, powerful](https://gitlab.cba.mit.edu/pub/hello-world/xmega)
- [NRF52: native wireless, fast ARM-core](https://gitlab.cba.mit.edu/pub/hello-world/nrf52)
- [ATSAMD51: 120MHz ARM M4, Adafruit Love](https://gitlab.cba.mit.edu/pub/hello-world/atsamd51)
- [ATSAMS70: 300MHz ARM M7](https://gitlab.cba.mit.edu/pub/hello-world/atsams70)
## Other Architectures ## Other Architectures
- PSOC ### PSOCs
- FPGAs
Programmable Systems On a Chip are somewhere between FPGAs and Microcontrollers. They typically contain a microcontroller core with adaptable / configurable sets of peripherals. Very cool. Graphical language mixed with c code.
![psoc](images/psoc.png)
### FPGAs
FPGAs are reconfigurable everything-s.
![fpga](images/fpga-architecture.png)
https://gitlab.cba.mit.edu/jakeread/coclocking [tinyfpga](https://tinyfpga.com/)
\ No newline at end of file [fpga4fun](https://www.fpga4fun.com/)
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment