Signal power and energy calculation

The most common signal characteristics are energy and power. In signal theory, these terms require additional comments because they are different from what we are using in AC or DC systems. What are power and energy? When we connect the R resistor to voltage U, the resistor will dissipate some power equal to P=U2/R. During time T, the energy loss on this resistor will be E= TU2/R. Now let us say that we add some signal s() instead of DC voltage. In this case, the power will depend on time as the signal is time-dependent. The term is called instantaneous power: p(s)=s(t)2/R

Continue reading

AVR serial and parallel High-Voltage programmer

This programmer isn’t widely popular as usually is easier to use the ISP programming method. But sometimes if you need to disable the RESET pin and use it as a regular pin instead or you want to disable or restore SPI fuses that control the ISP programming method, then you will need a High-Voltage parallel programmer of AVR microcontrollers. One of the programmers available on the wide internet is HVProg. This is a redesign of STK500 but without development board components. This programmer supports all available AVR microcontrollers in every programming mode and is compatible with AVRstudio. In HVProg there are two versions of programmer:

Continue reading

avrdude-gui another easy way to program AVR microcontrollers

Avrdude-GUI is a simple graphical user interface(GUI) for avrdude, a command-line tool running on several OS to program the Atmel AVR Microcontrollers. AVRDUDE-GUI is included in the WinAVR toolset and can be used separately to program AVR chips avoiding the command line as it has to be done with plain AVRDUDE. This program has no installation or uninstallation routines. It just has to be in the directory where the avrdude is located. It has almost all functions needed to program AVR microcontrollers effectively. A few things that need to be done are reading fuses and working with single fuse bits. Now you have to define whole fuse bytes what is not very convenient.

Continue reading

Old good AVR delay loop generator program

This is not a new program, but I decided to add it here because I found it very handy in many cases while developing ASM programs. This small program generates delay loops for ATMEL AVR controllers. It’s multilingual – for now, it supports English and German languages. You can change the program’s GUI language by clicking on one of the flags. The program can generate really long delays. I have tried to enter like the 60s for 16MHz – the code generated without problem To generate a delay loop in ASM source code just follow the steps in the left part of the window Enter the number of cycles of the delay loop. You cannot enter the delay time in seconds as the author promised to implement this feature in the future. Click the GO-Button Copy the source to your ClipBoard (Copy/Paste). Watch out for register collisions in your ASM source! If they are used, save values in the stack before or select different ones. An update! It appears that only a third party web version of the tool is available. A link to a web-based delay loop generator

Continue reading

Interfacing LCD display to 3V circuits

Usually, we are used to connecting LCDs to 5V systems. LCD controllers usually require a 5V power supply, and there must be some compliant circuitry used when interfacing to 3V systems like ARM LPC2000 microcontrollers. Here are few examples how this problem could be solved. Solution number 1 Standard LCD microcontroller can work with lowered power supply voltage to 2.7V. For this negative voltage for regulating contrast is needed. For this special inverting IC is needed or another solution. In this case, there is the ability to write and read from the LCD controller.

Continue reading

Interface multiple keys with one wire and save pins of MCU

Usually, the keyboard is connected by using matrix type of connection – rows and columns. For instance, for a 12 button keyboard wee need 3+4 digital inputs of the microcontroller. There is a way to build a keyboard and connect it to the microcontroller using only one wire. For this, we will need only signal wire, power, and ground, and of course microcontroller must have analog ADC input. One wire keypad circuit: The circuit is nothing more than simples digital to analog converter. The microcontroller reads the voltage from the signal line and calculates which key is pressed. Let’s see how it works. If no keys have been pressed, then the line has a voltage equal to a power source. If any key is pressed, the voltage divider divides the voltage according to the resistor connected to this button. A capacitor works as a filter of mechanical noise during button contact. This way microcontroller can check the voltage of the signal line and calculate which button is pressed.

Continue reading

Moving from PonyProg to AvrDude AVR programmer without pain

Probably PonyProg is one of the most popular programming software among AVR microcontroller developers. And this is OK as it is good software with a very intuitive interface and supports many chips like Atmel AVR, Microchip PIC micro, I2C, Microwire, SPI EEPROM. It works well with an AVR ISP adapter, which is easy to build. This is an ideal tool for low budget projects. The only thing that I don like with it, that I need to do additional steps to program the AVR chip: Compile project with WinAVR; Open hex file with PonyProg; Programm the chip; Then I thought- what if I could build and program the AVR chip with a single button press. This is where AVRDUDE comes in.

Continue reading

Using LPC2000 flash ISP utility to program LPC2148

As I earlier was writing about my homemade ARM7-Base development board for LPC2148 It is time to write few words on how to use LPC2000 flash ISP utility. LPC2000 flash utility is a software that is used to program LPC2000 series ARM microcontrollers: LPC2101, LPC2102, LPC2103, LPC2104, LPC2106, LPC2106, LPC2114, LPC2114, LPC2119, LPC2124, LPC2129, LPC2131, LPC2132, LPC2134, LPC2136, LPC2138, LPC2141, LPC2142, LPC2144, LPC2146, LPC2148, LPC2194.

Continue reading

Stimuli Generator for AVR Studio helps debugging programs in AVR Studio

Stimuli Generator for AVR Studio is a handy program that allows making stimuli files for AVR Studio. These files contain information on signals that can be used to affect AVR microcontroller pins virtually. With Stimuli Generator, you can emulate any interfacing like I2C, SPI, and others- this allows you to emulate real-world situations. The program’s working is simple: set target microcontroller (by default 8MHz), set measurement unit- microseconds or milliseconds. For instance, you want to send signals to Pin0 of PORTB. Target MCU -ATMega8, which runs at 4MHz. Set serial interface protocol, which is like start bit length – 60us, bit 0 – 20us, bit 1 – 40us. So, in this case, the step value would be 20us. Step value will depend on what variation on the duration of impulses.

Continue reading