Firmcodes
Firmware Developers
Arduino Vs Raspberry Pi
What is arduino ?
An Arduino is an open-source microcontroller development platform. In more practical words, you can use the Arduino development platform to build electronics project which can control physical things in real world like motor, fan, switch, LCDs, LEDs, etc .
Arduino platform consists two things
- A physical programmable circuit board (often referred to as a microcontroller).
- A software, or IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.
About Arduino :- The Arduino platform has become quite popular with people who are newbies and hobbyist in field of electronics. Arduino platform is build around Atmel's AVR microcontrollers. Unlike most previous programmable circuit boards, the Arduino does't 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 to load the code in controller. Additionally, the Arduino IDE uses a simplified version of C++, making it easier to learn to program. At the end, Arduino provides a standard functions of the micro-controller into a more accessible package. You can see arduino UNO in above title pic left.
What is Raspberry Pi ?
The Raspberry Pi is credit-card sized single-board computer developed in the UK by the Raspberry Pi Foundation comes packed with ethernet, USB, a high powered graphics engine(GPU), digital I/O ports and enough CPU power to accomplish your projects.
The short & simple answer is, a very small computer.
Raspberry Pi consists of
- 700Mhz ARM11 CPU
- 512 Mb RAM
- HDMI Output
- Composite Video output
- 3.5mm Audio Out jack
- USB 2.0 Ports
- 10/100 Ethernet Port
- Supports XBMC
- Broadcom VideoCore capable of full 1080p HD
- Boots from SD Card
About Raspberry Pi :- The Raspberry Pi is a computer that plugs into your screen and a keyboard. It is a capable of doing many of the things that your desktop PC does, like spreadsheets, word-processing, internet surfing and games.
Difference between Arduino and Raspberry Pi
Arduino (UNO)
|
Raspberry Pi(B+)
| |
OS
|
Custom program
|
Ubuntu, Pidora, RISC OS, Raspbian, Kali Linux, etc
|
IDE / tool chain
|
Arduino IDE/ Eclipse
|
Open Embedded, QEMU, Sratch box, Eclipse
|
Programming language
|
Wiring based (C++)
|
Pythen , C, etc
|
Architecture
|
8-bit
|
32-bit
|
Processor CORE
|
AVR's Atmega
|
ARM
|
Speed
|
16 MHz
|
700 MHz
|
RAM
|
2 Kbyte
|
512 MB
|
ROM
|
32 Kbyte
|
SD card
|
ADC
|
6
|
Internally used
|
USB
|
Not available
|
4 in new version
|
Audio / Video
|
Not available
|
Stereo out, mic, HDMI, NTSC
|
Cost
|
24 $ approx
|
35 $ approx.
|
If you like this Article, then don't forget to Click on Social likes buttons.
Difference between ARM and other Microcontrollers
This article shows the difference between different microcontrollers available today and used nowadays most, here we classify different microcontroller according to their feature and we will show you how they are different from each other. Then we compare individual microcontroller according to your application need and tell you which one is better for that particular application.
To know what is 8051, AVR, PIC, ARM, MSP430, click on individuals which will drive you to its introduction page.
ARM
|
8051
|
AVR
|
PIC
|
MSP430
| |
Bus Width
|
32-bit mostly
also available in 64-bit
|
8-bit
for standard core
|
8/32-bit
|
8/16/32-bit
|
16-bit
|
Interface types
|
UART, USART, LIN, I2C, SPI, CAN, USB, Ethernet, I2S, DSP, SAI (serial audio interface), IrDA
|
UART, USART, SPI, I2C
|
UART, USART, SPI, I2C,
(special purpose AVR support CAN, USB, Ethernet)
|
PCI, UART, USART, LIN,CAN, Ethernet, SPI, I2S
|
UART, USART,
LIN, I2C,
SPI, I2S,
IrDA
|
Speed
|
1 clock / instruction cycle
|
12 clock / instruction cycle
|
1 clock / instruction cycle
|
4 clock / instruction cycle
|
6 clock / instruction
cycle
|
Memory
|
Flash, SDRAM, EEPROM
|
ROM, SRAM, FLASH
|
Flash, SRAM, EEPROM
|
SRAM, FLASH
|
SRAM, FLASH
|
ISA
|
RISC
|
CISC
|
RISC
|
Some feature of RISC
|
Some feature of RISC
|
Memory Architecture
|
Modified Harvard architecture
|
Von Neumann architecture
|
Modified Harvard architecture
|
Harvard architecture
|
Von Neumann architecture
|
Power Consumption
|
Low
|
Average
|
Low
|
Low
|
Ultra Low
|
Families |
ARMv4,5,6,7
and Cortex series
|
8051 variants
|
Tiny, Atmega, Xmega, special purpose AVR,
|
PIC16, PIC17, PIC18, PIC24, PIC32
|
MSP430X,MSP430FR57xx, MSP430x1xx to MSP430x6xx series
|
Community Support
|
Vast
|
Vast
|
Very Good
|
Very Good
|
Average
|
Vendors
|
Apple, Nvidia, Qualcomm, Samsung Electronics, and TI, etc.
|
NXP, Atmel, Silicon Labs, Dallas, Cyprus, infineon, etc
|
Atmel
|
Microchip
|
TI
|
Cost
(as compared to feature provided)
|
Low
|
Very Low
|
Average
|
Average
|
Average
|
Other features
|
High speed operation
|
Known for its Standard
|
Cheap, effective
|
Cheap
|
Known for Ultra low power operation
|
Popular
microcontrollers
|
LPC2148, ARM Cortex-M0 to ARM Cortex-M0, etc
|
AT89C51,
P89v51,etc
|
Atmega8,16,32, Arduino Community
|
PIC18fXX8, PIC16f88X, PIC32MXXX
|
MSP430G2553,
MSP430 launchpad.
|
This data is based on certain date, Average of our experience with them, which is continuously evolved and microcontroller vendors are come up with new features time by time.
Which one is better ?
There is always pros and cons. We can not say that this is bad or good. Its up to you that which one is better for your application, so here are some example
- ARM - if your application need real time control, fast processing, high end communication protocol and many other function like ADC,PWM along with large memory requirement, then ARM the "Mighty Monster" will best fit for your application.
- 8051 - if your application need less function with cheap project budget and faithful reliable product choose 8051, as per my personal experience, 8051 is universal solution where cheap budget project and reliable product with less functionality. I have used 8051 cored product in many numbers of application starting from my final year college project to high end machine as supporting controller.
- AVR - I have seen this controller in mostly robotics and automobile industries because of its wide community support and simplicity.
- PIC - Used in Industrial application of AC, TV, refrigerator and many more cheap project. I was always hater of PIC controllers cause of its paid system development kit and less community support.
- MSP430 - What if I am say your whole project will going to run on single AA battery for 5 years or your microcontroller can run even at 0.9V supply voltage. You might not believe, but its possible with MSP430, TI's best product
If you like this Article, then don't forget to Click on Social likes buttons.
Difference between RISC and CISC Architecture
What is ISA ?
Instruction set architecture(ISA) is the set of processor design techniques used to implement the instruction work flow on hardware. In more practical words, ISA tells you that how your processor going to process your program instructions.
There is no standard computer architecture accepting different types like CISC, RISC, etc.
What is CISC ?
Complex instruction set computer (CISC /pronounce as ˈsisk'/) is a computer where single instructions can execute several low-level operations (such as a load from memory, an arithmetic operation, and a memory store) or are capable of multi-step operations or addressing modes within single instructions, as its name suggest "COMPLEX INSTRUCTION SET".
What is RISC ?
A reduced instruction set computer (RISC /pronounce as ˈrisk'/) is a computer which only use simple instructions that can be divide into multiple instructions which perform low-level operation within single clock cycle, as its name suggest "REDUCED INSTRUCTION SET"
Understand RISC & CISC architecture with example
Let we take an example of multiplying two numbers
A = A * B; <<<======this is C statement
The CISC Approach :- The primary goal of CISC architecture is to complete a task in as few lines of assembly as possible. This is achieved by building processor hardware that is capable of understanding & executing a series of operations, this is where our CISC architecture introduced .
For this particular task, a CISC processor would come prepared with a specific instruction (we'll call it "MULT"). When executed, this instruction
Loads the two values into separate registers
Multiplies the operands in the execution unit
And finally third, stores the product in the appropriate register.
Thus, the entire task of multiplying two numbers can be completed with one instruction:
MULT A,B <<<======this is assembly statement
MULT is what is known as a "complex instruction." It operates directly on the computer's memory banks and does not require the programmer to explicitly call any loading or storing functions.
Advantage:-
- Compiler has to do very little work to translate a high-level language statement into assembly.
- Length of the code is relatively short
- Very little RAM is required to store instructions.
- The emphasis is put on building complex instructions directly into the hardware.
The RISC Approach :- RISC processors only use simple instructions that can be executed within one clock cycle. Thus, the "MULT" command described above could be divided into three separate commands:
"LOAD" which moves data from the memory bank to a register
"PROD" which finds the product of two operands located within the registers
"STORE" which moves data from a register to the memory banks.
In order to perform the exact series of steps described in the CISC approach, a programmer would need to code four lines of assembly:
LOAD R1, A <<<======this is assembly statement
LOAD R2,B <<<======this is assembly statement
PROD A, B <<<======this is assembly statement
STORE R3, A <<<======this is assembly statement
At first, this may seem like a much less efficient way of completing the operation. Because there are more lines of code, more RAM is needed to store the assembly level instructions. The compiler must also perform more work to convert a high-level language statement into code of this form.
Advantage:-
- Each instruction requires only one clock cycle to execute, the entire program will execute in approximately the same amount of time as the multi-cycle "MULT" command.
- These RISC "reduced instructions" require less transistors of hardware space than the complex instructions, leaving more room for general purpose registers. Because all of the instructions execute in a uniform amount of time (i.e. one clock).
- Pipelining is possible.
LOAD/STORE mechanism:- Separating the "LOAD" and "STORE" instructions actually reduces the amount of work that the computer must perform. After a CISC-style "MULT" command is executed, the processor automatically erases the registers. If one of the operands needs to be used for another computation, the processor must re-load the data from the memory bank into a register. In RISC, the operand will remain in the register until another value is loaded in its place.
Comparison of RISC & CISC
CISC
|
RISC
|
Emphasis on hardware
|
Emphasis on software
|
Includes multi-clock
|
Single-clock
|
complex instructions
|
reduced instruction only
|
Memory-to-memory: "LOAD" and "STORE" incorporated in instructions
|
Register to register: "LOAD" and "STORE" are independent instructions
|
high cycles per second, Small code sizes
|
Low cycles per second, large code sizes
|
Transistors used for storing complex instructions
|
Spends more transistors on memory registers
|
Example of RISC & CISC
Examples of CISC instruction set architectures are PDP-11, VAX, Motorola 68k, and your desktop PCs on intel's x86 architecture based too .
Examples of RISC families include DEC Alpha, AMD 29k, ARC, Atmel AVR, Blackfin, Intel i860 and i960, MIPS, Motorola 88000, PA-RISC, Power (including PowerPC), SuperH, SPARC and ARM too.
Which one is better ?
We can not differentiate RISC and CISC technology because both are suitable at its specific application. What counts is how fast a chip can execute the instructions it is given and how well it runs existing software. Today, both RISC and CISC manufacturers are doing everything to get an edge on the competition.
What's new ?
You might thinking that RISC is nowdays used in microcontroller application widely so its better for that particular application and CISC at desktop application. But reality is boh are at threat position cause of a new technology called EPIC.
EPIC ( Explicitly Parallel Instruction Computing ) :-EPIC is a invented by Intel and is in a way, a combination of both CISC and RISC. This will in theory allow the processing of Windows-based as well as UNIX-based applications by the same CPU.
Intel is working on it under code-name Merced. Microsoft is already developing their Win64 standard for it. Like the name says, Merced will be a 64-bit chip.
If Intel’s EPIC architecture is successful, it might be the biggest thread for RISC. All of the big CPU manufactures but Sun and Motorola are now selling x86-based products, and some are just waiting for Merced to come out (HP, SGI). Because of the x86 market it is not likely that CISC will die soon, but RISC may.
So the future might bring EPIC processors and more CISC processors, while the RISC processors are becoming extinct.
If you like this Article, then don't forget to Click on Social likes buttons.
Subscribe to:
Posts (Atom)