USB oscilloscope using STM32

This is a basic oscilloscope on STM32F103C8T6 microcontroller. Circuit board is kept very simple. No any fancy analog stuff – just diode protection circuit and resistors divider. It is a two channel 8-bit scope with 300kSps each. It accepts voltage levels from 0 to 6.6V.

Data stream via USB is live and goes to PC GUI called miniscope v4.Here you have some basic controls including sampling rate, triggering source and level, buffer size and other handy stuff.

Read

Simplecortex – Arduino compatible ARM Cortex development board

No matter what AVR microcontroller is used in Arduino board it still has a lot off limitations when talking about performance, functionality and memory. Arduino speed is limited to 16MHz (20MHz MAX). There is 32KB of flash memory in Arduino UNO and 2KB of RAM. Anyway this is an 8-bit microcontroller so what to expect more. When thinking about power and performance the next logical step is using ARM. BRC-Electronics team assembled an ARM Cortex-M3 development board using LPC1796 from NXP. It comes with 512KB flash memory and 64KB of static RAM. It is clocked at 120MHz.

Arduino fans can also enjoy it as board has Arduino compatible header pins. So most of shields should have no problems to run. Among other features of board it is worth mention on-board debugger, Micro SD card slot, Ethernet, analog output. What about development tools? There are plenty of them. You can use any ARM-GCC distro like Yagarto, Codesourcery or any other. Also there is a suggestion to use CoIDE which is open source and is based on GCC tools. You will find lots of examples to get started.

Read

Cortex-M3 internet controlled lighting controller

Great project for ARM fans… It is a network controlled light switch where core is based on ARM Cortex-M3 microcontroller. Network part is based on Ethernet PHY/MAC from Texas Instruments.

It has four relays to switch power devices on and off, RGB color control LED lights, 3 FAN control outputs with variable PWM. Network TCP/IP stack with DHCP. It runs a basic webserver which can be accessed with Android, iPhone, PC applications.

Read

Running FreeRTOS on STM32

Bigger scale microcontrollers like STM32F103ZET6 are stuffed with lots of features that enable to run complex project. Practically it is advised to stick with some RTOS to keep project modular and maintainable. FreeRTOS doesn’t take much of processor resources but benefit a lot like allows parallelize functions/tasks with ease. Scienceprog takes us through process of building simple applications by using FreeRTOS on STM32 microcontroller.

Each task here is programmed individually without worries how it will be run, because while writing each it is supposed that all processor resources are available. And this is so because each task is managed by scheduler which takes care of business. From point of view everythink looks run like parallel tasks while in reality each task is performing in turn according to their priorities set. In following demo there are 5 tasks running: LED flashing, Button check, Button LEDs toggle, LCD and USART. Keep in mind that also there is always an idle task running that is created once scheduler is run. This is a great template to start with as it is a bit different from official FreeRTOS demo which is more generic.

Read

Program 3.2′ LCD with STM32 and GCC

Scienceprog have posted a short post with example of driving 3.2′ graphical LCD on STM32F103ZET6 development board. He adapted LCD driver found on internet to match his board. LCD is Ili9320 controller based which interfaces to STM32 through FSMC interface allowing to program LCD as SRAM memory.

Once set you can write data (pixels, commands) like you would write to SRAM memory. Project Code is based on CodeSourcery GCC tool set which is free. Grab it if you looking for a project template where GLCD is used.

Read

Next Page »