While studying B Tech 8051 is the controller used in the course syllabus.
While 8051 is very fundamental and helpful to understand the basics, it is quite old and not always industry relevant.
It's said to learn something, the best way is to make it. After a lot of exploring I decided what better way to learn ARM is to make a development board. This would expose us to most of the interfaces of the controller while also providing us with exposure to essential skills like schematic design, PCB manufacturing and SMD soldering.
There are a lot of development and evaluation boards but they were not aimed to supplement the uC course at bachelor level, where the students are beginners with none to little experience.
My intention with this board something with separate breakouts for various interfaces like I2C, SPI and also peripherals using those.
Files
sch.pdf
Adobe Portable Document Format -
1.32 MB -
11/22/2019 at 16:02
I'd say count yourself lucky that you worked on a practical, if indeed archaic example. My own experience was with the 68HC11 (which is far further out of production than the 8051). Although valid, I don't know that a completely simulator-oriented introduction to concepts like assembler can be as instructive as the literal hands-on architecture experience provided by even these older CPUs. In fact, though schools often focus on only one option, the advantage of learning the abstract alongside both the older Motorola or Intel implementations can be instructive. Having also used the STM32 development board during my education I would argue that the instruction set complexity has less direct applicability to an introductory assembler or architecture program. Have you considered RISC-V or were you just trying to get to anything more modern? The complexity of STM32, though certainly powerful, probably makes it less than ideal as an introduction to basic assembler concepts. (Of course, one thing an STM32 board could definitely do would be to run a virtual environment for something like LC-3, another consideration for you) Good luck!
Popular is an understatement and when it comes to availability you made a GREAT selection: the STM32 is, for the power, cheap and ubiquitous! One application to consider for the STM32 would be real-time operating systems as software like FreeRTOS is free (beer/gratis) and fairly permissive (free speech/libre). From there you would likely gain a solid footing to decide where you want to go next. Warning: I'm biased in part as this was my own approach when learning the STM32 platform...
Great to see this helping out someone, considering this is close to heart and I'm not getting time to really work on this, and take this where I wanted it to.
I'd say count yourself lucky that you worked on a practical, if indeed archaic example. My own experience was with the 68HC11 (which is far further out of production than the 8051). Although valid, I don't know that a completely simulator-oriented introduction to concepts like assembler can be as instructive as the literal hands-on architecture experience provided by even these older CPUs. In fact, though schools often focus on only one option, the advantage of learning the abstract alongside both the older Motorola or Intel implementations can be instructive. Having also used the STM32 development board during my education I would argue that the instruction set complexity has less direct applicability to an introductory assembler or architecture program. Have you considered RISC-V or were you just trying to get to anything more modern? The complexity of STM32, though certainly powerful, probably makes it less than ideal as an introduction to basic assembler concepts. (Of course, one thing an STM32 board could definitely do would be to run a virtual environment for something like LC-3, another consideration for you) Good luck!