1 / 32

EECS 473 Advanced Embedded Systems

EECS 473 Advanced Embedded Systems. Bonus lecture Bootloaders, processors vs FPGAs, and PCB wiring issues. Bootloaders. One thing that we haven’t covered in class is how to program a new chip. Development boards, such as the Arduino, allow you to program the processor.

teressa
Télécharger la présentation

EECS 473 Advanced Embedded Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EECS 473Advanced Embedded Systems Bonus lecture Bootloaders, processors vs FPGAs, and PCB wiring issues.

  2. Bootloaders • One thing that we haven’t covered in class is how to program a new chip. • Development boards, such as the Arduino, allow you to program the processor. • Most processors have a mechanism for programming the chip

  3. Default programming method • Processors need to have some kind of default programming method. Many work hard to make it difficult to enter programming mode on accident • That would be an ugly failure mode.

  4. PIC18 example • Drive the MCLR pin with the programming voltage (generally 13V) • Program using clock and data (PGC and PGD) • There is also a lowvoltage programmingmode on some PICS • Can use 5V to program. • Wastes pin, why? • Or clock a special 32-bit pattern via PGC/PGD to enterprogramming mode http://www.best-microcontroller-projects.com/pic-icsp.html

  5. JTAG programming • JTAG was originally a port that could be used to do “boundary checking”. • That is, checking to see if the PCB connections between devices were correct. • Could walk each pin and see if it was connected to what it was supposed to be connected to.

  6. JTAG continued • Could even use JTAG to test connections between devices. • Darn handy automatic way of looking for wiring errors (bridges, etc.) • Pretty good overview (which seems largely correct and is well written) at http://blog.senr.io/blog/jtag-explained • Though it’s largely about hacking a device via jtag.

  7. A lot of devices allow you to program them via the JTAG port • Not much to add other than each device tends to be a bit different. • TI has a nice document here: • http://www.ti.com/lit/ug/slau320x/slau320x.pdf • FPGAs also often are programmed via the JTAG port. • http://microblog.routed.net/wp-content/uploads/2006/11/xilinx-jtag.pdf • Exact scheme and information tends to vary wildly by manufacturer and often by processor/FPGA family. • Basically opens up a programming/debugging window to the hardware.

  8. How else can you program a device? • Well, you could program the device once with a program that waits for data input on reset. • If it sees the data, it programs the chip with said data. • If not, it just runs whatever program it has. • Called a bootloader.

  9. Bootloader overview • Bootloaders are fairly simple • Generally wait for input on some serial port • If no input, timeout and jump to application • Otherwise program chip with incoming data. http://www.microchip.com/stellent/groups/sitecomm_sg/documents/devicedoc/en558478.pdf

  10. Some bootloaders are very complex • Intel has a whole set of bootloader development kits. • Lots of components to turn on. • Lots of configurations to walk through • In part due to backwards compatibility of x86. • The “minimal bootloader” documentation is 25 pages long and discusses: • Reset vector handling, preparation for memory initialization, memory initialization, post memory initialization, interrupt enabling, processor intterup modes, timers, caching, I/O devices, and more. https://www.cs.cmu.edu/~410/doc/minimal_boot.pdf http://www.intel.com/content/www/us/en/intelligent-systems/intel-boot-loader-development-kit/intel-bldk-initialization-firmware-development-solutions-toolkit.html

  11. Moral of the story • When designing a PCB, you need to be sure you can program your chip. • In some cases it makes sense to program the chip with a bootloader before you solder it. • In some cases you need special programmers. • SPL has PIC and Atmel programmers. • Often require special voltages or other magic.

  12. An overview of embedded processors Microcontrollers, DSPs, System-on-a-chip (SoP), ASICs and more

  13. Processing unit overview Where to start? • When designing an embedded system, one key question is: • “What processor should I use?” • Obviously the answer depends on a massive number of factors. • CPU computational power needed • And even the type of computational power needed • Interfaces needed • Cost • Power • Expected design time • Debug capabilities • Current familiarity with tools • Etc.

  14. Processing unit overview Highest level: ASIC, off-the-shelf processor, FPGA • These three categories are pretty straightforward and mostly non-overlapping. • An ASIC is an Application Specific Integrated Circuit. • You are “spinning” a chip designed specifically for your application. • Manufacturing costs are a bit difficult to figure out • MOSIS would charge $10,000 for an extremely small chip (40 chips, 1 square mm each) in a very large (700nm) process. • I’ve seen groups pay prices of $50K for a couple of larger ARM-based chips. • Design costs are yet more. • I know one company spending “high single-digit millions” for the design and manufacture of a few thousand chips • Of which they will probably only use a few hundred. • So: • Pros? • Cons?

  15. ASIC ASIC • Not a lot to say here, each case is, by definition, different. • A lot of embedded systems work is with ASICs these days. • The (vast?) majority of cell phones use in-house designed processors, 95%+ of which are ARM based. • The iPad uses an ASIC. • What’s interesting is how design costs generally dominate over the one-off mask costs • Not that mask costs aren’t a major factor. • You really want to avoid respins… • If you have a large market, need decent performance and are highly power constrained • ASIC is clearly the way to go.

  16. Processing unit overview Highest level: ASIC, off-the-shelf processor, FPGA • An off-the-shelf processor is one that has been manufactured by someone else. • This doesn’t mean that the processor isn’t highly specialized. • There are chips designed just for printers for example • the HP Unity is MIPs based, ½ GHz, ½ Gbyte standard • Pros? • Cons?

  17. Processing unit overview Highest level: ASIC, off-the-shelf processor, FPGA • You all know what an FPGA is. • But when would you choose to use one in an embedded system? • Even if it isn’t in your embedded system, why else might an FPGA be helpful to embedded system designers? • Pros? • Cons?

  18. FPGA FPGA • There can be quite a bit of feature difference between the different FPGA choices. • You can find FPGAs for as little as $10 and as much as $3000. • Some use non-volatile memory, others need external help on power-up.

  19. Processing unit overview But at this high level, things are fuzzy • Sometimes an FPGA and off-the-shelf processor are integrated. • Actel in 373 • Cypress Semiconductor • Their fabric is generally a bit less flexible than an FPGA, but easier to work with. • And many ASICs are based on standard “off-the-shelf” architectures • ARM being the most common these days • MIPS was similar at one point.

  20. Off-the-shelf What device options are there? • One fun part about this is that there are a number of terms used to describe the options, but they aren’t very well defined. • For example, what’s the difference between a microprocessor, a microcontroller and a System-on-a-Chip (SoC)? • It’s really not clear • One axis is that a SoC is expected to have a richer set of peripheral interface capability More peripherals and interface capability SoC Micocontroller Processor

  21. Off-the-shelf However the terms also carry other connotations • For example, in the “CPU-capability” axis microcontrollers are generally thought of as being very limited, generally in the 1-30 MIPs range. • And correspondingly, the microcontroller is expected to have lower power needs. • So keep in mind that terms aren’t always well-defined! Processor SoC Micocontroller CPU-capability

  22. Off-the-shelf So… • While those terms (SoC, Microcontroller, Processor) are commonly used • They aren’t all that well-defined. • None-the-less, we are stuck with them • So let’s explore a bit…

  23. Off-the-shelf Microcontroller • The AVR processor is an example of a microcontroller • Flash, SRAM, EEPROM • 6-30 GPIOs • 4-20MHz • Basic serial I/O capability

  24. Off-the-shelf Example SoC: Cypress PSoC3: CY8C38

  25. Off-the-shelf Example SoC: Cypress • It looks similar to the AVR processor • A bit faster for sure, but when you are advertising multiply and divide… • Power: • How long would a 2000mAh battery be able to keep this thing running? • But it’s peripherals are much more significant. • 68 GPIOs, • Highly configurable on the fly. Can have: • Built-in hardware blocks for FIR/IIR filters @67MHz • Has 4 built-in op-amps (less parts on board) • Can directly interface to a capacitive touch screen

  26. Off-the-shelf Just the analog…

  27. Off-the-shelf Processor • When people discuss processors they often mean something like a desktop CPU. • Power in the 20-200W range for example, but speeds in the 2-3 GHz range. • However there are things like the Atom core (which, Intel markets as a SoC…)

  28. Off-the-shelf Intel AtomWhat looks different?

  29. Off-the-shelf What type of specialized off-the-shelf processors are there? • Generally speaking, you are looking at either • CPU instructions and features focused on improving performance on a specific type of application • DSP and encryption both have very specific needs. • Specialized I/O. • So CAN bus (standard automotive shared serial bus) • Capacitive touch screen interfaces

  30. A bit on power • There are a lot of things we could talk about with respect to power issues. • Easiest to screw up are probably ground issues • We think of “ground being ground” but wires on our board that claim to be ground aren’t exactly at the battery/Power supply ground. • Further, EMI/EMC issues can exist.

  31. Care with grounding • Return paths. • Ground isn’t ground. • This is an important rule. • Say that “A” is a processor 3.3V@100mA and “B” is a motor 12V@10A. • Say that the wire between A and the power supply has a resistance of .05Ω(1 oz/ft2, 20 mil, 2 inch) • What is the voltage at A’s ground? 3.3V 12V 0.1A 10A 0.05Ω

  32. Ground loops • Basic theme: • Use a ground plane. • Be sure the plane runs under any high-speed signals. • If you can’t use a ground plane, be sure your high speed signals have a return (ground) wire right underneath them. • Nice 3 page paper at http://www.ultracad.com/articles/loop.pdf

More Related