Tuesday, 31 July 2007

USB Vs other ports

USB port နဲ႔ RS232, Header (Connector) ေတြကိုခ်ိတ္ဆက္တဲ့ Circuit Diagram ေလးေတြပါ။

၁။ ပထမတစ္ခုက USB port နဲ႔ RS232 port ကိုခ်ိတ္ဆက္တာျဖစ္ပါတယ္။ Computer ထဲမွာ built-in မဟုတ္တဲ့အတြက္ external power supply (5V) ေတာ့ေပးရပါမယ္။ Computer မပါပဲ USB port ကိုအသံုးျပဳၿပီး storage device ကေန data (Read, Write) ခ်င္တဲ့အခါမွာသံုးပါတယ္။ UART mode လို႔ေခၚပါတယ္။

၂။ ဒုတိယတစ္ခုကေတာ့ USB port နဲ႔ Header ကိုခ်ိတ္တဲ့ပံုစံပါ။ SPI mode လို႔ေခၚပါတယ္။ Software ကေနကေတာ့ Virtual port လို႔လည္းေခၚပါတယ္။

ဘယ္လိုခြဲျခားၿပီးသံုးလုိ႔ရလဲဆိုရင္ေတာ့ ကၽြန္ေတာ္တို႔သံုးတဲ့ Microcontroller က RS232 port ကို ၂ ခုပဲလက္ခံတယ္ဆိုပါစို႔။ ကၽြန္ေတာ္ကလည္း အဲဒီ port ၂ ခုလံုးကိုအသံုးျပဳခဲ့ၿပီးျဖစ္ေနခ်ိန္မွာ USB port နဲ႔ data (Read, Write) လုပ္ခ်င္တဲ့အခါမွာ SPI mode ကိုသံုးရပါတယ္။ SPI မွာ Master mode နဲ႔ Slave mode ဆိုၿပီး၂ မ်ိဳးရွိပါတယ္။ Master က USB, MMC (Memory Card) device တစ္ခုမကသံုးလုိ႔ရၿပီး Slave ကေတာ့ device တစ္ခုပဲ သံုးလုိ႔ရပါတယ္။ ကၽြန္ေတာ္ကေတာ့ Slave mode ကိုပဲသံုးဘူးပါတယ္။ USB Port ကိုေတာ့ ႀကိဳက္တဲ့အမ်ိဳးအစား သံုးလုိ႔ရပါတယ္။ အခုအသံုးျပဳထားတာက VDrive2 ဆိုတဲ့တံဆိပ္္ပါ။

- ေအာက္ကပံုေလးေတြက VDrive2 နဲ႔ RS232 (Male, Female) ရဲ႕ပံုေတြပါ။

မွတ္ခ်က္ ။ ။ UART, SPI, RS232 အေၾကာင္းေတြကိုေတာ့ အရင္ post ေတြမွာရွင္းျပခဲ့ၿပီးပါၿပီ။

Diagram (1)

Diagram (2)


Monday, 30 July 2007

Basics of Embedded Software

