we are one of the best training institute for Advance courses in embedded system.We are pioneer of the embedded system training in pune with expertise of over 5 years. we are working in the field training & development of embedded system since 5 years.Currently we are also working on live projects as per requirements of clients. though we provide many different courses & training in embedded all aim at giving good practical knowledge to students as well help them in career.
- Read modify write is a technique used to access the ports.
- Here in a single instruction all the three actions are combined.
- Here initially the data is read from the port then modified .
- At last the value is written back on the port.
- This feature saves many lines of code and makes the process easier.
- Data pointer register is used in the indexed addressing mode.
- It is used in accessing data from tne look-up table entries stored in ROM.
- SYNTAX: MOVC A, A+DPTR
- Here c means the code (shows data elements are stored in code space of ROM).
- The contents of A are added to 16 bit DPTR to form the 16 bit address of the needed data.
- R0 and R1 are the only registers used for register indirect addressing mode.
- These registers are 8 bit wide.
- Their use is limited to accessing only internal RAM.
- When these registers hold addresses of RAM, they must be preceded by a sign.
- In absence of this sign it will use the contents of register than the contents of memory location pointed by the same register.
The two physically separate memories using the same addresses form the parallel address space.
- Here the two memories are accessed using different access modes.
- This parallel addressing is generally used in 8052(enhanced version of 8051) having extra 128 bytes of RAM with addresses 80 to FFH and memory is called as upper memory.
- This distinguishes it from lower 128 bytes 00to 7FH.
- To access lower bytes direct addressing mode is used and for higher bytes indirect addressing mode is used.
- Only 16 bytes of the 128 bytes of RAM are bit addressable.
- The bit addressable RAM locations are 20H to 2FH.
- They are addressed as 0 to 127 (decimal) or 00 to 7F.
- Also the internal RAM locations 20 to 2FH are both byte and bit addressable.
- These 16 bytes can be by single bit instructions using only direct addressing mode.
AVR Training by IMPACTRO is designed to provide information, knowledge and skill to work on ATMEL AVR microcontroller. The AVR was developed by ATMEL in 1996 and it is a modified Harvard architecture 8-bit RISC single- chip microcontroller. The AVR was initially first of the microcontroller families to use on-chip flash memory for program storage, whereas other microcontrollers at that time used one-time programmable ROM, EPROM, or EEPROM.
In 1981, Intel Corporation introduced an 8-bit microcontroller called the 8051. The 8051 became widely popular after Intel allowed other manufacturers to make and market any flavors of the 8051. They please with the condition that they remain code-compatible with the 8051. This has led to many, versions of the 8051 with different speeds and amounts of on-chip ROM marketed by more than half a dozen manufacturers. It is important to note that although there are different flavors of the 8051 in terms of speed and amount of on-chip ROM, they are all compatible with the original 8051 as far as the instructions are concerned. This means that if you write your program for one, it will run on any of them regardless of the manufacturer.
Intel’s original MCS-51 family was developed using NMOS technology, but later versions, identified by a letter C in their name (e.g., 80C51) used CMOS technology and consume less power than their NMOS predecessors. This made them more suitable for battery-powered devices.
The Intel 8051 is an 8-bit microcontroller which means that most available operations are limited to 8 bits.
8-bit data bus
16-bit address bus
At location 0x00 for internal or external memory
Embedded C is a set of language extensions for the C Programming language by the C Standards committee to address commonality issues that exist between C extensions for different embedded systems. Historically, embedded C programming requires nonstandard extensions to the C language in order to support exotic features such as fixed-point arithmetic, multiple distinct memory banks, and basic I/O operations. In 2008, the C Standards Committee extended the C language to address these issues by providing a common standard for all implementations to adhere to. It includes a number of features not available in normal C, such as, fixed-point arithmetic, named address spaces, and basic I/O hardware addressing.
The C's volatile keyword is a qualifier that tells the compiler not to optimize when applied to a variable. By declaring a variable volatile, we can tell the compiler that the value of the variable may change any moment from outside of the scope of the program. A variable should be declared volatile whenever its value could change unexpectedly and beyond the comprehension of the compiler.
The const keyword make sure that the value of the variable declared as const can't be changed. This statement holds true in the scope of the program. The value can still be changed by outside intervention. So, the use of const with volatile keyword makes perfect sense.
If we see the declaration volatile int *p, it means that the pointer itself is not volatile and points to an integer that is volatile. This is to inform the compiler that pointer p is pointing to an integer and the value of that integer may change unexpectedly even if there is no code indicating so in the program.
The sizeof character is 1 byte.
Size of integer is 4 bytes.
Size of integer pointer and character is 8 bytes on 64 bit machine and 4 bytes on 32 bit machine.
The NULL is a macro defined in C. Null pointer actually means a pointer that does not point to any valid location. We define a pointer to be null when we want to make sure that the pointer does not point to any valid location and not to use that pointer to change anything. If we don't use null pointer, then we can't verify whether this pointer points to any valid location or not.
• Kernel Synchronization and The Virtual File system
• Linux Device Interface and understanding the access method of Device in Linux
• CHAR driver
• Pseudo Driver Development and kernel Data Structures
• Device Operations
• Memory Allocation and debugging
• Concurrency, Race condition and Synchronization
One of the key concepts in electronics is the printed circuit board or PCB. It’s so fundamental that people often forget to explain what a PCB is. This tutorial will breakdown what makes up a PCB and some of the common terms used in the PCB world.
Over the next few pages, we’ll discuss the composition of a printed circuit board, cover some terminology, a look at methods of assembly, and discuss briefly the design process behind creating a new PCB.
Improves speed without loss of accuracy via integrated analog and event-driven digital simulations.
Explores circuit behaviour using basic DC, AC, noise, and transient analysis.
Allows system-level interfaces to be tested with actual electrical designs using SLPS.
Library selection of 30,000+ analog and mixed-signal models.
Allows for automatic identification of analog and digital signals and applies A-to-D and D-to-A interfaces.
Explores design relationship with “what if” scenarios before committing to hardware.
Identifies and simulates functional blocks of complex circuitry using mathematical expressions, functions and behavioural devices.
Printed circuit board is the most common name but may also be called “printed wiring boards” or “printed wiring cards”. Before the advent of the PCB circuits were constructed through a laborious process of point-to-point wiring. This led to frequent failures at wire junctions and short circuits when wire insulation began to age and crack.
A PCB is sort of like a layer cake or lasagna- there are alternating layers of different materials which are laminated together with heat and adhesive such that the result is a single object. Let’s start in the middle and work our way out.
The base material, or substrate, is usually fiberglass. Historically, the most common designator for this fiberglass is “FR4”. This solid core gives the PCB its rigidity and thickness. There are also flexible PCBs built on flexible high-temperature plastic (Kapton or the equivalent).
You will find many different thickness PCBs; the most common thickness for SparkFun products is 1.6mm (0.063"). Some of our products- LilyPad boards and Arudino Pro Micro boards- use a .8mm thick board.
The next layer is a thin copper foil, which is laminated to the board with heat and adhesive. On common, double sided PCBs, copper is applied to both sides of the substrate. In lower cost electronic gadgets the PCB may have copper on only one side. When we refer to a double sided or 2-layer board we are referring to the number of copper layers (2) in our lasagna. This can be as few as 1 layer or as many as 16 layers or more. The copper thickness can vary and is specified by weight, in ounces per square foot. The vast majority of PCBs have 1 ounce of copper per square foot but some PCBs that handle very high power may use 2 or 3 ounce copper. Each ounce per square translates to about 35 micrometers or 1.4 thousandths of an inch of thickness of copper.