Start learning microprocessors

djsfantasi

Joined Apr 11, 2010
9,237
In a commercial environment, I used the Radio Shack TRS-II, running CP/M by Pickles & Trout. All coding was assembly, whose compiler and linker was provided by P&T.

This was in the 70s. The TRS-II was the only microcomputer that provided 8" floppies.

The Project was a hack. A co-worker wrote an RPG program to read their production orders database, and extract the information to be transmitted by hand with a TWX terminal. Savings here, because we eliminated the manual data entry. The file was written to the 8" floppy.

The floppy was inserted in the TRS-II.

A program then formatted the reports to be sent, using code (BASIC) and a file, that looked like XSL. The format style sheets formatted the data to the specific requirements of the vendors.

The intermediate report files were sent by an assembly program that connected to each vendor, transmitted the report file and closed the connection.

So, even a simple commercial project can use assembly. Also, it used different languages as required.

I agree that the Arduino is a good starting microcontroller. Also, it's an active community. This latter point is illustrated by multiple libraries for common peripherals.
 
Last edited:

MrChips

Joined Oct 2, 2009
34,809
Or the PDP8 for running a CNC machine Lots of 'Fun'
Became the best selling computer in the world after introduced in 1965 and cost $18K !!
Magnetic memory where you could actually 'see' a bit of memory.
Just couldn't do any Stick welding within 10ft of it.:p
Max.
Been there, seen it, done that. My first experience with any kind of computer was programming in Fortran on a CDC 6400 followed by ASM on the same CDC 6400. But I really fell in love with programming when I wrote a chess playing program in ASM for a PDP-8/S. At one point I could recite the bootstrap loader when you had to manually enter it via the front panel switches. I ended up becoming the service technician for many DEC and DG minicomputers.

In my minicomputer class programming the PDP-8/S we had to use punched paper tape to create the programs and enter into the computer. The single Teletype machine we had would sometimes misread the letter "M" and replace it with the letter "N". The solution was to replace all "M" in your variable names to "N". Thus "NUM3" became "NUN3".:)
 

MaxHeadRoom

Joined Jul 18, 2013
30,658
All coding was assembly,
This was in the 70s. The TRS-II was the only microcomputer that provided 8" floppies.
Written to the 8" floppy.
.
I remember back then it was said a computer only needed 1meg RAM as with assembly this would do all you would ever need.!
I always wondered why IBM screwed up the floppy cable interface by introducing their 2 wire twist in the ribbon cable?
The floppy manufacturer's at the time already had it covered with a dip switch to address each floppy.
Max.
 

MrChips

Joined Oct 2, 2009
34,809
I remember back then it was said a computer only needed 1meg RAM as with assembly this would do all you would ever need.!
I always wondered why IBM screwed up the floppy cable interface by introducing their 2 wire twist in the ribbon cable?
The floppy manufacturer's at the time already had it covered with a dip switch to address each floppy.
Max.
The PDP-8/S had 4096 words of memory.
The first 5¼" floppies held 110KB of data.
 

JohnInTX

Joined Jun 26, 2012
4,787
I also started by hand-coding the i4004 in the mid-70's. A company called Pro-Log in Monterrey, CA was started by Matt Biewer and Ed Lee, a couple of engineers who couldn't believe you needed a $10K Intellec system to work with a 16 pin DIP. They invented a system using a coding sheet table with 32 lines of hex addresses with columns for label, opcode, operand, comments etc. You would write in the opcode and operand then look up the hex code on a card. Address resolution was by looking at the hex address of labels and poking them into the operands. Once that was done, you had a list of hex values to poke, line by line, into a 1702 EPROM and hope it all worked. Edits were done by cut and paste - literally. Cut the good code from a sheet and paste it onto another sheet. That usually meant some re-coding as addresses changed. It also meant that after a few generations, the code was pretty much spaghetti.

But, while hand coding was roundly denigrated by software types (and those selling $10K Intellec systems), it got a lot of hardware logic guys acquainted with the software side of things and after a few projects, drilled into us the value of careful design, desk-checking and modular programming. A bonus was the learned ability to mentally disassemble hex code from a memory dump back into assembler language a most useful skill when trying to figure out how a compiler or library is making code.

A side note: the arrival microprocessor caused many turf wars between the software/mini computer guys and the hardware logic designers. The software guys had their domains where they reined supreme and controlled access to the power of computing. They saw the microprocessor as a threat to their domain and wanted control of all things software, micro or not. The hardware guys were tired of wiring up hundreds of chips to do logic and if it meant getting by the high-priests of the computer room to learn some software, so be it. The results were predictable - projects designed by the software group had lousy hardware and those designed by the hardware group had laughable software. Eventually, reason prevailed and we got some good things done hand-coding and all.

But when I moved on to head a design group for a new company my first act was to drop $20K on a FutureData AMDS2300 development system with ICE, 48K RAM and dual 8" Shugarts. Pedal-to-the-metal.. adios code-sheets!
 

OBW0549

Joined Mar 2, 2015
3,566
My first experience with any kind of computer was programming in Fortran on a CDC 6400 followed by ASM on the same CDC 6400.
That pretty much mirrors my own experience, in school at the University of Colorado in 1975 doing Fortran on the school's CDC 6000 machine. IBM Model 29 keypunch machines. Card decks. The "Turnaround Time" cardboard clock on the operator's work table. Big fanfold printouts, some including core dumps in 20-digit octal. Some poor guy in the corner, crying because he'd accidentally dumped his boxful of punch cards, hundreds of them, onto the floor.

