Code-Porting with Flowcode 7 - microcontroller flexibilityFollow article
Flowcode is an easy-to-use, microcontroller programming software from Matrix TSL. Whether users are working with low powered 8bit devices such as PIC or Arduino, or your designs include high-powered 32bit MCU’s from Microchip or ARM, Flowcode is a flexible tool.
Flowcode also allows for really easy ‘code-porting’. Code-porting is the method by which programmers are able to change their chosen target device by taking their already existing code for, say an 8bit microcontroller, and transfer it to a more/less powerful MCU – say a 16bit. Those familiar with programming using textual based languages will know the challenges of switching target device half way through a development – something which can be a regular occurrence. Using Flowcode, the process is made much easier.
Users simply develop their system as normal and then choose a different target from the ‘project options’ menu in Flowcode. Using textual based languages, engineers would need to manually re-set registers and all other chip configuration such as oscillator, watchdog timer and much more. Flowcode however, does the majority of this work for you and allows the user to easily go through the graphical UI and check final settings within their project.
In this article, we look at just how flexible Flowcode can be and also focus on the different hardware options users of Flowcode can choose from.
Many educational users of Flowcode, and those who are developing simple projects for the first time, are looking for a relatively low powered 8bit PIC device for their work. However, the 8bit PIC option is not only appealing to beginners. These microcontrollers are finding their way into new applications like solar battery chargers, advanced medical devices and solid state lighting around the World.
The key advantages of 8bit PIC microcontrollers is their cost and relative simplicity. That’s not to say they lack features. They have core independent peripherals such as numerically controlled oscillators, communications galore, measurement timers and more. On top of that, their essential features give users faster time to market with USB and CAN capabilities and much more besides.
Flowcode 7 supports a whole host of 8bit PIC devices and users can now benefit from a range of them that can be programmed from the free version (note: the free version of Flowcode is designed to give home users and those wanting an evaluation version of the software, access to a feature limited version of Flowcode 7. The free version is not licenced for commercial or educational institution use).
Users of the free version can benefit from programming a range of hardware that’s available from RS including the PIC16F1937 which is the featured chip on the E-blocks EB006 ‘multi-programmer’, the Microchip Curiosity starter kit (see below in Flowcode 7 itself) and more.
Having options is critical to a product’s success, and one of the most important choices an engineer makes is the appropriate microcontroller selection. Microchip’s
PIC24 16bit microcontrollers offer different levels of choice in performance, memory, and peripherals compared to 8bit devices. Microchip’s advanced technology and migration strategy deliver the most cost-effective system solution for embedded designers.
The PIC24 16-bit architecture has been designed to optimise code size. Reduced code size provides the opportunity to use a smaller memory device at a lower price, reducing the time spent optimising and fine-tuning code size to fit the memory space, and also respond to those requests for “just one more feature.”
Microchip's 16-bit, PIC24 MCUs and dsPIC® Digital Signal Controllers provide designers with an easy upgrade path from 8-bit PIC® microcontrollers and a cost effective option to 32-bit MCUs.
Flowcode 7 allows you to program these devices easily, including the E-blocks dsPIC board which features the powerful and capable 64 pin dsPIC33EP256MU806 device. You can also develop your designs using a host of other 16bit MCU’s from RS online portfolio – including the PIC24F16KA301 and many more. Check out the full range of Microchip MCU’s available from RS, here.
A new range of microcontrollers which are now supported in Flowcode from the launch of version 7, are Microchip’s PIC32 series.
The PIC32 architecture has brought a number of new features to Microchip’s MCU portfolio, including:
- The highest execution speed: 80 MIPS
- The largest flash memory: 512 kB
- One instruction per clock cycle execution
- The first cached processor
- Allows execution from RAM
- Full Speed Host/Dual Role and OTG USB capabilities
- Full JTAG and 2 wire programming and debugging
- Real-time trace
In November 2013, the PIC32 range developed further as Microchip introduced the PIC32MZ series of microcontrollers, based on the MIPS M14K core. The PIC32MZ series includes:
- 200 MHz core speed, with 330 DMIPS and 3.28 CoreMarks/MHz
- Up to 2 MB Flash and 512K RAM
- New peripherals including high-speed USB, crypto engine and SQI
Flowcode 7 supports a range of the PIC32 series including the chipKIT uC32 from RS which is fully supported in the free version.
As many readers of this article will know, Arduino is an open-source prototyping platform which includes a range of affordable hardware boards. The Arduino platform has become quite popular with people just starting out with electronics, and for good reason. Unlike most previous programmable circuit boards, the Arduino does not need a separate piece of hardware (called a programmer) in order to load new code onto the board – you can simply use a USB cable.
Flowcode 7 will continue to support Arduino development boards (see Arduino being programmed using Flowcode 6 above) and is a popular programming IDE for users of Arduino hardware. Flowcode is easier to use than the Arduino IDE and what’s more, the free version will now appeal to a lot of beginners and low-level developers. A graphical programming environment appeals more than textual based environments, simply because of its ease-of-use to an average development engineer or learner.
The free version of Flowcode 7 will be supporting the Arduino Uno R3 which can be bought from RS online. RS also offer two E-blocks shields for Arduino boards including the Uno and the Arduino Mega (such as the ‘EB092’ – see below) which allow your Arduino to be built into an E-blocks system. These are not necessary for programming your Arduino with Flowcode, but do allow for your other E-blocks boards to connect.
AVR / Atmel
Those Arduino users who want to upgrade to a paid for version of Flowcode 7 will need to ensure they purchase the AVR version of Flowcode – which gives access to program a whole range of Atmel devices and is not only tied to Arduino users. For example, users may wish to develop their projects using boards such as the E-blocks AVR MCU programmer. RS online also stock a range of other Atmel MCU’s which are programmable via Flowcode 7.
The last microcontroller family that Flowcode supports is ARM. Although a popular hardware device for many engineers, the ARM version of Flowcode has not necessarily appealed that much to many Flowcode users in the past. However, as we move forward over the coming months, all of that is set to change.
The initial launch of Flowcode 7, this summer will not see many developments in the range of ARM MCU’s programmable via Flowcode. However, plans are afoot for a dot-release of Flowcode in the months ahead, to support the ST ARM range of microcontrollers – full details will follow.
For now, Flowcode does work with the EB185 E-blocks AT91 SAM 7 MCU board and some other AT91 MCU’s.
Please ensure you check that Flowcode is supportive of your chosen target device by checking the Flowcode 7 datasheet. You can buy Flowcode at RS Online or use a simulation only free version from Matrix TSL.
Why not check out other articles on Flowcode 7: