Run WinAVR from portable media

It is not always convenient to install WinAVR in separate working places. There is now a solution that you can run your WinAVR development tools directly from portable media like USB memory stick. You can download it from here Portable WinAVR its Free. Whats included in package: Ready-to-run Portable WinAVR and sample projects ; Full ZIP archive with Portable WinAVR distribution; Reduced ZIP archive with only Portable WinAVR supplementary files; optional: ZIP archive with sample projects Quick start guide of portable WinAVR is available here: PortableWinAVR-QuickStartGuide.html

Continue reading

ARM Development Tools

https://www.arm.com/ Professional information about ARM microcontrollers; https://www.codesourcery.com/gnu_toolchains/arm.html develops improvements to the GNU Tool-chain for ARM processors and provides regular, carefully tested, pre-compiled releases of the GNU Tool-chain; https://www.EmbeddedArtists.com/ Ships pre-setup GCC build environment with all their Quick-Start Boards/Kits; https://www.embedinfo.com/ Embest IDE for ARM, include Compiler,debugger,editor,project manager,flash programmer,JTAG Emulator, Low cost; https://www.iar.com/ Embedded Workbench for ARM7,9,11 C/C++ compiler; https://www.keil.com/ IDE,Debugger,Simulator which work with GNU, ADS/RealView, and Keil CARM Compiler; https://www.billgatliff.com/ Introduction to GNU tools on ARM https://www.ghs.com/ Green Hills Multi 2000 Compiler suite,JTAG probes, Integrity RTOS; https://www.rowley.co.uk/ ARM, MSP430 tools for Windows and Linux https://www.metrowerks.com/ ARM tools to compile Linux from Windows https://www.modularcircuits.com/gcc_arm.htm GCC 3.3.1 for ARM targets, compiled under MinGW. https://www.aeolusdevelopment.com/ Newlib porting layer for LPC210X https://www.gnuarm.com/ GCC tools for ARM, precompiled for Cygwin, Linux and MacOS https://www.forth.com/Content/Products/SwiftX/SwiftX.htm Forth for embedded ARM systems https://www.mpeltd.demon.co.uk/forth6.htm Forth for embedded ARM systems; https://www.lpc2106.com/ SBCs, C-Compiler, Development-Kits; https://rod.info/arm.html GNU tools (binutils, GCC, newlib and Insight/GDB) build script and tarballs for Linux; https://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/ The gnu-toolchain and several tools and samples for ARM controller/processors for MS-Windows-Platforms supported by Martin THOMAS.

Continue reading

Basics of project file in VMLAB

Lets say you have created a project like in earlier lesson. Then you can see the project window: project file has extension *.prj. In this file comments are marked with character “;” and directives “.” In example you see the directives describing microcontroller and its compilation settings. They are created using project wizard. Then another directive is .TRACE which enables tracing of program flow. Then follows directives describing working schematic of project. “.POVER VDD=5 VSS=0” means that microcontroller is powered with 5V voltage supply source. “.CLOCK 1meg” means that microcontroller is clocked by 1MHz generator. “.SORE 250m” means amount of ms stored in internal oscilloscope emulator. This parameter is set automatically depending on your RAM amount. But you can change it to other value. This group of parameters are set by default when you select project properties in wizard and create it. Source: www.avr.h15.ru

Continue reading

Interfacing PC keyboard to AVR microcontroller

Properties: Interface AVR to standard PC AT keyboard; Only two I/O lines used. One line is also connected to external interrupt pin of AVR; No external components is needed for interface; Included C source reads from keyboard interface and converts to serial In many situations you need some kind of human interface to your microcontroller project. In this example is interfacing AVR microcontroller to standard PC AT keyboard described. Physically interface looks as in picture bellow: In a keyboard interface signal lines are open collector with pull-up resistors. Keyboard cable connectors can be DIN or Mini DIN (We are not talking about USB interface): According to keyboard timing diagram in bellow picture the keyboard transfers data to host AVR microcontroller. The protocol is: one start bit (always 0), eight data bits, one odd parity bit and one stop bit (always 1). The data is validated during the low period of clock pulse. Clock signal is generated by keyboard and pulses are about 30-50us low and high. The keyboard has a scan code associated with each key. When key is presse – the code is transmitted. If key is is hol down for a while the code is transmitted repeatedly (about…

Continue reading

Clockless CPU design

Clockless CPUs are so called asynchronous CPUs where are not clock generator needed which clocks every synchronous operation. Asynchronous processors gives results not after defined number of clocks, but after it finishes operations. This is a key of effective usage of energy and asynchronous processors generates less noise than synchronous. Asynchronous processors have couple advantages against synchronous: Components can run in different speeds inside clockless CPU while clocked CPU components are tied to clock generator. Clockless CPU operation stages doesn’t depend on clocks and can be finished faster than normal and there is no time gap between stages as there is no need to wait for next clock cycle. For instance in it can show results of operation rather than waiting for next clock cycle like it is in sychronous CPU. So why asynchronous processors aren’t so popular? There are many factors but I think the biggest is historical, because instead asynchronous technology engineers of middle of nineteenth century decided to develop synchronous technology as they looked potentially more productive, reliable and there were easier to project them. So now there is a lack of professionals in this area. In other hand it is problematically to match synchronous and asynchronous…

Continue reading

Embedded RTOS System

RTOS – Real Time Operating system is a program environment which interfaces hardware and desired tasks. RTOS usually has built in set of services (interfaces and functions) which allow to interact between tasks and hardware. Because most low level functions are performed by RTOS realisation of programs becomes much easier. What is difference between Embedded RTOS System and regular OS (Operating System)? The main difference is that RTOS performs tasks according to reaction time on one or another event. Many microcontrollers have ability to support one or another Real Time Operating System. According to this we can say, that RTOS is a background application which controls multiple tasks and alleviates managing those tasks. Note that Operational system is able to perform multiple tasks at one time. This is called multitasking. We all know that microcontroller can perform only one task at one time, but if we cut time in to small pieces and perform all tasks in row for a bit time, then we achieve multitasking. This like illusion of performing tasks at one time. If you are familiar with system programming of PC, then you should know what is processes and flow and about planning of tasks (including real…

Continue reading

Connect 6 LEDs using 3 microcontroller pins

Sometimes you need more than you have. I am talking about microcontroller pins. Lets say, you have to connect 6 LED diodes but you have only 3 microcontroller pins available. To use other microcontroller isn’t always a solution using decoder circuitry isn’t necessary as well. There is a simple hint on how to do this: Connect diodes to microcontroller as follows: < p align=”left” style=”margin-bottom: 0cm”> Now look – if you set one pin to “1” and second to “0” (leave third pin high state – as input pin) then only one led lights on. You can light two LEDs at one time as well by setting third pin as output and state “1” or “0” depends on which LED you want additionally to light on. If you need to light all LEDs at one time then you need to change states of microcontroller pins at some desired frequency to avoid visible blinking. Using this method you can connect twelve LEDs using only 4 pins. This is convenient method of expanding when using dual colour LEDs, when two LEDs are packed in one case but in different directions. There is an example of AVR-GCC C code how to control LEDs.…

Continue reading