4 ms·
Adjacent topic: how does someone with strong computer science algorithm start designing pcb’s? Like if I wanted to, say, create a computer which randomly added
by gallerdude 4y ago
Adjacent topic: how does someone with strong computer science algorithm start designing pcb’s? Like if I wanted to, say, create a computer which randomly added together integers and displayed them on an LCD, where would I even start to learn how to do that?
- bsilvereagle 4y agoThe MOOC nand2tetris was designed exactly for this purpose. https://www.nand2tetris.org/ https://www.nand2tetris.org/
- r2_pilot 4y agoIt depends on what you mean by a few things, but a basic approach I'd take if you wanted this specific scenario would be to pick a microcontroller like arduino or raspberry pi(zero), pick a compatible screen, then design the board so that they're connected electrically. You may want to start with through-hole and breadboards first, as it's easier to get into than SMT.
- mch82 4y agohttps://sparkfun.com https://sparkfun.com tutorials. The key is to think of electronics components like functions. Each component has inputs and produces outputs. PCBs aren’t a necessary step unless you want to make many copies of your work. They basically reduce the wiring you need to do & allow for a more compact circuit than a breadboard.
- samtho 4y agoFirst, pretty much everything in the lite-hobby space is done with microcontrollers, Arduino being the most mature ecosystem. Arduino is a really fancy wrapper/standard around the AVR ATMegas, I would start here. Arduino is an Open Source project so many manufactures create an Arduino-compatible board, but i do recommend supporting them and buying your first Arduino UNO from them directly if you are able to. Arduino provides software and an easy way to interface with pinouts. Start by doing some of the sample projects and tutorials, you'll pickup some basic electrical theory along the way. Next, you will eventually ask the question of how to make a production board, where you may go down the rabbit hole of programming the AVR directly (the microcontroller), which I recommend as a jumping off point into raw microcontrollers and using an ICSP which an Arduino UNO can also do for you. Somewhere along this path, you will want to gather some more advanced knowledge of circuits and DC fundamentals. Pick up a set of 7400 logic chips and learn how logic gates work from the lowest level possible as well as op-amps, comparators, etc. You'll find every chip (IC or integrated circuit) speaks in either a protocol/bus or just logic levels (pins going high or low). When more than a bit or so of data is required to be transferred, ICs will implement a general-purpose digital interface like I2C (most common), SPI, or UART. There are some additional ones like I2S (for audio), 1wire (for one wire communication), CAN bus (what your car likely uses), and there are some more advanced ones like PCI (the same kind bus your PCI slots in your computer uses), MII (media independent interface), etc. Most of the time, you are just connecting together devices on a bus (for example I2C can support multiple devices because it's addressed) or finding ways to convert one to another (for example, you might want to communicate in RS232 via your UART bus). There is also analog which is a whole different beast. This is all a big simplification, but honestly it's not that unapproachable these days, just start small and build from there.
- dylan604 4y agoThis pretty much how I started. Lots of prototypes built on stock Uno and available shields to do different things. At some point, the sandwiching of shields and the form factor alone requires ugly enclosures that scream PROTOTYPE!!! I was then shown how to draw up a custom PCB that puts everything you need onto a board specific to your needs. Had it not been for the stock shields in the Arduino world, I probably never would have gone down the rabbit hole as far as I did. That's meant as a compliment.
- II2II 4y agoStart with breadboards. If you are interested in approaching it from an algorithmic level, the easiest route would be to use 7400 series logic and start with the very basic stuff first: how to make an adder using switches as the input and LEDs as the output; then step it up to use shift registers as rudimentary memory to store the input and output; then figure out how to decode the output shift register to display the result in hex on 7-segment displays. Along the way you will learn about things like Karnaugh Maps and timing circuits. Beyond that is outside of my experience, but building CPUs seems to be a bit of a hobby these days. I have found Ben Eater's videos to be enlightening. I think he built a CPU at one point, but even the tutorials using a 6502 are useful since he reasons through the construction of supporting circuitry. I haven't watched much of James Sharman's work, but he is building a CPU and carrying it through to the PCB stage. The videos I've watched (related to producing video signals) included reasoning through the design process. EDIT: I'm not suggesting the microcontroller route since it sounds like you want to explore how to build a CPU. A microcontroller is a CPU with integrated memories and peripherals, which is too high level. (Granted, if you aren't interested in a particular aspect of CPU design you can use a microcontroller to fudge it.)