And then there was the guy who'd submit his deck to the operator, note the Turnaround Time clock, then take the elevator downstairs to the Student Union cafeteria and do homework over a couple of hamburgers; then he would go back upstairs to the Computer Center, go through his printout to check errors, correct the mistakes by punching a couple of new cards on the 29, and re-submit his deck. Then back downstairs for more hamburgers and homework. Rinse and repeat, all day long. Over the course of our Sophomore and Junior years he ballooned from 140 lbs. to nearly 400 lbs.

And then, CU installed a row of eye-popping, brand-new Tektronix vector-graphic terminals. Graphics! And BASIC! And a Star Wars game! Interactive! Mr. Hamburger changed his routine: now addicted to Star Wars, he'd be the first person to show up in the Computer Center in the morning and sit down at one of the terminals, and wouldn't budge-- not even to take a whiz-- until they kicked everybody out at 11:00 pm. No more hamburgers, and he went from just under 400 lbs. at the beginning of our Senior year down to barely 100 lbs. by the end. No more homework, either, so he ended up flunking out. Poor sod.

Ah, yes-- the Salad Years, when we were green...
 

MaxHeadRoom

Joined Jul 18, 2013
30,658
In my minicomputer class programming the PDP-8/S we had to use punched paper tape to create the programs and enter into the computer.
I used one of those to reload the program on the production floor after a welder had wiped it, I ended up getting a blank edge connector card and populating it with a LSI USART for RS232 loading.
Max.
 

Thread Starter

ray242

Joined Nov 27, 2016
44
Like you, my first experience with microprocessors was having to program an RCA 1802 by hand with pencil and paper and programming a 1702 UV-EPROM. When your code didn't work you had to wait 45 minutes in order to erase the UV-EPROM with a UV lamp. Progress was slow.

For a new EE student, my recommendation would be to learn ASM first. It doesn't matter which MCU you select. Just jump in and get your feet wet.

My personal choice would be one of the following platforms, in no order of preference:

Atmel AVR (now owned by Microchip)
Freescale 9S08 (now owned by NXP)
TI MSP430 Launchpad (still owned by TI)
I happen to have the mbed-NXP-LPC11U24 of ARM, can it be a good starting point?

Thank you for your help!
 

OBW0549

Joined Mar 2, 2015
3,566
A side note: the arrival microprocessor caused many turf wars between the software/mini computer guys and the hardware logic designers. The software guys had their domains where they reined supreme and controlled access to the power of computing. They saw the microprocessor as a threat to their domain and wanted control of all things software, micro or not.
Where I was working, the turf wars commenced not with the arrival of the microprocessor, but with the arrival of IBM PCs on the desks of engineers in the Engineering Department, and it amped up to a full-scale nuclear exchange with the advent of Lotus 1-2-3, which the Data Processing Department viewed as a mortal threat. Likewise with the Word Processing Department and the arrival of Microsoft Word.

But as for using microprocessors in our line of industrial control systems, I don't recall any big objections from the Computer Priesthood.
 

OBW0549

Joined Mar 2, 2015
3,566
I happen to have the mbed-NXP-LPC11U24 of ARM, can it be a good starting point?
How big is the user base of the LPC11U24? One thing that is going to be very important in the beginning is how much support is available from fellow users. If only a small number of people are using the LPC11U24, you are going to be at a disadvantage compared to starting out with an Arduino, because the Arduino/ATMEGA328P user base is absolutely enormous, and the Arduino forums can provide a lot of assistance.

So no, I wouldn't choose the LPC11U24 as a starting point.
 

Thread Starter

ray242

Joined Nov 27, 2016
44
How big is the user base of the LPC11U24? One thing that is going to be very important in the beginning is how much support is available from fellow users. If only a small number of people are using the LPC11U24, you are going to be at a disadvantage compared to starting out with an Arduino, because the Arduino/ATMEGA328P user base is absolutely enormous, and the Arduino forums can provide a lot of assistance.

So no, I wouldn't choose the LPC11U24 as a starting point.
Thank you, I am going to start with ATMEGA328P. Is it better to buy an evaluation board or just the controller and build up my own stuff on a breadboard ? (As described in https://www.allaboutcircuits.com/pr...he-atmega328p-and-attiny45-in-atmel-studio-7/)
 
Last edited:

OBW0549

Joined Mar 2, 2015
3,566
Thank you, I am going to start with ATMEGA328P. Should I buy an evaluation board or just the controller and build up my own stuff on a breadboard?
Just get an Arduino Uno R3 and work with it for a month or two. Then go on from there. I can't advise you to build your own setup on a breadboard, because I have no idea what your level of experience is.
 

dendad

Joined Feb 20, 2016
4,637
The Arduino Uno R3 is a good start. You do not have to use the Arduino IDE, just get an Atmel programmer and re-flash the ATMEGA328P directly in whatever code you want. But it will be hard to beat the price for an Arduino board for just the hardware. And it than opens up a great range of plug in addon boards.
One of my products has an Arduino Mini Pro soldered to the custom PCB as I can't buy the processor, regulator, crystal and support parts for the price I can get the complete Arduino for.
I've a of breadboard set up on a box that has a power supply, pot, LCD and switches in it. All available to plug into as needed. If you are able to build such, it is very handy.
 
Top