Showing posts with label Lesson. Show all posts
Showing posts with label Lesson. Show all posts

Wednesday, September 29, 2010

AVR programmer


Өмнөх бичлэгээр AVR микроконтроллерийн программыг хэрхэн С хэл ашиглан бичих талаар бичсэн. Тэгвэл одоо компьютер дээр хөрвүүлсэн HEX кодоо чипрүүгээ хэрхэн хуулах (шарах), хуулах төхөөрөмж энгийн прогматорийн (programmer) талаар бичье. Энэхүү энгийн AVR прогматор нь төвөггүйгээр hex файлыг ихэнх АTMEL AVR микроконтроллерүүдэд харьцангуй бага хугацаанд хуулдаг. Уг прогматор нь бусад энгийн прогматоруудаас илүү найдвартай маш бага хугацаанд хуулах үйлдлийг гүйцэтгэдэг.
AVR прогматор нь сериал прогматор нөгөө талаас ажиллаж буй схемнээсээ микроконтроллын SPI холболтын хөлнүүд, RESET хөлийг гаргасан микроконтроллерийн хавтан хоёроос бүрддэг. Таньд контроллераа олон дахин програмчлах тохиолдол гарч магадгүй. Энэ үед эх хавтангаас гаргасан хөлнүүддээ прогматороо залгаад шархад л хангалттай.
AVR Сериал прогматор
Сериал прогматорын хэлхээний зураг

AVR
прогматорын PCB нүүрэн талаасаа

AVR
прогматорын PCB ар талаасаа

RS232
сериалийн залгуурт багтаасан байдал

AVR
сериал прогматор 6 хөлтэй байдлаар
AVR эх хавтан
Энэхүү эх хавтан AVR микроконтроллерийг програмчлахын тулд хамгийн бага элемент ашиглан жишээ болгож хийсэн бөгөөд шарсны дараа конроллераа өөр хэлхээнд тавин ашиглах боломжтой. Сериал прогматороо ашиглан ихэнх төрлийн AVR контроллерийг програмчлаж болох ба програм шарагдаж эхлэх үед RESET 0 болох учир өөр хэлхээг микроконтроллерын портуудад давхар угсарах боломжтой байдаг.

Микроконтроллерт програм шарах зориулалт бүхий эх хавтан. 28-DIP AVR ATmega8 микроконтроллер

Энд хоёр коннектор холбоно: Сериал прогматор, +5V –ийн гадаад тэжээл.
Эх хавтанд 28-DIP суурь, 4MHz осцеллатор, хоёр ширхэг 22pF туйлгүй конденсатор, мөн хоёр ширхэг толгой коннектороос бүрдэнэ. Хоёр хөлтэй коннектор нь AVR микроконтроллерийг тэжээх +5V –ийн тэжээл, 6-н хөлтэй коннекторт прогматороо холбоно.

Эх хавтан 28-DIP AVR ATmega8 микроконтроллер
+5V –ийн тэжээлийн хүчдэлийг энэ тохиолдолд компьютерын USB портноос авбал илүү тохиромжтой байж мэдэх юм.
PonyProg
Анхны бичлэгтээ AVR микроконтроллер ашиглах явцад хэрэглэгдэх программ хэрэгслүүдийг татаж авах холбоосыг тавьсан. Харин энэ програмыг дараах холбоосоос татаж авна уу. ТАТАХ . Энэ хэрэгсэл програм Windows XP, Windows Vista, 7 32 битийн үйлдлийн системтэй, компьютер сериал порттой байх шаардлагатай. Сүүлийн үед гарч буй ихэнх компьютерүүд сериал порт байхгүй, 64 битийн системүүдтэй байгаа тул дараагийн бичлэгтээ USB порт ашигласан, ямарч үйлдлийн системд ажиллах хялбар прогматорыг танилцуулах болно. PonyProg нь бидний ашиглах AVR прогматорт тохирох програм бөгөөд ажиллаж эхлэхээс өмнө "Setup" цэснээс "Interface Setup" –руу орон зурган дээрх дараах тохиргоог хийх шаардлагатай.

