3vix6 said:
Greetings Everyone!
I'm new to the forum, it was one of the only forums I found with an Electrical Engineering forum.
I've been toying with getting into Electrical Engineering as a hobby and I figure now is as good as time as any to get into it. This is just for fun, it's not for any school work.. I'm just a big nerd that gets excited about this stuff. My goal is to eventually like to get to the point where I could build gaming consoles and computers from scratch based off of ARM or MIPS CPU's.
What would it take for me to start? What kind of Math would I need to brush up on? What would be the best projects for me to start with to learn and understand microprocessors, DSPs, video circuitry, etc? What kind of tools would I need to invest in? What books should I read?
I know I need to crawl before I can walk.. Time is something that I've got.
I'm starting ALMOST from scratch here, so please be gentle!.. (P.S: I do have a BS in Computer Science if that helps) :-)
Thanks,
3vix6
I'm going to tell you my opinion with your end goal that you mentioned in mind. With a CS degree, I'll assume you should already have the skills to fulfill game creation - programming - and any of the graphics math that you need to use in software.
The hardware math doesn't need to get any worse than that for your goal. Its mostly algebra and maybe a little trig. You probably already know boolean algebra and binary, and this is necessary for understanding digital circuits.
I would suggest buying a hardware engineering or computer architecture book and buy an atxmega 32 bit microcontroller dev kit and program it with little projects. Also buy a digital electronics/digital design book. Besides knowing KVL, ohm's law, gaming hardware takes little actual electronics knowledge to put together. Understanding digital timing will be much more important than the details of circuitry. Your main concerns are that you don't violate any of the components datasheets rules (give it its operating voltage, make sure the pins are driving the correct logic levels, etc.). Practice lighting up LEDs or 7-segment displays. Make a program that talks to your com terminal on a computer with RS-232. These are not so hard from a programming perspective, but it helps you to learn about the hardware and the relationship it has to software.
Once you get the hang of programming a dev kit and using all of the hardware peripherals on the microcontroller, start studying the board and schematic of the dev kit more closely. As your projects get more ambitious you will start to expand your dev kit, and then you can begin entering the realm of hardware engineering. There are lots of different chips you use to do the different things. Touch screen controllers, USARTs, etc. all have basic requirements and if you meet these, they will work without needing to know how.
Component level design in digital systems is very easy, and you don't need to do much circuit analysis. Look at reference designs for small gaming devices, and then find every part on the schematic and download its datasheet. You will want to understand as much as you can from the datasheets, as these tell you how to interface your components together. This is probably the most important part.
The only areas you will really be lacking on are:
- PCB design
- Analog design
PCB design is easy and there are lots of guides and free software to do it. They don't even teach this in EE school.
Analog design is tricky, and for you to design power supplies beyond simple LDOs will be more of a challenge than anything above. You can use designs someone else came up with or do as datasheets/application notes suggest to get the hang of it. Again, the important thing to remember is that it must fulfill all of the datasheet requirements of the parts in your system. It has to provide enough current at a determined voltage to all of the parts. If you are going to design a SMPS or some other regulator, you will then need to go back to your physics book, EE electronics books, and other sources to really know what you're doing. Also, you may need to use transistors for switch functions, and so knowing how to make them act like a switch will be useful.
So, you really don't need to know much EE to design a gaming system (or many embedded systems for that matter). To understand how/why all of the components work takes more fundamental EE knowledge, so if that's your true goal then my advice is not as effective. If you are going to make a gaming system that implements wifi or high speed signals, then your job gets harder, but that is well beyond the baby steps we're talking about.