diff --git a/README.md b/README.md index b3a00141e52b97e5442550ddd9e2eefc929a24b4..5b4c1b7da2b7f9bd108cf116b51244459e7da1e3 100644 --- a/README.md +++ b/README.md @@ -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. - + Here's the diagram for an XMEGA - + Some common peripherals: - [PORT / PIN for digital logic (high, low, input)](https://www.instructables.com/id/ATTiny-Port-Manipulation/) @@ -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. - + 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 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 - - PSOC - - FPGAs +### PSOCs + +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. + + + +### FPGAs + +FPGAs are reconfigurable everything-s. + + - https://gitlab.cba.mit.edu/jakeread/coclocking \ No newline at end of file +[tinyfpga](https://tinyfpga.com/) +[fpga4fun](https://www.fpga4fun.com/) \ No newline at end of file diff --git a/images/fpga-architecture.png b/images/fpga-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..107d07a6769577d486e7334679fbe1f70decd92a Binary files /dev/null and b/images/fpga-architecture.png differ diff --git a/images/psoc.png b/images/psoc.png new file mode 100644 index 0000000000000000000000000000000000000000..625fd4746ca0af2d7859bd4d332c10073720cf10 Binary files /dev/null and b/images/psoc.png differ