Testing Software ဆိုတာကေတာ့ Electronics Circuit ေတြမွာ Testing points ဆိုတာေတြရွိပါတယ္။ အဲဒါေတြမွာရွိတဲ့ အေျခအေနေတြကို စစ္တာျဖစ္ပါတယ္။ ဥပမာ Channel 1-5 နဲ႔ Channel 4-6 ကဆက္စပ္မႈရွိရမယ္ ဆိုပါေတာ့။ အဲဒါဆိုရင္ Channel 1-5 ကေန signal တစ္ခုေပး၊ Channel 4-6 ကေန signal ျပန္ဖမ္း၊ လုိခ်င္တဲ့ signal ရရင္ connection (Short) ရွိတယ္။ မရရင္ (Open) ဆုိၿပီးသတ္မွတ္ပါတယ္။ Computer သမားေတြအေနနဲ႔ေျပာရရင္ Short=1, Open=0 ေပါ့။ Channel ေတြ ဆက္စပ္မႈရွိကိုရွိရမယ္ ဆိုရင္ short ျဖစ္ၿပီးေတာ့ သပ္သပ္စီရွိရမယ္ဆိုရင္ open ေပါ့။ မ်ားေသာအားျဖင့္ေတာ့ ဒီ Logic နဲ႔စစ္ပါတယ္။ ထပ္ဆင့္ၿပီးျပဳလုပ္မယ္ဆိုရင္ေတာ့ Data ကို External devices (MMC, USB, RS232) ေတြကယူတာ၊ Results ကို Display (LCD, LED), Storage devices (MMC, USB), ports (RS232) ေတြမွာသြားေရးတာ ေတြပါလာပါၿပီ။ Embedded software ေတြက ဒီ logic ကိုအေျခခံၿပီးေရးၾကတာပါ။ Electronics hardware knowledges ေတာ့ရွိရပါမယ္။

Friday, 27 July 2007

Related Header Files and Compliers (for C language)

Embedded Software (Firmware) ေရးတဲ့အခါမွာ header file, Complier ေတြကအေရးႀကီးပါတယ္။ ကိုသံုးမည့္ Microchip နဲ႔ဆုိင္တဲ့ header file, Complier ေတြမရွိရင္ Software လည္းေရးလုိ႔မရပါဘူး။ Complie ေတာင္လုပ္လုိ႔မရႏိုင္ပါဘူး။ ဥပမာအားျဖင့္ ကၽြန္ေတာ္တို႔က C8051F320 ဆိုတဲ့ Microcontroller နဲ႔ SC2004 ဆိုတဲ့ LCD Module ကိုသံုးၾကမယ္ဆိုပါစို႔၊ အဲဒီအတြက္ SC2004LCD.h, C8051F320.h ဆိုတဲ့ header file ေတြရွိရပါမယ္။ အမ်ားအားျဖင့္ေတာ့ Internet မွာရွာလုိ႔ရပါတယ္။ တစ္ခ်ိဳ႕က်ေတာ့လည္း Chip ၀ယ္တဲ့အခါမွာပါပါတယ္။ Chip နဲ႔သက္ဆုိင္တဲ့ Compiler မွာလည္း Header file creation Tool တစ္ခုအျဖစ္နဲ႔ပါေလ့ရွိပါတယ္။ Cygnal Chip ေတြအတြက္ဆိုရင္ Silicon Labs Compiler မွာ Config2 ဆိုတဲ့ Tool အေနနဲ႔ပါပါတယ္။ အဲဒီလုိပဲ Chip မတူရင္ Compiler လည္းကြာျခားေလ့ရွိပါတယ္။ ဥပမာ- ARM ဆိုရင္ Keil၊ Cygnal ဆိုရင္ Silicon Labs၊ Hitachi ဆိုရင္ HI-TECH၊ NEC ဆိုရင္ IAR အစရွိသျဖင့္ Compiler ေတြရွိၾကပါတယ္။ အဲဒီ Compiler ေတြကေတာ့ Chip ၀ယ္တဲ့အခါမွာ Installer CD နဲ႔ပါပါတယ္။ Internet မွာရွာရင္ေတာ့ Trial တို႔၊ Demo တုိ႔ပဲရႏိုင္ပါတယ္။ JAVA Language နဲ႔ေရးမယ္ဆိုရင္လည္း JAVA Compiler လိုပါတယ္။ Assembly Language နဲ႔ေရးမယ္ဆိုရင္ေတာ့ Compiler မလိုပါဘူး။

Thursday, 26 July 2007

Teach Yourself Electricity and Electronics (3rd Edition)



ဒီစာအုပ္က Electrical, Electronics Hardware ကိုေလ့လာေနတဲ့သူေတြအတြက္ပါ။ Electronics Hardware ကိုအေျခခံကစၿပီး ေလ့လာႏိုင္ပါတယ္။ ဒီစာအုပ္ေပးတဲ့ Blog ေပၚ က Brother ကိုေက်းဇူးပါ။