Дараагийн сонгох алхам "AVR micro" мөн өөрийн хэрэглэх гэж буй микроконтроллерийн төрлийг сонгож өгнө (Жишээ нь ATmega8).
Дараагий алхам бүрэн бичигдэж дууссан програмын HEX файлыг AVR микроконтроллерийн програмын флаш санах ойд шарж өгнө. Үүний тулд "File" цэснээс "Open Program (FLASH) File ..."-ийг сонгон нээгдсэний дараа hex файлыг дуудаж өгнө. Ингэснээр програмын дэлгэцэн дээр 16-тын тоонууд гарах болно. Төгсгөлд нь бүдэг бороор тодруулсан икон дээр дарж, эсвэл "Command" цэснээс "Write Program (FLASH)" гэсэн сонголтыг дарж шарах коммандыг өгнө.

"Yes"
товчлуур дээр дарж баталгаажуулна.
Комманд өгснөөр програм шарах (бичих) үйл явцыг прогресс хувиар харуулах ба шарж дууссаны дараа зөв шарагдсан үгүйг шалган дахин үйл явцыг харуулна. Хэрэв буруу шарагдсан тохиолдолд алдаа заан дахин шарахыг санал болгоно. Энэ үйл явц програмын багтаамжаас хамааран 10 -аас 30 секунд үргэлжилнэ.

Дараа нь програм бүрэн шарагдсан гэсэн мэдэгдэл ирэх ба энэ үед AVR микроконтроллер програмчлагдсан, ашиглахад бэлэн болсон байна.


AVR микроконтроллер

ATMEL AVR бүлийн 8 битийн микроконтроллерүүд нь электроник, робот сонирхогчдын дунд хэрэгцээ, нэр хүнд маш хурдан өсч байгаа микроконтроллер юм. Ингэж хэрэгцээ өсөх болсон шалтгаан нь дээд түвшины програмчлалын хэл C, хөгжих өндөх боломж бүхий open-source GNU хэрэгсэлүүд (gcc) ашигладаг, мөн олон нэмэлт интеграл хэлхээг өөртөө агуулсан нь түлхэц болсон. Програм бичихдээ ассамблер, С хэлийг аль нэгээр эсвэл бага зэрэг холих боломжтойгоос гадна, програмыг микроконтроллерт сериалаар бичдэг нь хүний ажилгааг тун төвөггүй болгодог. Иймд уг микроконтроллерийг хэрхэн хэрэглэдэг, С хэл хэл дээр хэрхэн програмчлах талаар энэхүү блогт бичлэг орууллаа.
С хэлээр програмчлах хэрэгсэлүүд
AVR бүлийн микроконтроллер дээр С хэл ашиглан програмчлахын тулд хоёр төрлийн хэрэгсэл програм хэрэгтэй: AVR Studio, WinAVR. Доорх өгөгдсөн линкүүдээр орон тус програмын хамгийн сүүлийн хувилбарыг үнэгүй татан авах боломжтой.
· AVR Studio нь програмыг өндөр нэгдэлтэйгээр хөгжүүлж болох орчин бөгөөд дотроо кодын алдаа хянагч, ассемблер, HEX файл татагч, микроконтроллерийн эмулатор давхар багтсан.
· WinAVR нь GCC дээр суурьласан AVR-ийн хөрвүүлэгч юм. Энэ програмыг AVR Studio-той давхар суулган С-гийн хөрвүүлэгч нь болгон ашигладаг ба эсвэл Notepad ашиглан кодоо бичин дуудаж хөрвүүлж болно.
Програмыг суулгах тун амархан. Эхлээд програмуудынхаа setup файлуудыг татан AVR Studio-г анхлан суулган дараа нь WinAVR-ийг суулгана. Програмын суулгахдаа сонголтуудаас анхлан сонгогдсон (default) сонголтуудыг зөвшөөрч өгөх хэрэгтэй.
AVR Studio ашиглан С хэлээр програмчлах
Жишээ болгож ATMEL AVR бүлийн микроконтроллеруудаас ATmega8-ийг сонгож 6-н оролтоос хамааран 6-н LED асах энгийн програм С хэл ашиглан бичье. Бидний ажил дараах дарааллын дагуу явагдах болно.
· AVR Studio дээр шинэ төсөл (project) үүсгэх
· C кодыг HEX файлруу хөрвүүлэх
1. AVR Studio дээр шинэ төсөл үүсгэх
· Эхлээд дараах сонголтыг сонгон програмыг ажлуулна. Start | Programs | Atmel AVR Tools |AVR Studio.
· Програмын цонх гарч ирсэний дараа Project | New Project цэсийг сонгоход зураг1-т үзүүлсэн цонх гарч ирнэ. Энэхүү цонхонд микроконтроллерийг ямар хэл ашиглан програмчлах, төслийн нэр үүсгэх газрыг зааж өгнө. Хэрэв та анхлан бичиж байгаа бол шинээр project-уудаа хадгалах хавтас (folder) үүсгэхийг зөвлөж байна. Бид project-ийнхаа нэрийг led гэж нэрлэн NEXT товчийг даран цааш үргэлжлүүлье.
Зураг1:
· Дараагийн алхам бол AVR-ийн ямар симулатор, микроконтроллерийг сонгох. Зураг2 –д өөрсдийн сонголтыг харуулав. Хэрэглэх симулатор, микроконтроллерийг сонгосны дараа FINISH товч дарж ажлын дэлгэцэнд шилжинэ.
Зураг2:
· Энэ үед шинэ project файл үүссэн байх ба код бичих цонход кодоо бичин хөрвүүлнэ. Жишээ болгож доорх лед асааж унтраах кодыг бичиж хөрвүүлж үзье.
Зураг3:
· Кодоо бичиж дууссаны дараа Project | Save Project цэсийг сонгон програмыг хадгална.
//*************************************************************************
// School of phycics & electronics 2010.09.29 lab106
//*************************************************************************
#include // avr толгой файл
int main(void)
{
unsigned char i; // хувьсагч зарлаж байна
DDRB = 0x00; // PORTВ-г оролт болгож зарлаж байна
PORTB =0xFF; //портыг pull up байхаар тохируулав
DDRC = 0xFF; // PORTС-г гаралт болгож зарлаж байна
PORTC = 0x00; // PORTС-д 0x00 гэсэн утга оноож байна
while(1) // Төгсгөлгүй давталт
{
// оролт PORTB-г уншаад утгыг i хувьсагчид оноо
// энэ портод 6-н товчлуур холбогдсон
i = PINB;
// i хувьсагчийн утгыг PORTC-д оноо
// энэ портын 6-н хөлөнд лэдүүд холбогдсон
PORTC = i;
}
return 1;
}
//**************************************************************************
Жишээ код 1:
2. С кодыг HEX файл болгон хөрвүүлэх
· Үндсэн цэснүүд дотроос Build | Rebuild All сонголтыг сонгон кодыг хөрвүүлнэ.
· Дээрх кодыг хөрвүүлэхэд led.hex файл үүсэх бөгөөд алдаа гараагүй байна. (Зураг4) HEX файл project-ийг үүсгэсэн хавтасанд \default гэсэн хавтас үүсгэн хадгалагдсан.

