FIFO memory buffers!!!

Monday, 14 July 2014


There are many serial communicating devices which gives data in bursts, i.e after launching several data in consecutive cycles, it then becomes quite for several cycles. 
And in some other cases the frequency of such operations are different, where the device and processor will be on different clocks.
This causes Data Loss.

How to prevent this Data Loss?

A FIFO is a special type of buffer, where data written into the buffer first comes out first. There are other kinds of buffers, and choice of buffer is architecture dependent.

FIFOs can be implemented with software or hardware. The choice between a software and a hardware solution depends on the type of application and features desired.

How it works?

There are two clocks involved, a launch clock during which the data is stored in the FIFO just like write clock, and a capture clock where the data is read from the FIFO like read clock.

In a circular FIFO concept, the memory address of the incoming data is in the write pointer. The address of the first data word in the FIFO that is to be read out is in the read pointer. After reset, both pointers indicate the same memory location. After each write operation, the write pointer is set to the next memory location. The reading of a data word sets the read pointer to the next data word that is to be read out. The read pointer constantly follows the write pointer. When the read pointer reaches the write pointer, the FIFO is EMPTY. If the write pointer catches up with the read pointer, the FIFO is FULL.



FIFO Limitations:

FIFO is not of much use if launch clock is faster than capture clock, and if average data rate is greater than capture rate, because after a while, the FIFO would become FULL.

How to decide of FIFO buffer Size?


FIFO depth is decided as :

(data bytes (burst) written in write clock) - (data bytes read in read clock in the time taken to write the burst).

Example: Suppose 200 bytes burst is to be written at 100 MHZ, 1 byte per write clock. and Read clock is 50 MHZ, 1 byte read per read clock. what is the FIFO depth?

Time taken to write 1 byte = (1/100) = 10 ns
So, Time taken to write 200 Bytes = 10 * 200 = 2000 ns

Time required to read 1 byte = (1/50) = 20 ns
So, in 2000 ns date bytes read = (2000/20) = 100 Bytes

So, FIFO Depth = 200 - 100 = 100 Bytes.
Read more ...

Intel IoT Demo at IBM Impact 2014

Saturday, 17 May 2014

Read more ...

About Digispark Pro Arduino Development Board

Saturday, 17 May 2014

Read more ...

UDOO: Arduion Linux Android TOGETHER!!

Friday, 2 May 2014

All in One

Android device, Powerful computer, Arduino-compatible

UDOO is a multi development platform solution for Android, Linux, Arduino and Google ADK 2012.


primaimmagine02UDOO allows you to switch between Linux and Android in a few seconds, simply by replacing the Micro SD card and rebooting the system. UDOO is a stand alone computer itself and since is based on the Freescale i.MX 6 CPU, it runs an optimized version of Linux Ubuntu for ARM architecture, called Linaro (11.10 at the moment). Linaro environment has everything you need for programming, for example you can use the Arduino IDE to build & upload your sketches to the Arduino-compatible embedded board, without additional/external cable connections.

Android 4.2.2 Jelly Bean runs smootly on UDOO giving you all the features of an Android device. And UDOO is compatible with all the sketches, tutorials and resources available on the Arduino community as well as all the shields, sensors and actuators for Arduino DUE available on the market.

 

Features

  • CPU Freescale i.MX 6 ARM Cortex-A9 Quad core 1GHz
  • GPU Vivante GC 2000 + Vivante GC 355 + Vivante GC 320
  • Integrated accelerators for 2D, OpenGL® ES2.0 3D and OpenVG™
  • Atmel SAM3X8E ARM Cortex-M3 CPU (same as Arduino Due)
  • RAM DDR3 1GB
  • 76 fully available GPIO: 62 digital + 14 digital/analog
  • Arduino-compatible R3 1.0 pinout
  • HDMI and LVDS + Touch
  • 2 Micro USB (1 OTG type a+b)
  • 2 USB type A (x2) and 1 USB connector (requires a specific wire)
  • Analog Audio and Mic
  • CSI Camera Connection
  • on board Micro SD card reader (boot device)
  • Power Supply (6-15V) and External Battery connector
  • Ethernet RJ45 (10/100/1000 MBit)
  • WiFi Module
  • SATA

 

Read more ...

Digispark Pro! Tiny spark in Arduino creating Fire??

Saturday, 19 April 2014
The tiny Arduino IDE ready, usb and mobile dev board and ecosystem - cheap enough to leave in any project! Wi-fi, BLE, and 25+ shields!
Serial over USB debugging, USB programmable, 14 i/o, SPI, I2C, UART, USB Device Emulation, Mobile Development Ready, Optional BT, BLE, Mesh, and Wi-Fi.
The super small, dirt cheap, always open source, Arduino compatible, USB (and Mobile and Wireless!) development (and production) platform, and follow-up to the original Digispark.

Small and Affordable!Easier to use, more pins, more program space, more features, more reliable - supporting the entire existing Digispark ecosystem of 25+ shields and adding Wi-Fi, Bluetooth, BLE shields and more! Ready for all your projects - including mobile hardware development! All still super affordable!

The Digispark Pro Ecosystem is the cheapest, Arduino compatible development platform for Mobile and Wireless hardware development.



  • Compatible with Arduino IDE 1.5 (OSX/Win/Linux)
  • Fully signed drivers and executable for easy installation
  • USB programming, USB device emulation, USB-CDC virtual serial port emulation
  • 16 Mhz AVR MCU - using a true 16Mhz precision crystal
  • 16KB Flash Memory (14.5K+ after bootloader)
  • Serial over USB debugging and communication!
  • 14 i/o Pins (2 shared with USB)
  • I2C, true SPI, UART, LIN, and USI
  • ADC on 10 pins
  • 3 PWM Channels (which can be assigned to a selection of pins)
  • Power via USB, or External Source - 5v or 6-16v (automatic selection)  
  • On-board button that can be used as a reset, program, or user button - or can be disabled to use that pin as general i/o - without changing the bootloader
  • On-board 500ma 5V regulator
  • Power LED and Test/Status LED (on Pin 1) 
  • User accessible solder jumpers to disable LEDs, and other features for lower power consumption
  • Two mounting holes.
  • Breadboard compatible pin out/spacing (the three side header pins are only for legacy shield support).
Various header options (female headers included, other can be added to your pledge) 


Click for fullsize 
 
Wi-Fi, Bluetooth, BLE, Mesh shields: The Digispark Pro is backwards compatible with all existing Digispark shields - and it has some shields exclusive for the Pro including: a Wi-Fi shield, a Bluetooth Classic shield, a Bluetooth 4.0/Low Energy Shield, and a nRF24L01+ low cost mesh networking shield. These low cost shields make the Digispark Pro the cheapest way to jump into Internet of Things, Mobile, and Wireless development!
 
 
 
Read more ...

ElectroWeb embedded views

Contact Form

Name

Email *

Message *

Google+