Driving I2C-Bus Signals Over Twisted Pair Cables with PCA9605
The availability of powerful I2C buffers that drive their I/Os on both sides to a nominal ground or ‘zero offset’ logic level allows the removal of noise introduced into one section of a larger bus system. That ‘regeneration’ of clean I2C signals enables building long I2C buses by combining together relatively short bus sections, each say less than 20 meters, using such buffers or multiplexers that contain them. Conventional twisted pair communication cabling with its convenient connectors, and a ‘modular’ I2C system approach, make large system assembly easy. Each drop point or node can be individually selected for bidirectional data communication with the Master just by using normal I2C software addressing. As an example, a system is described for control of LED lighting displays and it is suggested that the power for the LEDs, and the I2C control system, might be economically provided using ‘extra low voltage’ distribution at 48 V using either the control signal cable or similar low cost wiring in a manner similar to that used in ‘Power over the Ethernet’ systems. The simplicity and flexibility of this approach makes it attractive to consider as an alternative to other control systems such as RS-485 or CAN bus.
C++ Tutorial
These tutorials explain the C++ language from its basics up to the newest features of ANSI-C++, including basic concepts such as arrays or classes and advanced concepts such as polymorphism or templates. The tutorial is oriented in a practical way, with working example programs in all sections to start practicing each lesson right away
Arduino Programming Notebook
This notebook serves as a convenient, easy to use programming reference for the command structure and basic syntax of the Arduino microcontroller. To keep it simple, certain exclusions were made that make this a beginner’s reference best used as a secondary source alongside other websites, books, workshops, or classes. This decision has lead to a slight emphasis on using the Arduino for standalone purposes and, for example, excludes the more complex uses of arrays or advanced forms of serial communication.
Introduction to Embedded Systems - A Cyber-Physical Systems Approach
This book strives to identify and introduce the durable intellectual ideas of embedded systems as a technology and as a subject of study. The emphasis is on modeling, design, and analysis of cyber-physical systems, which integrate computing, networking, and physical processes. This book is intended for students at the advanced undergraduate level or the introductory graduate level, and for practicing engineers and computer scientists who wish to understand the engineering principles of embedded systems.
Embedded Systems – Theory and Design Methodology
This book addresses a wide spectrum of research topics on embedded systems, including basic researches, theoretical studies, and practical work.
High Performance Systems, Applications and Projects
This book addresses a wide spectrum of research topics of embedded systems, including parallel computing, communication architecture, application-specific systems, and embedded systems projects.
Lessons in Electric Circuits - Volume III - Semiconductor
This book covers all of the common semiconductor devices and their principles of operation. However, the true value of this reference is in the fact that it provides key circuits and applications where they come in handy. A few of the devices that are covered in this book are Bipolar junction transistors, diodes, JFETs, thyristors, OPAMPs and FETs. This book will be a good reference in your library that has a clear style of explanation.
Embedded Linux Primer
This book brings together indispensable knowledge for building efficient, high-value, Linux-based embedded products: information that has never been assembled in one place before. Drawing on years of experience as an embedded Linux consultant and field application engineer, Christopher Hallinan offers solutions for the specific technical issues you're most likely to face, demonstrates how to build an effective embedded Linux environment, and shows how to use it as productively as possible.
A Guide to Approximations
Most embedded processors don’t know how to compute trig and other complex functions. Programming in C we’re content to call a library routine that does all of the work for us. Unhappily this optimistic approach often fails in real time systems where size, speed and accuracy are all important issues. The compiler’s runtime package is a one-size-fits-all proposition. It gives a reasonable trade-off of speed and precision. But every embedded system is different, with different requirements. In some cases it makes sense to write our own approximation routines. Why?
Consistent Overhead Byte Stuffing
Byte stuffing is a process that transforms a sequence of data bytes that may contain ‘illegal’ or ‘reserved’ values into a potentially longer sequence that contains no occurrences of those values. The extra length is referred to in this paper as the overhead of the algorithm. To date, byte stuffing algorithms, such as those used by SLIP [RFC1055], PPP [RFC1662] and AX.25 [ARRL84], have been designed to incur low average overhead but have made little effort to minimize worst case overhead. Some increasingly popular network devices, however, care more about the worst case. For example, the transmission time for ISM-band packet radio transmitters is strictly limited by FCC regulation. To adhere to this regulation, the practice is to set the maximum packet size artificially low so that no packet, even after worst case overhead, can exceed the transmission time limit. This paper presents a new byte stuffing algorithm, called Consistent Overhead Byte Stuffing (COBS), that tightly bounds the worst case overhead. It guarantees in the worst case to add no more than one byte in 254 to any packet. Furthermore, the algorithm is computationally cheap, and its average overhead is very competitive with that of existing algorithms.
Reed-Solomon Error Correction
[Best paper on Reed-Solomon error correction I have ever read -- and it's from the BBC!] Reed-Solomon error correction has several applications in broadcasting,in particular forming part of the specification for the ETSI digital terrestrial television standard, known as DVB-T. Hardware implementations of coders and decoders for Reed-Solomon error correction are complicated and require some knowledge of the theory of Galois fields on which they are based. This note describes the underlying mathematics and the algorithms used for coding and decoding,with particular emphasis on their realisation in logic circuits. Worked examples are provided to illustrate the processes involved.
Debugging Serial Buses in Embedded System Designs
Many embedded system designs utilize serial buses such as I2C, SPI , USB, RS-232/422/485/UART, CAN, LIN, FlexRay and I2S/LJ/RJ/TDM. Learn how to quickly and efficiently debug today’s serial buses with the powerful trigger, decode, and search capabilities of the MSO/DPO Series.
Transforming 64-Bit Windows to Deliver Software-Only Real-Time Performance
Next-generation industrial, vision, medical and other systems seek to combine highend graphics and rich user interfaces with hard real-time performance, prioritization and precision.Today’s industrial PCs running 64-bit Windows, complemented by a separate scheduler on multicore multiprocessors, can deliver that precise real-time performance on software-defined peripherals.
Electrical Ground Rules Part 2
Best Practices for Grounding Your Electrical Equipment Examining our use of ground as protection, and how ground fault circuit interrupter devices operate to protect us from severe shock (Part 2 of 3)
Interrupts, Low Power Modes and Timer A
This document contains a lot of what you need to know to get the most out of the MSP430. The MSP430 line is renowned for it's low power usage, and to really utilize it well you have to architect your software to be an interrupt driven device that utilizes the low power modes.
Lessons in Electric Circuits - Volume III - Semiconductor
This book covers all of the common semiconductor devices and their principles of operation. However, the true value of this reference is in the fact that it provides key circuits and applications where they come in handy. A few of the devices that are covered in this book are Bipolar junction transistors, diodes, JFETs, thyristors, OPAMPs and FETs. This book will be a good reference in your library that has a clear style of explanation.
Design and Implementation of the lwIP Stack
LwIP is an implementation of the TCP/IP protocol stack. The focus of the lwIP stack is to reduce memory usage and code size, making lwIP suitable for use in small clients with very limited resources such as embedded systems. In order to reduce processing and memory demands, lwIP uses a tailor made API that does not require any data copying. This report describes the design and implementation of lwIP. The algorithms and data struc- tures used both in the protocol implementations and in the sub systems such as the memory and bu®er management systems are described. Also included in this report is a reference manual for the lwIP API and some code examples of using lwIP.
Embedded Touchscreen Handbook
I want to add a touchscreen to my embedded product. Where do I start? That question is common nowadays. Most manufacturing companies are seeing the value – maybe the necessity – of touch screen technology. Many of them don’t have a long-term or close association with the technology, yet they expect their embedded engineers to handle the project successfully and on a tight schedule. These engineers often have questions... - How much am I going to have to learn to get the job done? - I’ve heard that LCD suppliers were not like other suppliers. But, how so? - What don’t I know that could shift the project from “exciting” to “doomed.” You have choices: Probably the three major questions that crop up when you need to add an LCD touch screen to your product are these: - Should I use a full-blown, embedded operating system, like Windows CE, CE Linux or QNX? - How much work does it take to develop an in-house LCD system from scratch? - Do I have other options? The answer to the first two questions is a resounding “maybe,” (depending on what you need to accomplish). The answer to the third question is, probably “yes.” In most cases, there is another option. Who should read this? If you are an embedded engineer who is thinking of adding a touch screen to your product, and if: - You need to know what is involved in adding color touch controls to your product. -You need to understand the risks (both known and hidden) involved in LCD technology. - Your main area of expertise is not LCD technology. - You don’t want to re-focus your time to acquire color LCD technology expertise. If you find that any of the statements above voice your concerns, you may find this paper worth reading.
A Multithreaded Real-time Robot for Embedded Design Space Exploration
This thesis introduces an autonomous robot platform for real-time scheduling exper- imentation and benchmark suite to evaluate real-time optimizations and apply modern task scheduling methods. It makes two contributions. First, it presents a reference hardware and software design for a line-following, obstacle-avoiding and maze-solving robot. This robot is based on a small commercially-available product. The software is structured as a multithreaded real- time system for use in evaluating scheduling approaches for cost-sensitive and resource- constrained applications. Second, it provides a detailed design space exploration showing the costs (processor speed and memory) of dierent scheduling approaches (static vs. dynamic and non-preemptive vs. preemptive). It also measures and analyzes each task's timing information and explores the mini- mum microcontroller clock speed under dierent scheduling approaches.
Demystifying digital signal processing (DSP) programming: The ease in realizing implementations with TI DSPs
Introduced by Texas Instruments over thirty years ago, the digital signal processor (DSP) has evolved in its implementation from a standalone processor to a multicore processing element and has continued to extend in its range of applications. The breadth of software development tools for the DSP has also expanded to accommodate diverse sets of programmers. From small, low power, yet “smart” devices with applications such as voice and image recognition, to multicore, high-performance compute platforms performing real-time data analytics, the opportunities to achieve the low-power processing efficiencies of DSPs are nearly endless. The TI DSP has benefited from a relatively unique tool suite evolution making it easy and effective for the general programmer and the signal processing expert alike to quickly develop their application code. This paper addresses how TI DSP users are able to achieve the high performance afforded by the TI DSP architecture, in an efficient, easy-to-use development environment.







