View previous topic :: View next topic |
Author |
Message |
bkamen
Joined: 07 Jan 2004 Posts: 1615 Location: Central Illinois, USA
|
|
Posted: Wed Sep 16, 2020 11:08 am |
|
|
Welcome to the group.
It's a long journey - be prepared.
Even though others have said it - I'll just say it again in support of those who have:
Datasheets, Datasheets, Datasheets! Read them. Read as much as you can. Stop - take a break and read some more.
When you're done -- read them a couple more times.
Then download some more from different models (same company) and then maybe different architectures.
This biz is all about filling your head with as much as you can.
You may find you don't like the hardware level. Some people just want to write code.
I helped a friend who was essentially a Windows OS programmer learn to program for PICs and it was interesting to see him get frustrated over aspects he didn't have to deal with at the higher levels. Ultimately, he didn't like the hardware details. He just wanted to write code without worrying about registers and bit mappings. So... he doesn't program for MCUs anymore. That's ok.
Personally, I love the low level design. I also design FPGAs. I can tell you - people who can design FPGAs and then also write code for the MCU/CPU that's driving the FPGA all wrapped in a single person are hard to find. (I design specialized peripherals in the FPGA that don't exist in the real world to do data collection from sensors to some storage via a CPU)
Just be ready for compiler quirks and issues. No compiler is perfect. Sometimes (especially with new devices) you might find a register isn't being set properly.
If you like PIC MCUs, get cozy with the instruction set. It's good to know. I've seen PIC compilers do things poorly or outright wrong. (wanna hear me rant? Ask me about the early days of Microchip's XC8 compiler and the trash it would generate in the form of a .HEX file. Ugh!)
I also like/use RealTerm (and PuTTY for network connected devices and sometimes serial terminals.)
Cheers,
- Ben _________________ Dazed and confused? I don't think so. Just "plain lost" will do. :D |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19546
|
|
Posted: Wed Sep 16, 2020 12:38 pm |
|
|
It's worth saying that a pre-built development board is a really useful starting
point. There are boards out there with things like a serial connection, and
a LCD, and you have the huge advantage of having hardware that is 'known',
and is likely to actually work. Something like the Microchip Explorer 8 for
example, or the CCS Rapid 18 (This has USB rather than serial). These also
have the ICD connector, so with a USB programmer, you can do things like
single step the processor. Though not 'perfect', being able to take things at a
slow rate like this can be quite useful.
Be prepared for how much harder hardware actually is, than it looks as if
it should be. As soon as you start actually 'doing' things with a processor,
you run into the problems of ensuring a good ground, good PSU, and
interference between things. |
|
|
dluu13
Joined: 28 Sep 2018 Posts: 395 Location: Toronto, ON
|
|
Posted: Wed Sep 16, 2020 3:01 pm |
|
|
Ttelmah wrote: |
Be prepared for how much harder hardware actually is, than it looks as if
it should be. As soon as you start actually 'doing' things with a processor,
you run into the problems of ensuring a good ground, good PSU, and
interference between things. |
The very first problem I was put on at this company, I solved with a knife to the circuit board. It definitely isn't all about coding :P
Have fun! |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19546
|
|
Posted: Thu Sep 17, 2020 1:14 am |
|
|
Why do I find myself with a mental picture of an engineer with a large Bowie
knife.... |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1909
|
|
Posted: Thu Sep 17, 2020 5:59 am |
|
|
...That's not an X-Acto knife...
...This is an X-Acto knife! |
|
|
AESPOSITO
Joined: 28 Jul 2020 Posts: 4 Location: Arizona
|
To MCUprogrammer |
Posted: Thu Sep 17, 2020 1:59 pm |
|
|
Good comments in this forum.
To start, get a development board, something simple with
serial UART connection you can connect to a PC with a USB to 232.
Start with small projects to test peripherals.
App notes are helpful, but build your own function and
create a library of files you can use in any project.
Build on top of each to create more complex functions.
You learn by doing. You learn from real applications.
You will find that serial communications routines will often
be the largest sections of code that you create.
As reference, I began coding in 1970 and began embedded
coding later in the 1970's on 4 bit processors with very little memory
so that I had to be very efficient.
Lessons Learned;
Avoid floating point math as that creates problems if used
in any real-life physical or power control systems.
Learn to convert algorithms to integer functions and polynomials.
Your peripherals only understand bits & bytes, not floating point values.
Write modular code, but do not over-nest else problems with
stack and page memory occurs.
Good Luck !
_________________ A Esposito, CEO
Avatar Engineering Corp. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19546
|
|
Posted: Fri Sep 18, 2020 1:17 am |
|
|
Sensible comments. Especially on FP maths!.. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9245 Location: Greensville,Ontario
|
|
Posted: Fri Sep 18, 2020 5:04 am |
|
|
re: the 1970's on 4 bit processors
yeesh, I've got some Intel 8008 CPUs on cards here.....
why ? I don't know...sad thing is they'd probably still run !! |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19546
|
|
Posted: Fri Sep 18, 2020 11:19 am |
|
|
I've still got a board with a 4004....
8008's. Modern rubbish!... |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9245 Location: Greensville,Ontario
|
|
Posted: Fri Sep 18, 2020 3:30 pm |
|
|
Sad thing is I still have 4004 datasheet/programming books....
things were a LOT simpler back then...sigh |
|
|
avatarengineer
Joined: 13 May 2013 Posts: 51 Location: Arizona
|
4 Bitters |
Posted: Fri Sep 18, 2020 4:04 pm |
|
|
Sheesh ! 4004, 8008, Dinosaurs !
in 1978/79, I was 1 of 3 guys at Mattel Toys that created the
hand held electronic games.
The only processors were PMOS and NMOS and they ate batteries.
National COPS-1 (PMOS) was typical 4 bit used because you could run it on a 9V battery and ran at a screaming 400KHz! (-2 was NMOS).
Also used the TI TMS1000 with a whooping 1KB of ROM !!!
With just a few dozen RAM bytes and slightly more ROM,
the goal was to scan keypad switches, light a few LEDs, and drive
a piezo beeper.
Very little I/O so multiplex everything.
Programming was punching in opcodes(hex) into an emulator about the
size of a desk.
You develop much discipline in your firmware.
Minimum build 5 million units produced in the Philipines.
No screwups on hardware or firmware (OTPs) design or scrap cost is enormous !!!
|
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9245 Location: Greensville,Ontario
|
|
Posted: Sat Sep 19, 2020 4:48 am |
|
|
OK, I have to ask .. did anyone spend 'benchtime' with the Motorola ONE bit processor ? I remember it had 16 instructions, so easy to learn, especially when two of them were NOPs ! (0x0 and 0xF) as I recall...
I went down a road of many forks.. PDP8, LSI11,6800,6809, 68HC11, 1802,Z80 then 'deadended' with PICs.
Jay |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Sat Sep 19, 2020 5:08 am |
|
|
I learned Fortran WatFOR on the IBM360-30 using punch cards, designed custom systems with the DEC PDP8, PDP11 and LSI11 using discrete Augat wire wrap panels to build interfaces and, in my spare time, played around with the Motorola MikBug 6800 and 6809. _________________ Google and Forum Search are some of your best tools!!!! |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19546
|
|
Posted: Sat Sep 19, 2020 11:30 am |
|
|
I remember doing one university course, The university had an Atlas.
I had my own system built using the then brand new 68000. The run time
for code was lower on my 'home computer', than on the university one.
(Late 1970's). I managed to interface a second hand daisywheel, and
had a second hand DF32 drive.
Given the 32bit architecture of the 68000, and the Z8000 a little later, it
was quite annoying when the PC began using the 8008 Intel chips... |
|
|
MCUprogrammer
Joined: 08 Sep 2020 Posts: 221
|
|
Posted: Tue Nov 03, 2020 2:01 am |
|
|
Thanks to everyone. I have completed the 1 month C course. And now I'm on the field. You can know everything that explodes and breaks from me. I will give a lot of spirituality to learn. : D But most of all
I will do it calmly, intelligently, and with my logic. I will start step by step without getting bored. I already got my first job. I'm starting. He has a lot to learn from you. Goodbye _________________ Best Regards...
MCUprogrammer
_______________________________
Work Hard |
|
|
|