I Workshop Projetando Sistemas Embarcados
|
|
Abaixo temos a lista de artigos publicados por Jack Ganssle. Analog, Filtering, etc. Convolutions - Convolutions are a really cool way to smooth and even differentiate data. You gotta check this out. Minimizing Analog Noise - Analog noise is a tough problem. Here are a few ways to minimize it. Radio Days - Radios and noise reduction Self Calibrating Systems - Here's an algorithm to make an instrument read correct values without ever manually setting gain and offset coefficients. Smoothing Digital Inputs - There's a lot of way ways to debounce digital inputs. A few are listed in this article. Taming Analog Noise - Here's a few ways to use smart software to reduce the amount of noise in your system. Communications Bit Banging - You don't need a UART to send and receive serial data. Software alone suffices. Here's the code. Data Compression - Transmission bandwidth is always limited (hey... if you're reading this over a 28.8kb link, you get the picture!). Data compression can help a lot. Serial Data Transmission - Here's a primer to using UARTs in embedded systems. USB - An overview of embedded USB Debugging Embedded Systems Fun Embedded Systems Aprils Fools - So you have a backup strategy? Call Me Ishmaell - Lessons from failures on a small boat at sea. Dear Abbey - Abbey talks to developers about building embedded systems. Firmware Disasters - Test like you fly, fly what you have tested! Disasters Redux! - Those who forget history are condemned to repeat it. Jake Busts Out - Jake busts out of jail to help the VCs get a product to market. Memo To My Boss - Jake Schmidt quits and fires off a memo to his ex-boss. It's flaming, but full of useful lessons. Memorial Day - Years in the future a wealthy man looks back on how the embedded world collapsed. The Case of the Crashing 68000 - a fun detective story about embedded systems The Secret of My Success - Our hero takes on another project... heh heh The Vote - This article, written in 2002, discusses how Bubba "the can man" won the 2004 presidential election. Toastal Lessons - Our hero designs a mechanical toaster, that morphs into a net-connecte 32 bit monster Hardware 8 and 16 Bit Microcontrollers - A look at the state of smaller CPUs An Example of Foolishness - Jack lays out the basic rules of troubleshooting anything. ARRLHandbooks - A review of one of the finest hardware handbooks. Asynchronous Hardware-Firmware - External events that are changing (analog inputs, timers, encoders and many other sources) often sometimes confuse the code. Few developers understand how to read these simple inputs reliably. Beginner's Corner - In-Circuit-Emulators - A beginner's guide to the best debugging tool of all, the in-circuit emulator. Beginner's Corner - Reentrancy - A beginner's guide to reentrancy issues. Boolean Algebra - Do you get the boolean blues? Those hardware weenies keep chatting about DeMorgan, truth and evil... and you're feeling left out? Read on. Bus Cycles - Software folks need to understand how a microprocessor handles data on its busses. Here's the short intro. Computing CRCs in Parallel - How to use a PLD to figure CRCs in a single clock cycle. Drawing Systems - Most small companies never organize their drawings in a logical fashion, and instead all-too-often rely on memory when building production units. Here's an easy system that will get your drawings in order. Electromagnetics for Firmware People - Maxwell's Laws really are important for firmware development. Here is an introduction. Encoders - Want to learn more about measuring position? Read this article. Green Motor Control - As a designer, you can make decisions that greatly impact the environment. Here's how to save energy. Hardware for Better Firmware - A few changes to the system's hardware design can greatly improve the code. Interrupt Latency - Do you really know what latency is? Where it comes from? How to measure it? Here's guidelines. Is Hardware Reliable - How reliable is hardware anyway? Intel's telling us not to expect our CPUs to actually work . . . Metastability and Firmware - A very subtle reentrancy-like situation develops when software needs two or more reads of hardware to input a value. New Hardware - Suggestions for bringing up a new hardware design. Pipelines and Prefetchers - All modern processors use pipelines and/or prefetchers to increase performance. Here's how they work. Position Encoders - Encoders transmit position or frequency info to the computer. Here's a few ways to make life with them easier. Prototyping with SMT - One person's experience with using SMT devices on prototypes. Read That Datasheet - Never assume a part has certain electrical or timing parameters. Often little surprises lurk. Did you know that virtually all microprocessors do not accept TTL levels for clock and reset? Refreshing Software - Refresh is yet one more thing that software can, in some situation, replace. Resistors - Be careful how you design resistors and R-packs into your digital circuits. This article tells how. Smoothing Digital Inputs - There's a lot of way ways to debounce digital inputs. A few are listed in this article. The Zen of Diagnostics - part 1 of a two part series on embedded diagnostics The Tao of Diagnostics - part 2 of a two part series on embedded diagnostics VCO Based Sensors - VCOs can form a clever way to digitize analog data. What Goes In Must Come Out - FIFOs are hardware analogs of a sort of reverse stack. Here's how they work. Historical Embedded Systems Managing, Scheduling, Tracking Embedded Systems A Boss's Quick Start to Firmware Engineering, Part 1 - Most bosses don't understand the issues involved in producing great firmware. Show them this. A Boss's Quick Start to Firmware Engineering, Part 2 - Show them more. A Value Proposition - Unfulfilled Assigning the Blame - End each project with a Postmortem; feedback stabilizes systems! Bailing Frantically - In panic mode? You'll never exit it till you take time to stop bailing and plug the leaks. Boss Management - Bosses need to be managed too. Business 101 - You can't be an effective engineer unless you understand how your engineering role impacts the business as a whole. Step back, get a new zeitgeist, and expand your horizons a bit. Comments on Commenting - Rules for creating awesome comments in your code. Guardian Angels - Every project needs a guardian angel, someone who watches over the code. I, Consultant (part 1) - Here's how to get rich quick: quit your job, become a consultant, and charge $90/hour. NOT! I, Consultant (part 2) - This is a follow-on the the previous article. Stay tuned for part 3. I, Consultant (part 3) - Yet another followup I, Consultant (part 4) - The last followup... I sure hope. I, Consultant (part 5) - The last followup. Fer Sure. Jack's Rules of Thumb - Engineers use rules of thumb to quickly estimate rather than do detailed calculations. Firmware can benefit from the same idea. Here's a sampling of such rules. Keep it Small - Get the product out faster by better partitioning Lies, Damn Lies, and Schedules - Schedules fail for a lot of reasons, one of which is rampant dishonesty. Measuring Bugs - If you don't measure bug rates you'll never improve your coding. Besides, the right measures will accelerate the schedule. On Management - Thoughts on managing development On Measurements - Managers chant "If you can't measure it, you can't manage it." What should we measure in firmware development? Picking a CPU - How do you decide what CPU to use? Here's some factors to consider. Promise Management - We make lots of promises to our boss, our employees, spouse and children. Promises are a sort of social currency. Manage them properly or they'll lose their value. Schedule Madness - Most schedules are dysfunctional Scheduling - It is possible to create accurate schedules, here's how. The Organized Bench - Lab pigs beware! This is your 12 step plan to recovery. The Z80 Lives! - The Z80 and its derivatives continues to be tremendously successful. Here's the current state of the art. Toastal Lessons - Our hero designs a mechanical toaster, that morphs into a net-connecte 32 bit monster Understand Your User's Needs - Understand your user's needs; only then can you be sure the code is useful, as well as correct. Math Memory 386 Protected Mode - Part 1 of a two part article about protected mode. 386 Protected Mode - Part 2 of a two part article about protected mode Banking Basics - Ideas to help you expand your system's address space. Big Systems - Another piece on using x86 Protected Mode. Built-In Diagnostics - No system is useful unless it can be built in production. Add simple diagnostics. DMA - Too many of us don't really understand DMA. Read on... Huge Data on the Z180 - The Z180's banking scheme is great for handling code; data is a bit more complex. Here's example code. Memory as a Device - Clever use of memory devices can really enhance your products. Non-Volatile RAM - How to manage battery backed up RAM Pipelines and Prefetchers - All modern processors use pipelines and/or prefetchers to increase performance. Here's how they work. Reentrancy - Most real time systems require a certain amount of reentrant code, yet too many programmers have no idea what this entails Refreshing Software - Refresh is yet one more thing that software can, in some situation, replace. Relocatable Code - Some embedded code must run at more than on address. Testing RAM - How to test system RAM. Thanks for the Memories - Here's some advice about testing RAM and ROMs in your embedded system. Using the Z180 MMU - Extend your Z80 address spaces to 1 Mb with the Z180. Wandering Pointers - Code crashes and dangling pointer tips Philosophical and Career As Good As It Gets - Why is it so hard to build great code? Musings on software failures. At Sea - Embedded Systems at sea Chaotic Systems - The new science of chaos is fascinating in its own right, and may have important implications for designers of embedded systems. Crash and Burn - Disasters, and what we can learn Depot Repair - Thoughts on our throwaway economy, and our role in it. Disaster - A description of some embedded disasters, and what we can learn from them. Do You Need A Degree - Is a degree needed? Useful? Engineering Ethics - We enginers build systems that profoundly impact people's lives. Strong ethics are the most important tool we have to keep our customers safe from misbehaving products. Habits - The 7 Habits of Highly Dysfunctional Developers How Microsoft Saved The World - The Big Bad Beast or a a force of good? Jack's inviting flames by claiming that without Microsoft we would still be computing on our fingers and toes. Kids - In praise of kids these days Kids These Days - Back in my day, we had to build our own equipment. Living to Learn - A philosophy of never having to say you're done with school Magic - an article about our society's inability to embrace the new technologies we techies create. Memo To My Boss - Jake Schmidt quits and fires off a memo to his ex-boss. It's flaming, but full of useful lessons. Memorial Day - Years in the future a wealthy man looks back on how the embedded world collapsed. Momisms - Things your mom should have taught you Non-Degreed Engineers - How important is a degree in this industry? Open Source? - Opening the open source debate Passion and the Developer - Use reason, not emotions. Promise Management - We make lots of promises to our boss, our employees, spouse and children. Promises are a sort of social currency. Manage them properly or they'll lose their value. Religious Wars - Choosing a programming language is a place where people often get really dysfunctional. Sell Yourself - Guidelines for writing a resume. Shared Perceptions - On a stop in Bermuda, Jack meets a wizened ex-developer. Over too many drinks several interesting lessons emerge. Small is Beautiful - Small Processors dominate this industry. This is why. Survival of the Fittest - Do you work hard? How about smart? This article might make you mad, but hopefully it's start some ideas flowing. Feel free to send flames to us via email! The C Blues - C is still a long way from what we embedded folks need in a language. Here's some ideas and complaints. The Future of Embedded Programming - Here's a set of prognostications about programming in the future. Read 'em and weep. The Vote - This article, written in 2002, discusses how Bubba "the can man" won the 2004 presidential election. When the Thrill is Gone - Life has a funny way of changing the obvious... RealTime and High Speed An OS in a Can - Using a commercial RTOS will save big bucks... and is rather fun. Asynchronous Hardware-Firmware - External events that are changing (analog inputs, timers, encoders and many other sources) often sometimes confuse the code. Few developers understand how to read these simple inputs reliably. Beginner's Corner - Reentrancy - A beginner's guide to reentrancy issues. Coding ISRs - Handling interrupts is tricky at best. Here's a few suggestions. Design For Performance - Make the system as fast as it needs to be! DSP - An introduction to Digital Signal Processing. Interrupt Latency - Do you really know what latency is? Where it comes from? How to measure it? Here's guidelines. Interrupt Predictability - How do you know if your ISRs will be fast enough? Metastability and Firmware - A very subtle reentrancy-like situation develops when software needs two or more reads of hardware to input a value. Perform or Perish - How do you deal with software performance problems? Real Time - The basics of real-time programming Speed Kills - Data comm over cheap serial links might be more cost effective than other, faster, options. The Perils of NMI - NMI is a critical resource, yet all too often it's misused. What Happens at 100Mhz? - At very high speeds we'll have to change debugging strategies. Here's some ideas. Sailing Stories Software Processes A Matter of Style - We tend to be bad a living up to promises we make - even to ourselves. It's important to change the whole approach. Awesome Functions - How to write a clean, tight and bug-free function. Bailing Frantically - In panic mode? You'll never exit it till you take time to stop bailing and plug the leaks. Comments on Commenting - Rules for creating awesome comments in your code. Deconstructing XP - eXtreme Programming has some fabulous ideas. And some really dumb ones. This is a review of two XP books. Engineering Ethics - We enginers build systems that profoundly impact people's lives. Strong ethics are the most important tool we have to keep our customers safe from misbehaving products. Extreme Embedded - A look at eXtreme Programming. Fire Code for Software - As a collector of software disasters - why is there no fire code for software? Interactive Design - Build your system incrementally. Here's some tips. Jack's Rules of Thumb - Engineers use rules of thumb to quickly estimate rather than do detailed calculations. Firmware can benefit from the same idea. Here's a sampling of such rules. Longevity Planning - Do you have a backup system? Measuring Bugs - If you don't measure bug rates you'll never improve your coding. Besides, the right measures will accelerate the schedule. Momisms - Things your mom should have taught you On Measurements - Managers chant "If you can't measure it, you can't manage it." What should we measure in firmware development? Picking a CPU - How do you decide what CPU to use? Here's some factors to consider. Programming Style - Programming style is just as important as any other parameter that goes into a coding task. Here are a few ideas, rants, and raves. Promise Management - We make lots of promises to our boss, our employees, spouse and children. Promises are a sort of social currency. Manage them properly or they'll lose their value. Shared Perceptions - On a stop in Bermuda, Jack meets a wizened ex-developer. Over too many drinks several interesting lessons emerge. Tools For Clean Code - There are a lot of tools around that will automatically check our code. Efficient developers automate everything they can. Experts know that firmware is so expensive that any code-auditing tool is a great thing. Tools A Plea to Compiler Vendors - Compilers miss the mark on real-time issues Beginner's Corner - In-Circuit-Emulators - A beginner's guide to the best debugging tool of all, the in-circuit emulator. Built-in Debuggers - More and more processors have built-in debugging resources. Here's a look at what features they offer. C for Microcontrollers - This article discusses the state of C for controllers circa 1990. Embedded Lingos - How do you pick a language? Here's some thoughts about C++ Emulators - The basics of the In-Circuit Emulator Java - Ready for Prime Time? - Is Java really the next silver bullet for embedded programming? Language Selection - Thoughts on selecting a programming language Oscilloscope Upate - The wise embedded engineer will be a master of many tools. The scope is one of the most important. Religious Wars - Choosing a programming language is a place where people often get really dysfunctional. The C Blues - C is still a long way from what we embedded folks need in a language. Here's some ideas and complaints. The Good Guys - Here are a few great products for managing spam, backups, network security, and even a cool CAD package. The ICE Blues - Using an emulator? Here are some gotchas to watch out for. Tool Quest - Decent tools have less than zero cost... if you make more than a dollar an hour. Tools For Clean Code - There are a lot of tools around that will automatically check our code. Efficient developers automate everything they can. Experts know that firmware is so expensive that any code-auditing tool is a great thing.
|
|
|
Newsletter
Receba informações sobre os eventos realizados pelo Portal Eventos Embarcados
|