Агуулгын хүснэгт:

Dragon Rider 500 -ийг AVR Dragon -тойгоо хэрхэн ашиглах вэ: 10 алхам
Dragon Rider 500 -ийг AVR Dragon -тойгоо хэрхэн ашиглах вэ: 10 алхам

Видео: Dragon Rider 500 -ийг AVR Dragon -тойгоо хэрхэн ашиглах вэ: 10 алхам

Видео: Dragon Rider 500 -ийг AVR Dragon -тойгоо хэрхэн ашиглах вэ: 10 алхам
Видео: Fake Robux ads be like: 2024, Долдугаар сарын
Anonim
Dragon Rider 500 -ийг AVR Dragon -тойгоо хэрхэн ашиглах вэ
Dragon Rider 500 -ийг AVR Dragon -тойгоо хэрхэн ашиглах вэ

Энэхүү зааварчилгаа нь Ecros Technologies -ийн Dragon Rider 500 -ийн зарим онцлог шинж чанаруудыг хэрхэн ашиглах талаар сурах болно. Ecros вэбсайт дээр маш дэлгэрэнгүй хэрэглэгчийн гарын авлага байдаг гэдгийг анхаарна уу.

Dragon Rider бол AVR Dragon by Atmel нэртэй AVR микроконтроллер програмисттай ажиллах интерфейс самбар юм. Дэлгэрэнгүй мэдээллийг: Atmel's Wesite: https://www.atmel.com/ AVR Dragon линк: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 by Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500 угсрах зааварчилгаа: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/AVR микроконтроллеруудын талаар бүгдийг мэдэж аваарай: https://www.avrfreaks.net Энэ зааварчилгаа цаг хугацаа өнгөрөх тусам өсч магадгүй тул дахин дахин шалгаарай!

Алхам 1: AVR Dude

AVR Dragon -ийг програмчлахад ашиглахын тулд танд програмчлалын зарим програм хангамж хэрэгтэй болно. Би AVRdude -ийг Ubuntu үйлдлийн системтэй (linux) ашигладаг бөгөөд үр дүнд нь маш их баяртай байна. Хэрэв та програм хангамжийн програм хангамжийг хэрхэн тохируулах, ашиглахаа мэдэхгүй байгаа бол энэхүү зааварчилгааг шалгаарай. AVR-луу/Миний таамаглаж байгаагаар хэрэв та Dragon Rider 500-ийг худалдаж аваад угсарсан бол та AVR Dragon-тай чип хэрхэн програмчлахаа аль хэдийн мэддэг болсон байх.

Алхам 2: ATtiny2313 - LED -ийг анивчих

ATtiny2313 - LED -ийг анивчих
ATtiny2313 - LED -ийг анивчих
ATtiny2313 - LED -ийг анивчих
ATtiny2313 - LED -ийг анивчих
ATtiny2313 - LED -ийг анивчих
ATtiny2313 - LED -ийг анивчих

ATtiny2313 програмыг 20-зүү микроконтроллероор програмчилж үзье. Dragon Rider 500 нь хэд хэдэн өөр хэмжээтэй AVR микроконтроллерийн залгууртай. Үүнд: 8, 20, 28, 40 зүү залгуур. Та ямар залгуур ашиглаж байгаагаас хамааран Dragon Rider самбар дээрх үсрэгчдийг өөр өөрөөр тохируулах ёстой.

Jumper тохиргоо

Dragon Rider дээр холбогчийг тавь. (pin4 нь J22 -J -24 -ийн гол зүү юм) Зүү: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Энэ нь ISP (системийн програмчлалд) ажиллах боломжийг олгодог үндсэн тохиргоо юм.

Blinky Blinky

Хэрэв танд програмчлах зүйл байхгүй бол програмчлах нь сайн зүйл болохгүй. Би Dragon Rider -ийн LED -ийг нэг удаа анивчихын тулд маш богино кодын жишээ бичсэн байна. LED толгойг (J29) PortB толгойтой (J2) холбохын тулд тууз кабель ашиглана уу.

Програмчлал

Би C файл, makefile болон hex файлыг оруулсан. Танилцуулгад дурдсанчлан би зааварчилгааны програмчлалын талыг хамарч чадахгүй. Dragon Rider нь програм хангамжийн талыг огт өөрчилдөггүй тул AVR Dragon -тэй адил програм хий.

Алхам 3: LCD нэмэлтийг ашиглах

LCD нэмэлтийг ашиглах
LCD нэмэлтийг ашиглах