Download : Teach Yourself Electricity and Electronics

Tuesday, 24 July 2007

Installing RAID

RAID device တစ္ခုကို Install လုပ္မယ္ဆိုရင္ ...
၁။ ပထမဆံုး Hard Disk Drive ေတြကိုတပ္ပါ။
၂။ Jumper Setting ေျပာင္းပါ။ setting ကေတာ့ Mother board စာအုပ္ထဲမွာဖတ္ၿပီးေျပာင္းလုိ႔ရပါတယ္။
၃။ Restart လုပ္ပါ။ Raid Utility ထဲ၀င္ၿပီး RAID Device တစ္ခုတည္ေဆာက္ပါ။ Utility ကို၀င္တာကေတာ့ သက္ဆိုင္တဲ့ Mother Board စာအုပ္မွာပါပါတယ္။ အမ်ားအားျဖင့္ေတာ့ F12 ကိုႏိွပ္ၿပီး၀င္ပါတယ္။
၄။ RAID device တည္ေဆာက္တဲ့အခါ name, RAID level, storage capacity တုိ႔ကို ေရြးရပါတယ္။ RAID 2 ဆိုရင္ Hard Disk ၂ခု အနည္းဆံုး၊ RAID 10 ဆိုရင္ Hard Disk ၄ခု အနည္းဆံုးရွိရပါတယ္။ HDD ေတြက အမ်ိဳးအစား (SATA, IDE) ၊ Storage capacity ေတြတူရပါတယ္။ မတူတာေတြနဲ႔ေတာ့ ကၽြန္ေတာ္မလုပ္ဘူးပါဘူး။ Reference ထဲမွာလည္းတူရမယ္လုိ႔ပါလုိ႔ပါ ... း)
၅။ Driver Disk (Floppy) လုပ္ရပါတယ္။ သတိထားဖို႔က RAID driver မွန္ဖို႔အေရးႀကီးပါတယ္။ မွားရင္ Window Installation အခါမွာ HDD ကိုမေတြ႕ဘူးလုိ႔ေျပာပါလိမ့္မယ္။
၆။ Windows XP တင္ရင္ F6 ကိုႏွိပ္ၿပီး driver ကို တင္ပါ။ ၿပီးရင္ F3 ႏိွပ္ၿပီး driver installation ကေနထြက္လုိက္ပါ။
၇။ Driver မွန္ခဲ့ရင္ Window ကို ပံုမွန္အတိုင္းၿပီးဆံုးတဲ့အထိ တင္သြားပါလိမ့္မယ္။
၈။ Window Explorer ထဲမွာ HDD တစ္ခုကိုပဲေတြ႔ရမွာပါ။ Intel Storage Matrix Software ကိုတင္ၿပီး HDD ေတြကိုၾကည့္ရင္ HDD အကုန္လံုးကိုျမင္ႏိုင္ပါတယ္။
RAID ကိုအဓိကအားျဖင့္ေတာ့ Database ေတြအတြက္ Backup လုပ္ဖို႔သံုးပါတယ္။ ASUS Mother board ေတြနဲ႔သံုးရင္ပိုၿပီး အဆင္ေျပပါတယ္။

Monday, 23 July 2007

Schematic with OrCAD (1)

OrCAD နဲ႔ Schematic ဆြဲေတာ့မယ္ဆိုရင္ - ၁

OrCAD နဲ႔ Circuit design စဆြဲေတာ့မယ္ဆိုရင္ အရင္ဆံုး OrCAD Layoutထဲကို၀င္ရပါတယ္။ အဲဒီမွာအခက္အခဲေတြ႕ႏိုင္တာကေတာ့ License ပါ။ License file ကို OrCAD Installer CD ထဲကေန Computer ထဲကို အရင္ဆံုးကူးထည့္ထားဖို႔ လိုပါတယ္။ Layout ထဲကိုေရာက္သြားရင္ File Menu ထဲက New ထဲမွာ New Project ကိုေရြးရပါတယ္။ အဲဒီအခါမွာ Dialog Box ေလးေပၚလာပါလိမ့္မယ္။

Project Name ကိုေပး။ Schematic Option ကိုေရြး။ OK ကိုႏိွပ္ပါ။

ဒီအေျခအေနေရာက္ရင္ Schematic စဆြဲလုိ႔ရပါၿပီ။ ဒါက Tool Bar ပါ။

Tools ေတြကို ဘယ္ကေနညာအတိုင္း ၾကည့္မယ္ဆိုရင္...

  1. Select
  2. Place part
  3. Place wire
  4. Place net alias
  5. Place Bus
  6. Place junction
  7. Place bus entry
  8. Place power
  9. Place ground
  10. ........
  11. ........
  12. ........

ဆိုၿပီးေတြ႕ရပါတယ္။

1. Select

ဒီ Tool ကေတာ့ ေျပာစရာမလိုဘူးထင္ပါတယ္။

2. Place part

ဒါက Components ေတြကို ေနရာခ်တဲ့ Tool ပါ။ ေရြးလုိက္ရင္ ဒီ ေလးေပၚလာမွာပါ။

ညာဘက္ေဒါင့္က Component ရဲ႕ Preview ပါ။ ဒီ Circuit Design ေလးကို ဆြဲြၾကည့္ပါ။

Wednesday, 18 July 2007

RS232 in C Programming

ဒီ Program ကေတာ့ C, C++ Programming Language နဲ႔ RS232 (COM) ကို ေရး၊ ဖတ္တဲ့ Program ေလးပါ။ သူ႕ကိုေရးဖို႔ဆိုရင္ bios.h (Header file) လုိပါတယ္။ bios.h အတြက္ download လုပ္ဖို႔လည္းေပးထားပါတယ္။ bioscom(..., ..., ...) ဆိုတဲ့ Command ေလးကိုသံုးၿပီးေရးထားတာပါ။ ဒါေပမယ့္ Display ျပဖို႔အတြက္ေတာ့ LEDs ဒါမွမဟုတ္ LCD display လုိပါလိမ့္မယ္။

#include "bios.h"
#include "conio.h"
#include "dos.h"

#define COM1 0
#define DATA_READY 0x100
#define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00)

int main(void)
{
int in, out, status;
bioscom(0, SETTINGS, COM1); /*initialize the port*/
cprintf("Data sent to you: ");
while (1)
{
status = bioscom(3, 0, COM1); /*wait until get a data*/
if (status & DATA_READY)
if ((out = bioscom(2, 0, COM1) & 0x7F) != 0) /*input a data*/
putch(out);
if (kbhit())
{
if ((in = getch()) == 27) /* ASCII of Esc*/
break;
bioscom(1, in, COM1); /*output a data*/
}
}
return 0;
}

Download : bios.h

"Electronics" Designer

“အီလက္ထရြန္းနစ္ဒီဇိုင္နာ” ဆိုတာကေတာ့ အေရာင္ေတြအေၾကာင္း၊ Tone ေတြအေၾကာင္း၊ Special Effect ေတြအေၾကာင္းသိစရာမလိုပါဘူး။ ဒါေပမယ့္ Electronics Components ေတြအေၾကာင္းေတာ့သိဖို႔လိုပါမယ္။ ၿပီးေတာ့ ကိုလည္းကိုယ္တိုင္ Circuit ဒီဇိုင္းထုတ္တတ္ရင္ေတာ့ ပိုေကာင္းပါတယ္။ Software ကေတာ့ OrCAD Software Package ကိုအမ်ားဆံုးအသံုးျပဳၾကပါတယ္။ Schematic, Layout, Simulation ဆိုၿပီးအဆင့္ဆင့္ တည္ေဆာက္ သြားျခင္းအားျဖင့္ Electronics Circuit တစ္ခုကိုရပါတယ္။ PCB (Printed Circuit Board) လုိ႔အတိုေကာက္ ေခၚပါတယ္။ OrCAD Software Pacakage မွာပါတဲ့ Software ေတြကေတာ့ Capture, Layout, PSpice AD တို႔ျဖစ္ပါတယ္။ အျခား Tools ေလးေတြလည္းပါပါတယ္။ အသံုးျပဳနည္းအဆင့္ဆင့္ကိုလည္း ေဖၚျပသြားပါမယ္။ ကၽြန္ေတာ္တုိ႔ သံုးတာကေတာ့ OrCAD Version 10.0.0 ပါ။

Tuesday, 17 July 2007

USB Virtual Port

Mocrocontroller နဲ႔ USB port ကို အသံုးျပဳခ်င္တဲ့အခါမွာ ပံုမွန္အားျဖင့္ေတာ့ RS232 ကို support လုပ္တဲ့ Port (RXD, TXD) တစ္ခုအနဲဆံုးပါရပါမယ္။ ဒါကို Serial Port လို႔ေခၚပါတယ္။ ဒါေပမယ့္ USB မွာ Mode ၂ မ်ိဳးရွိပါတယ္။ တစ္ခုက UART Mode ျဖစ္ၿပီး ေနာက္တစ္ခုက SPI (Serial Peripheral Interface) Mode ကို အျဖစ္အသံုးျပဳလုိ႔ရပါတယ္။ UART အေၾကာင္းကိုေတာ့ ကၽြန္ေတာ္တင္ခဲ့ၿပီးပါၿပီ။ အဲဒီလိုသံုးတဲ့အခါမွာ Software ကေနေရးၿပီးသံုးရပါတယ္ (Virtual Port လို႔ေခၚပါတယ္)။ Timing Diagram ကိုၾကည့္ၿပီးေရးရပါတယ္။ အဲဒါကေတာ့ သက္ဆိုင္တဲ့ USD Device ရဲ႕ Data Sheet မွာပါပါတယ္။ အဓိကၾကည့္ရမွာေတြကေတာ့ CLK (Clock), CS (Chip Select), Input, Output Timing ေတြပါပဲ။ ေအာက္မွာ နမူနာ Timing Diagram ေတြ ေပးထားပါတယ္။ ေရးရတဲ့ Code ေတြကိုေတာ့ ေနာက္မွ ထပ္တင္ပါမယ္။

Monday, 16 July 2007

First Steps With Embedded Systems

အခု PDF file ကေတာ့ Microcontroller နဲ႔ပါတ္သတ္တဲ့ အေျခခံ Hardware/Software ေတြကို အၾကမ္းဖ်င္းရွင္းျပထားပါတယ္။ စၿပီးေလ့လာသူေတြအတြက္ သင့္ေတာ္မွာပါ။ C Programming Language ကိုအေျခခံၿပီးရွင္းျပထားပါတယ္။

Download : First Steps With Embedded Systems

Learning SCI (Serial Communication Interface) at Microcontroller

ဒါေတြကေတာ့ SCI (Serial Communication Interface)/ RS232 ကိုအသံုးျပဳၿပီး Microcontroller Program ေတြေရးခ်င္တဲ့ သူေတြေလ့လာလို႔ ရပါတယ္။ ဒါေပမယ့္ ကိုသံုးမယ့္ Microchips ေတြက RS232/ Serial Communication လက္ခံလား လက္မခံဘူးလားဆိုတာကုိေတာ့ အရင္ေလ့လာဖို႔လုိပါလိမ့္မယ္။
ဒီမွာေလ့လာဖို႔အတြက္ Hitachi H8/30xx series Datasheet ကိုပါထည့္ေပးလုိက္ပါတယ္။ ကိုသံုးခ်င္တဲ့ Chip ရဲ႕ Datasheet ကုိေတာ့ Internet မွာရွာလို႔ရပါတယ္။

Download : Hitachi H8/30xx series Datasheet
Download : Serial Communications Interface

Friday, 13 July 2007

Embedded System (E-Book)

This Book is good for learners, who want to understand the "Embedded Software". This book is published at "October 01, 2006", so its update book. Its small size storage but effective. You can download quickly and read.

Download Programming Embedded Systems (By Michael Barr, Anthony Massa)

Thursday, 12 July 2007

Microcontroller ROM types

Microcontroller can be classify by TWO types, according to its download function.
(1) Flash
(2) Flash and Debug

"Flash" means only download and execute the firmware. Such as some of "Hitachi" series.
"Flash and Debug" means download, execute and can debug (insert brake, watches for pots, data) during running the firmware. Debug by programmer, which attached to computer's aplication. Such as some of "Sygnal" series.
But..."Flash and Debug" mode microcontroller has normally no warrenty.
(Warrenty periods for microcomtrollers are mostly 3 years)

In Myanmar mostly used "PICxxx" series. They also cannot debug.

Debugger for "Sygnal" series Microcontroller

Tuesday, 10 July 2007

Torrents

Torrent ဆိုတာကေတာ့ Free မရတဲ့ Software, E-Book, Game, Movie, Song ေတြ၊ size အရမ္းမ်ားတဲ့ File ေတြကို Download လုပ္တဲ့ေနရာမွာသံုးလို႔ရတဲ့ Software ပါ။ Torrent သံုးေတာ့မယ္ဆိုရင္ေတာ့ ပထမဆံုး Torrent Software ကို Install လုပ္ရပါတယ္။ ကၽြန္ေတာ္သံုးတာကေတာ့ utorrent ပါ။ Torrent Software ေတြအမ်ားႀကီးရွိသလို Torrent Web Site ေတြလည္းအမ်ားႀကီးရွိပါတယ္။ ၿပီးရင္ Torrent Web Site တစ္ခုကို၀င္ၿပီး လိုခ်င္တဲ့ Software, ... ကိုရွာရပါတယ္။ ေတြ႕ရင္အဲဒီ Torrent Link File ေလးကုိ Download လုပ္ရပါတယ္။ ၿပီးရင္ Torrent Software ထဲက File Menu -> Add Torrnet ထဲမွာ Torrent Link File ကိုေရြးၿပီးရင္ Download စၿပီး လုပ္ပါၿပီ။ File size ရယ္၊ Seed/Peer ရယ္ေပၚမူတည္ၿပီး အခ်ိန္က မိနစ္ပိုင္းအတြင္းကေန ရက္၊ သီတင္းပါတ္ အထိၾကာတတ္ပါတယ္။ ဒါေပမယ့္ အစအဆံုးျပန္လုပ္စရာမလိုတဲ့အတြက္ ပစ္ထားလို႔ရပါတယ္။ Software, E-Book, Game, Movie, Song ေတြေတာ္ေတာ္မ်ားမ်ားကို Torrent ေတြမွာရႏိုင္ပါတယ္။ အသံုးမ်ားတဲ့ Torrent web site ေတြကေတာ့ ...

www.torrentspy.com
www.utorrent.com
www.thepiratebay.org
www.btmon.com
www.bitzip.com
www.torrentz.com

Download : utorrent.exe

Friday, 6 July 2007

Micro-p and RS232

If you want to control RS232 port from Microcontroller, its little different with control from Application. Because not all of Micro-p are support RS232. Eg: some of the chips form "Silicon Lab" not support RS232 such as C8051F120, some support RS232 such as "Hitachi" H8 series. Hitachi H8 series also support the operations of MMC (Multi-media Memory Card). The operations are Read from and Write to that sources. The following C program shows the basic operation of micro-p communicating RS232. Its used Hitachi H8/3052F chip.

#include <3052f.h>

void main(void)

{

int i;

SCI1.SCR.BYTE=0; /* stop SCI1, internal clock use */

SCI1.SMR.BYTE=0; /* async. mode, 8data, 1stop, no-parity */

SCI1.BRR=40; /* 19200bps */

for( i = 220 ; i > 0 ; i--); /* wait 1bit transfer time */

SCI1.SCR.BYTE = 0x30; /* enable Tx & Rx, disable interrupt */

SCI1.SSR.BYTE &amp;amp;amp;= 0x80; /* clear receive error flag all */

for(i=0;i<26;i++){ /* send 'ABC--XYZ' */

while(!SCI1.SSR.BIT.TDRE); /* send enable? */

SCI1.TDR='A'+i;

SCI1.SSR.BIT.TDRE = 0; /* now data sending */

}

while(1){

while(!SCI1.SSR.BIT.RDRF); /* data recieve? */

SCI1.SSR.BIT.RDRF = 0; /* clear receive data flag */

while(!SCI1.SSR.BIT.TDRE); /* send enable? */

SCI1.TDR=SCI1.RDR; /* echo back */

SCI1.SSR.BIT.TDRE = 0; /* now data sending */

if( SCI1.TDR == 0x0d ){ /* ? */

while(!SCI1.SSR.BIT.TDRE);

SCI1.TDR = 0x0a; /* yes then send */

SCI1.SSR.BIT.TDRE = 0;

} }

}

Monday, 2 July 2007

Serial ATA (SATA)

Virtually every PC today relies on the venerable ATA (Advanced Technology Attachment) interface to connect hard drives, CD drives, and other types of drives. Spurred by the relentless demands for faster drive performance and greater reliability, the ATA standard (also known as IDE), which has a rated connection speed of 3.3 MBps, has undergone many advances. The Ultra ATA (dubbed Ultra ATA/133) interface can pass 16 bits of parallel data between a drive and PC at speeds of up to 133 MBps.
Such parallel-signal schemes, however, are reaching the practical limits of current cable, drive, and controller electronics. To achieve even faster data transfer rates, drive manufacturers are turning to a serial scheme called Serial ATA (SATA). Though it may seem counterintuitive that a serial technology (which transfers data one bit at a time rather than transferring multiple data bits simultaneously, as a parallel scheme does) could outpace a parallel one, that's exactly what SATA does; it transfers data at a much faster rate and more efficiently. Now that SATA drives, add-in controller cards, and most importantly, PC chipsets are finally available, you'll want to understand the benefits of this technology.
SATA typically handles data transfers of up to 150 MBps and in the future can be scaled up to 300 MBps and beyond. Some manufacturers predict speeds as high as 600 MBps. SATA offers a speedier boot process and faster loading of programs and data. But perhaps the best part of the new technology is SATA's simpler cabling.
If you've ever looked inside a PC, you've seen the wide, gray, 40-pin ribbon cable that daisy-chains master/slave drives to the ATA controller port. Not only were those 40 wires laying close together a potential source of interference, but routing the bulky cable made the placement of drives difficult. Moreover, the traditional cables are notorious for disturbing air flow within PCs. SATA uses thin cables that route easily and don't block a PC's cooling system, thus preventing hot spots and improving overall system reliability.
Connecting SATA drives is easier, too. Each drive connects to the host PC via an individual cable; the host PC treats all drives as master devices, eliminating the jumper settings, which have frustrated users for years. This greatly eases installation and configuration. Finally, the cables can be longer. Current parallel ATA cables max out at 18 inches, while SATA cables can be as long as 39.4 inches (1 meter). That's good for high-end boxes that use full-tower cases.
You will also find adding or replacing drives easier with SATA. You won't have to power down your PC before connecting a new drive, because SATA allows for hot-pluggable connections, so you can add or remove SATA drives while your PC is running. The connectors are also keyed (that is, designed for one-way insertion), so you don't need to worry about accidentally reversing a connection.
SATA is software-compatible with ATA, so you don't need any special drivers or OS upgrades to support the new drives; the SATA controller does the conversion between the drive and host PC. Consequently, SATA drives can coexist on the same system with parallel ATA devices.
Yet because of the differences between SATA and parallel ATA, you can't simply drop a SATA drive into a parallel ATA system. Here's what it takes to implement Serial ATA on your PC.
To start, you'll need a new SATA drive such as the 120GB Seagate Barracuda ATA V (www.seagate.com). The only difference you'll see in the SATA drive is the connector scheme (and the absence of drive jumpers).
The host PC requires a SATA controller with one or more SATA ports, such as the Promise Technology SATA150 TX2plus, which combines two independent SATA ports and one Ultra ATA port and supports up to two serial and two Ultra ATA drives (www.promise.com). In new SATA-compatible machines, the motherboard uses a controller chip that supports SATA. The Marvell 88i8030 Serial ATA Bridge Chip (www.marvell.com) is one accepted device available for developers, and integrated chipsets supporting SATA are expected from leading chipset makers including ALi Corp. (www.ali.com.tw), Intel Corp. (www.intel.com), and VIA Technologies (www.via.com.tw).

RAID

What's RAID 10 And Why Should I Use It?
RAID is, of course, a Redundant Array of Independent (or Inexpensive) Disks. It is a method of storing information on multiple hard disks for greater protection and, in some cases, performance. Under the RAID umbrella are a number of different storage methods, called levels and numbered from 0 to 9, some of which are more useful than others.
Each level is a distinct method of organizing storage, but some of them can be combined which produces a two-digit RAID level, such as RAID 10, sometimes identified (and more appropriately so) as RAID 1+0. In general, each RAID level has its own advantages and disadvantages.
RAID 10, for example, is fast, it's crashproof and it eats disk space. If you need more protection for your storage, or faster storage performance, RAID 10 is a simple, relatively cheap fix.
To implement RAID 10 you need at least two physical hard drives; just using two partitions on the same hard drive is inadequate. You also need a disk controller that understands RAID.
RAID 10 works by striping and mirroring your data across at least two disks. Mirroring, or RAID 1, means writing your data to two or more disks at the same time. Even if one disk fails completely, the mirror preserves the information. Striping, or RAID 0, means breaking your data up into chunks and writing the chunks to different disks in succession. It improves performance because the computer can get data off more than one disk simultaneously. (For the purists out there: RAID 0 technically isn't a RAID level at all because it doesn't provide any redundancy to protect information. However, it is commonly referred to as a RAID level anyway.)
Before we go on, here's one important caveat about backup and RAID 1. Although data is written to two disks simultaneously, the data is not being backed up. Should your system rather than the hard disk suffer an error, erroneous data could be sent to both disks at the same time, corrupting both drives simultaneously. You still must have a backup strategy in place, even if you use RAID 1. (For greater protection against data corruption, use a RAID level that includes a parity drive — but that's a different story.)
Put RAID 1 and RAID 0 together and you get RAID 10. RAID 10 is secure because mirroring duplicates all your data. It's fast because the data is striped across two or more disks, meaning chunks of data can be read and written to different disks simultaneously.
The drawback to RAID 10 is that it cuts your effective disk space in half. Since everything is mirrored (duplicated), two 60 GB disks give you a total system capacity of 60 GB. And remember, always use identical disks when creating a mirrored array. The disk geometry (number of heads, cylinders, etc.) is critical, and using disks that are different is discouraged in the strongest terms.
Given the cost of disks, storage space is much less of a problem than it was a few years ago. It's cheap enough to add additional disks to support your RAID 10 array and if the disk controller on your motherboard doesn't support RAID 10, you can get an add-in disk controller card for less than $50.
RAID 10 is also slightly more complex to set up than conventional storage, but it isn't particularly hard. The system or disk controller software includes install routines that will walk you through the process. It usually takes just a few minutes to install a RAID 10 array.