Зураг4:

Thursday, May 7, 2009

Программатор ба эх хавтан

Өмнөх нийтлэлд дурдсан хамгийн хялбар программатор болон программчлагдсан контроллерийг ажиллуулж турших эх хавтангийн угсрагдсан байдлын зургийг нийтлэв.
Зураг 1. Программатор
Зураг 2. Микроконтроллерийн эх хавтан

Monday, April 20, 2009

Микроконтроллер гэж юу вэ?

Өнөөдөр микроэлектроникийн хөгжил дээд цэгтээ хүрч байна. Орчин үеийн техникийн хөгжлийн нэг гайхамшиг бол микроэлэектроник юм. Түүн дотроо микрокомпьютер, микропроцессорын техник хөгжсөнөөр төрөл бүрийн автоматууд, роботууд зохион бүтээгдэж, үйлдвэрлэлийг автоматжуулахаас гадна ахуйд нэвтэрч байна. Өнөөдөр гэр оронд хэрэглэдэг энгийн нэг будаа агшаагчаас эхлээд бүхий л цахилгаан хэрэгсэлүүд автоматчилагдаж байгаа билээ. Тэрхүү автомат цахим хэсэг нь микропроцессорын техник дээр тулгуурладаг.
Сүүлийн жилүүдэд манай улсад хүүхэд залуус автомат робот зохион бүтээж хоорондоо уралдаж, тэмцэлддэг "Робокон" тэмцээн зохиогддог боллоо. Энэ тэмцээнд бичил "Робот" зохион бүтээж оролцох хүсэл эрмэлзэлтэй залуус өдрөөс өдөрт олширч байгаа билээ. Тэгэхээр би нэлээд хэдэн жил дээд сургуульд электроникийн хичээл заасан хүний хувьд энэхүү блогоор "Микроконтроллер" гэж юу болох, түүгээр хэрхэн автомат төхөөрөмжүүд хийж болох тухай ойлголтуудыг анхлан суралцагч залууст хүргэхийг зорьж нээж байна.
Ингэхийн тулд хамгийн энгийн бөгөөд авсаархан, бас ч гэж нэлээд хүчтэй MCS-51 бүлд багтдаг AT89C2051 микроконтроллерийг сонгон авлаа. Энэхүү "бяцхан" компьютерийг гартаа оруулаад авбал Intel-8051 төрлийн бүх контроллеруудыг ашиглах чадвартай болно.
Контроллерийг хэрхэн программчилдаг, түүгээр автомат төхөөрөмж хэрхэн зохион бүтээх талаар мэдлэгтэй болохын тулд миний бичсэн гарын авлагыг дараах линкээс татаж авч уншина уу. Энэ гарын авлагад 2005 онд микроконтроллерийн хичээлийг орохдоо ашигласан хамгийн хялбар хийцтэй AT89C2051 микроконтроллерийн программчлагч төхөөрөмж, түүнийг хэрхэн хийх болон ашиглах талаар зөвлөгөө бий. Хэрэв микроконтроллерийг программчилж суръя гэвэл өөрийн гэсэн программатортой байх зайлшгүй шаардлагатай. Түүнчлэн программчилсан контроллероо ажиллуулж шалгах микроконтроллерийн эх хавтанг угсарч бэлдэх шаардлагатай болно. Ингээд гарын авлага татах линкүүд нь:
1. http://www.mediafire.com/file/toxcdnym2mo/MCB01.pdf Гарын авлагын 1-р хэсэг
2. http://www.mediafire.com/file/jmnwcyii5di/MCB02.pdf Гарын авлагын 2-р хэсэг
3. http://www.mediafire.com/file/noaztd2ugm5/MCB03.pdf Гарын авлагын 3-р хэсэг
Энд 3-р хэсгийг бүрэн гүйцэд дуусгаагүй учир хүлцэл өчье. Цаашид үргэлжлүүлэх зав гарвал хийх болно.
Нэгдүгээр хэсэгт микроконтроллер гэж юу болох, MCS-51 бүлийн ассемблерийн хэл болон хөрвүүлэгчийн тухай, бяцхан контроллер AT89C2051-ийг программчлах төхөрөөмжийг хэрхэн хийх, түүнийгээ хэрхэн ашиглах талаар бичсэн болно. Хоёрдугаар хэсэгт AT89C2051 микроконтроллерийн эх хавтанг хэрхэн угсрах болон энэхүү микроконтроллерийн дотоод бүтэц, зохион байгуулалтын тухай анхны ойлголтуудыг өгсөн болно.
Микроконтроллерыг программчилахад шаардлагатай Keil assembler хөрвүүлэгчийг:
http://www.mediafire.com/file/grmmn3ojnmg/ASM51.zip линкээс татаж аваарай. Харин энэхүү хөрвүүлэгчийн англи хэл дээрх зааврыг:
Мөн анхан шатны дасгал программуудын жишээг:
AT89C2051 микроконтроллерийн datasheet файлийг:
түүний ассемблерийн хэл дээрх инструкцүүдийн дэлгэрэнгүй тайлбарыг:
http://www.mediafire.com/file/zknt1kgymwm/INSSET.PDF линкээс авч хадгалаарай. Эдгээр бүх файлууд бүгд чухал шаардлагатай учир бүгдийг авч хадагална уу.
MCS-51 бүлийн контроллеруудын дэлгэрэнгүй зааврыг ч мөн аваад хадгалсан байхад илүүдэхгүй. http://www.mediafire.com/file/tyzm1mvnhmz/MCS-51_MANUAL.PDF
За ингээд амжилт хүсье. Асуух тодруулах зүйл байвал соммент үлдээгээрэй.