LCD нэмэлтийг ашиглах энгийн аргыг энд оруулав. Энэ нь LCD дэлгэц дээр "Dragon Rider" гэж бичих болно.

Техник хангамж:

  • ATtiny2313
  • R/W холбогч: R/W нь Dragon Rider Board дээрх "BIT1" -тэй холбогдсон байх ёстой (Ассемблейн зааварчилгааны тайлбарыг үзнэ үү)
  • J23: Энэ холбогчийг ISP програмчлалд зориулж суулгасан байх ёстой бөгөөд дараа нь LCD -ийг зөв ажиллахын тулд салгаж авна.
  • LCD -ийг PORT B руу тууз кабель ашиглан холбоно уу (J31 - J2)

Програм хангамж

Би Питер Флерийн LCD номын санг ашиглан 4 битийн горимд LCD жолоодож байна. Номын санг татаж авахын тулд Петрийн нүүр хуудсыг үзнэ үү. Та lcd.c -ийг өөрийн кодоор эмхэтгэсэн бөгөөд lcd.h -д дараах өөрчлөлтүүдийг хийх хэрэгтэй болно.

Бид дотоод RC осцилляторыг ашиглаж байгаа тул XTAL -ийг 1 МГц -т тохируулах шаардлагатай байна.

#XTAL 1000000 гэж тодорхойл

  • Порт тохиргоог PORTB болгон тохируулах шаардлагатай:
  • #LCD_PORT PORTB -ийг тодорхойлох

  • 4 мэдээллийн шугамын зүүг тохируулах шаардлагатай:
  • #LCD_DATA0_PIN 4 тодорхойлох #LCD_DATA1_PIN 5 тодорхойлох #LCD_DATA2_PIN 6 тодорхойлох #LCD_DATA3_PIN 7 тодорхойлох

  • RS, RW, E -ийн Pinout -ийг тохируулах шаардлагатай.
  • #LCD_RS_PIN 3 тодорхойлох #LCD_RW_PIN 1 тодорхойлох #LCD_E_PIN 2 тодорхойлох

    Питер Флерийн LCD номын санд хийсэн ажлын ачаар үндсэн програм нь маш энгийн юм. КОД:

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // lcd_clrscr () курсорыг унтраасан LCD дэлгэцийг эхлүүлэх; // LCD дэлгэцийг цэвэрлэх lcd_gotoxy (5, 0); // Курсорыг энэ байрлал руу шилжүүлэх lcd_puts ("Dragon"); // Энэ мөрийг LCD lcd_gotoxy (6, 1) дээр тавь; // Курсорыг энэ байрлал руу шилжүүлэх lcd_puts ("Rider"); // Энэ мөрийг LCD дээр байрлуул (;;)

    Код хавсаргасан

    Хавсаргасан кодонд түүний зөвшөөрлөөр Питер Флерийн LCD номын сан (lcd.c ба lcd.h) багтсан болно. Баярлалаа Петер! Миний хийсэн цорын ганц өөрчлөлт бол тодорхойлолтод зохих зүүг тохируулах явдал юм. Багцыг татаж авахын тулд түүний сайтад зочилно уу: https://www.jump.to/fleuryБи бас Эрик Б. Тэйлдтон, Жорг Вунш нарын бичсэн makefile -ийг оруулсан болно. Би avrfreaks.net дээр Жорг руу Ерөнхий сайд илгээсэн боловч түүнээс хариу ирээгүй. Линукс болон Лууг ашиглахын тулд makefile -д цөөн хэдэн өөрчлөлт орсон байна. Хоёулаа баярлалаа, ажлаа хуваалцах талаар өөрийн санал хүсэлтээ хэлээрэй.

    Алхам 4: 28 зүү UC ISP програмчлал (ATmega8)

    28 зүү UC ISP програмчлал (ATmega8)
    28 зүү UC ISP програмчлал (ATmega8)
    28 зүү UC ISP програмчлал (ATmega8)
    28 зүү UC ISP програмчлал (ATmega8)

    Дараагийн төслийн жагсаал нь 28 зүү бүхий ATmega8-ийг ашиглах болно. Энд 28 зүү бүхий микроконтроллерыг ISP програмчлахад ашигладаг үндсэн холбогчийг энд оруулав.

    Jumper тохиргоо

    Dragon Rider дээр холбогчийг тавь. (pin4 нь J22 -J -24 -ийн гол зүү юм) Зүү: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Техникийн мэдээлэл

    • J11 ба J12 -ийг ийм байдлаар холбосноор эдгээр тээглүүрийг I/O тээглүүр болгон ашиглах боломжтой болно. Альтернатив бол эдгээр тээглүүрийг гадаад болортой холбохын тулд чиглүүлэх явдал юм.
    • J13 -ийг ийм байдлаар холбох нь үүнийг дахин тохируулах зүү болгон ашиглах боломжийг бидэнд олгодог. Өөр хувилбар нь энэ зүүг I/O зүү болгон ашиглахын тулд PORTC толгой руу чиглүүлэх болно. (энэ нь ISP ашиглан энэ чипийг програмчлах боломжгүй гэх мэт олон сул талуудтай байх болно).
    • J16 & J22-J24 нь холбогдох тээглүүрүүдийг (Reset, MISO, MOSI, SCK) AVR Dragon-ийн ISP толгой руу чиглүүлэхийн тулд ийм байдлаар холбогддог.

    Алхам 5: LCD болон товчлуурын дэвшилтэт хэрэглээ: том цаг

    Нарийвчилсан LCD болон товчлуурын хэрэглээ: Том цаг
    Нарийвчилсан LCD болон товчлуурын хэрэглээ: Том цаг

    Энэ бол LCD дэлгэц, товчлуурыг ашигладаг хөгжилтэй төсөл юм. Бид LCD дээр бодит цагийн цагийн функц, захиалгат тэмдэгтүүдтэй ажиллах болно. Доод талын зурган дээр та 7:26:07 цагийг LCD дэлгэц дээр олон тоогоор харж болно. Дугаар бүр нь том тоог харуулахын тулд 2x2 хэмжээтэй тэмдэгтүүдийг ашигладаг. Энэ нь Xtinus -ийн XBMC төсөлд зориулж бичсэн фонтыг ашигладаг. Товчлуурууд нь цагийг тохируулахад хэрэглэгддэг. Зүүн цагийг нэмэгдүүлж, Минутыг дээшлүүлж, Баруун 12-24 цагийн хооронд шилжих ба Enter нь секундүүдийг тэг болгож тохируулна. Бид маш буруу дотоод осцилляторыг ашиглаж байгаа тул цаг нь тийм ч сайн цагийг хадгалдаггүй, гэхдээ энэ програмыг илүү нарийвчлалтай гадаад болор ашиглан хялбархан өөрчилж болно. Үүнийг доорх видеоноос үйлдэл дээр нь үзээрэй. Энэ код хэрхэн ажилладаг талаар тайлбарласан байгаа, гэхдээ надад одоогоор цаг алга. Одоогоор LCD толгой (J31) -ийг PORTD (J4), товчлуурын толгойг (J30) PORTB (J2) руу холбоно уу. SW1 ба SW2 хоёулаа унтраах байрлалд байгаа эсэхийг шалгаарай. AVR Dragon -ийг USB кабелиар холбоод кабелийн нөгөө үзүүрийг компьютерт холбоно уу. SW2 -ийг асаагаад ATmega8 -ийг өөрийн хүссэн програмчлалын програм хангамжаар програмчилна уу (доорх зургаан өнцөгт файл; гал хамгаалагч нь үйлдвэрийн тохиргоонд шатсан). ТАЙЛБАР: Зүүн ба Дээд товчлуурыг ашиглахын тулд J22 ба J24 -ийн шунтуудыг устгах хэрэгтэй. энэ нь цахилгаан унтарсан үед.

    Алхам 6: Өндөр хүчдэлийн програмчлал

    Би гал хамгаалагчийн буруу тохиргоог тохируулсан ATtiny2313 -ийг дахин амилуулахын тулд өндөр хүчдэлийн зэрэгцээ програмчлалыг ашигласан. Энэ зааварчилгаа дээр ажиллахад надад хоёр дахь удаагаа хэрэгтэй байсан, учир нь би хүссэн lfuse тохиргоогоо hfuse регистрт санамсаргүйгээр бичсэн байсан ….. өө. Өндөр хүчдэлийн параллель програмчлал бол таны ашиглах боломжтой хэрэгсэл юм! Миний холбогч тохиргоонуудын жагсаалтыг доор харуулав: ӨӨРИЙН ЭРСДЭЛТЭЭ АШИГЛАХ, ЭНЭ ХЭРЭГЖҮҮЛЭХ ТӨРЛИЙГ ХЭРЭГЖҮҮЛЖ МЭДЭХГҮЙ БОЛ ХЭРЭГСЭЛДЭЭ ХӨРӨНГӨӨРҮҮЛНЭ !! Өндөр хүчдэлийн параллель програмчлал: U3 залгуурт ATtiny2313: SW1 - OFFSW2 - ONJ5, J6, J7 - pin1 ба pin2XTAL1 - pin1 ба pin2J16 холбоно - pin1 ба pin22x5 IDC кабелийг холбоно уу: PROG_CTRL нь PORT D руу, PROG_DATA -ийг PORT BAll руу холбоно (бусад холбогчийг холбоно) J8-J13, J18, J19, J20, J22-J28, J24) Бусад чипүүдийн хувьд STM500-ийн Atmel-ийн хэрэглэгчийн гарын авлагаас шаардлагатай тохиргоог олж мэдэх боломжтой байх ёстой.

    Алхам 7: Удирдах зөвлөлийн гадна өргөжиж байна

    Удирдах зөвлөлөөс гадна өргөжиж байна
    Удирдах зөвлөлөөс гадна өргөжиж байна

    Талхны самбартай харилцах нь надад маш хялбар санагдаж байна. Энэ нь кодын загварчлах, боловсруулахад илүү уян хатан байдлыг бий болгож, доороос Dragon Rider -тэй холбогдсон хэд хэдэн самбарыг харах болно. Би тууз кабелийг нэг төгсгөлд тохирох портууд руу холбодог. Нөгөө талаас би холбогч утас ашиглан ICD -ийн зохих дамжуулагчийг талхны самбартай холбосон.

    Алхам 8: Дүгнэлт

    Энэхүү зааварчилгаанд хамрагдах боломжтой олон зүйл бий. Дөнгөж өнөө орой би лууг Dragon Rider-ээс салгахгүйгээр 6 зүү програмчлалын толгойг ашиглах боломжийг олгодог адаптерийг хийж дуусгасан. Би өөрөө хэрхэн яаж барих талаар мэдээлэл өгөх болно … удахгүй та өөр зүйл нэмж оруулах хэрэгтэй гэж бодож байвал сэтгэгдлээ үлдээнэ үү.

    Алхам 9: 6 зүү ISP нэмэх

    6 зүү ISP нэмж байна
    6 зүү ISP нэмж байна
    6 зүү ISP нэмж байна
    6 зүү ISP нэмж байна
    6 зүү ISP нэмж байна
    6 зүү ISP нэмж байна

    Би ихэвчлэн бүх төслүүддээ 6 зүү бүхий ISP толгойг бүтээдэг тул шаардлагатай бол би чипийг дахин програмчилж, төслийн самбараас хасах шаардлагагүй болно. Харамсалтай нь луу унагч 6 зүү бүхий ISP толгойг ашиглах боломжгүй байгаа ч би үүнийг хэрхэн ашиглах боломжтойг олж мэдсэн.

    Анхааруулга !

    Энэ бол хакердах явдал юм. Хэрэв та энэ нь яг хэрхэн ажилладагийг мэдэхгүй байгаа бол бүү хий

    6 зүү isp толгойг нийлүүлэхийн тулд би өөрийн адаптер самбар болон 3 зүү холбогчийг бүтээсэн. Таны хийдэг зүйл бол Dragon Rider-ийг програм болон 8-зүү микроконтроллероор тохируулах явдал юм. 3 зүү бүхий сокет ашиглан би J8-ийг холбож 1 ба 3-р зүүг холбож байна. Энэ нь цагийн дохиог PortB холбогч руу чиглүүлдэг. Дараа нь би PortB толгойноос адаптерийн самбар болон voila руу холбогч кабель ажиллуулж байна! Доорх зургууд байна. Та хийж байгаа зүйлээ үнэн зөв ойлгоогүй л бол үүнийг бүү хий, хэрэв та үүнийг буруу хийвэл AVR Dragon -аа гэмтээж магадгүй.

    Pinout: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    Алхам 10: Цуваа холболт ба LCD ашиглан RSS уншигч

    Цуваа холболт, LCD ашиглан RSS уншигч
    Цуваа холболт, LCD ашиглан RSS уншигч
    Цуваа холболт, LCD ашиглан RSS уншигч
    Цуваа холболт, LCD ашиглан RSS уншигч

    Би энэхүү хөгжлийн самбараар үргэлжлүүлэн тоглож байна. Энэ удаад би үдээс хойш хэсэг хугацаанд RSS унших (ихэнх зүйлүүдийн питон талд) боловсруулахад зарцуулсан. Энэ нь өөрийн гэсэн зааварчилгаа өгөх шаардлагагүй гэж бодож байна, тиймээс би үүнийг энд нэмж орууллаа.

    Техник хангамж

    Бид Dragon Rider 500 -ийг хөгжлийн самбар болгон ашиглаж байна. Энэ нь танд хэрэгтэй бүх тоног төхөөрөмжийг өгдөг (танд бүх нэмэлт хэрэгслүүд байгаа гэж үзвэл). Мэдээжийн хэрэг та үүнийг өөрийн тоног төхөөрөмжийн тохиргоог ашиглан хийж болно.

    • ATmega8 микроконтроллер (эсвэл USART -тэй, бүх холболтод хангалттай зүүтэй
    • Микроконтроллерыг програмчлах арга (би AVR Dragon ашигладаг)
    • Цуваа холболтын зориулалттай MAX232 чип
    • DB9 холбогч
    • HD44780 LCD дэлгэц
    • Кристал (би 8MHz болор ашигласан)
    • Төрөл бүрийн конденсатор ба резистор

    Схемийг доор харуулав. Dragon Rider дээр бид холболтыг чиглүүлэхийн тулд бүтээлч байдлыг ашиглах хэрэгтэй болно. Ихэвчлэн D порт нь LCD толгой руу шууд холбогддог. Цуваа холболт хийхэд шаардлагатай USART нь PD0 ба PD1 -ийг ашигладаг тул энэ нь тийм биш юм. PB6 ба PB7 нь гадаад талстыг ашиглаж байгаа тул В порт ашиглах боломжгүй байна. Би LCD, B порт ба D портын толгой хэсэгт тууз кабелийг холбож, зохих замыг гаргахын тулд холбогч утсыг ашиглана. LCD толгой дээр хүчдэл, газардуулга тавихаа бүү мартаарай.

    Програм хангамж

    Энэхүү төслийн програм хангамж нь хоёр хэсгээс бүрдэнэ: микроконтроллерийн програм хангамж, RSS тэжээлийг хуулж, цуваа холболтоор илгээх python скрипт. AVR програм хангамж Би Питер Флерийн LCD номын санг дахин ашиглаж байна /fleury). Энэ нь хүчирхэг, товч бөгөөд олон талт бөгөөд тоног төхөөрөмжийн тохиргоог өөрчлөхөд хялбар байдаг. Хэрэв та хавсаргасан толгой файлыг (lcd.h) харвал, би 4 битийн горимд D порт, өгөгдлийн бит, В порт нь хяналтын битээр ажиллаж байгааг харах болно.:

    • Микроконтроллерыг асаасны дараа "RSS Reader" гарч ирэх бөгөөд дараа нь цуваа өгөгдлийг хүлээнэ.
    • Хүлээн авсан цуваа өгөгдлийн байт бүр нь 16 тэмдэгтийн буферийг зүүн тийш шилжүүлж, байтыг буферт нэмээд буферийг харуулна.
    • Микроконтроллер нь 0x00, 0x01, 0x02 гэсэн гурван тусгай тушаалыг хүлээн авдаг. Эдгээр нь тодорхой дэлгэц бөгөөд 0 -р мөр рүү, 1 -р мөр рүү шилжих болно.

    Python ScryptI нь RSS өгөгдлийг хусаад цуваа холболтоор дамжуулахын тулд pyton скрипт бичсэн. Үүнийг ажиллуулахын тулд та систем дээрээ суулгах ёстой "pyserial" python модулийг шаарддаг. RSS тэжээлийг pyton файлын дээд хэсэгт тохируулж болно. Та тэжээлийн нэр болон тэжээлийн хаягийг оруулах шаардлагатайг анхаарна уу. Энд гурван жишээ бий, та тэдгээрийг зохих синтаксийн хувьд дагаж мөрдөх боломжтой гэдэгт би итгэлтэй байна

    • Тоног төхөөрөмжийг угсрах
    • Микроконтроллерыг програмчил (хэрэв та үүнийг өөрөө эмхэтгэхийг хүсэхгүй байгаа бол dragon_rss.hex ашиглаж болно). 8 МГц болор ашиглан ATmega8 -ийн гал хамгаалагчийн тохиргоо: lfuse = 0xEF hfuse = 0xD9
    • Dragon Rider -ийг асаагаад цуваа кабелийг залгасан эсэхийг шалгаарай (LCD нь "RSS уншигч" гэж унших ёстой)
    • Python програмыг ажиллуулах (python serial_rss.py)
    • Зугаацаарай

    Зөвлөмж болгож буй: