موږ د ATmega128RFA1 لپاره د OTA بوټلوډر لیکو (د سمارټ ریسپانس XE وسیلې برخې په توګه)

موږ د ATmega128RFA1 لپاره د OTA بوټلوډر لیکو (د سمارټ ریسپانس XE وسیلې برخې په توګه)

دا ټول د لیکوال سره په ثانوي بازار کې د زړه پورې وسیلې پیرود سره پیل شوي - سمارټ ځواب XE (لنډ معلومات). دا د ښوونځیو لپاره ټاکل شوی: په ټولګي کې هر زده کونکی د نوي لسیزې راهیسې بریښنایی نوټ بوک یا ژباړونکي ته ورته وسیله ترلاسه کوي ، ښوونکی یوه پوښتنه کوي ، او زده کونکي د وسیلو په کیبورډونو کې ځوابونه ټایپ کوي ، کوم چې د وسیلو له لارې ترلاسه کیږي. رادیو چینل (802.15.4) د ریسیور ته چې د ښوونکي کمپیوټر سره وصل دی.

دا وسایل څو کاله دمخه بند شوي وو، او کوم ښوونځي چې هر یو $ 100- $ 200 لپاره پیرودلي اوس په ای بی کې د $ 10 یا لږ لپاره پاپ کیږي. هلته هارډویر د ګیکي تجربو لپاره خورا مناسب دی:

  • 60 کلیدي کیبورډ
  • د 384 × 136 ریزولوشن سره ښکاره کول، په هر پکسل کې 2 بټونه - BC، CGA ته ورته، مګر 4 رنګونه نه، مګر د روښانتیا درجه
  • مایکرو کنټرولر ATmega128RFA1 (128 kB فلش حافظه، 4 kB ROM، 16 kB RAM، 802.15.4 ټرانسیور)
  • بهرنۍ (د مایکرو کنټرولر په تړاو، نه ټول وسیله) 1 میګابایټ (128 کیلوبایټ) فلش حافظه د SPI انٹرفیس سره
  • د 4 AAA عناصرو لپاره کڅوړه.

د مایکرو کنټرولر له نوم څخه دا روښانه ده چې دا د AVR کورنۍ پورې اړه لري ، پدې معنی چې د وسیلې Arduino-compatible جوړول د کوچني کار څخه ډیر دی ...

له خبرونو څخه هیکادای لیکوال وموندل چې دا څه دي مخکې یې کړي دي (ورته لینک تاسو ته وایي چې څه شی چیرته وصل شي)، د Arduboy لپاره د لوبو چلولو فرصت لري:


مګر لیکوال په دې فرصت کې ډیر لیوالتیا لري چې په وسیله لوبې نه کوي، مګر د مطالعې لپاره:

  • د سیریل SPI انٹرفیس سره فلش حافظه
  • د AVR لپاره بوټلوډر
  • معیار 802.15.4

لیکوال په لیکلو پیل وکړ کتابتونونه (GPL v3)، کوم چې تاسو ته اجازه درکوي د نندارې پیل، محصول متن او مستطیلونه، او د SPI فلش حافظې ته لاسرسی ومومئ. بیا هغه د وسیلې د عملي کارونې لپاره د نظرونو سره پیل وکړ: د VT-100 سره مطابقت لرونکي جیب ټرمینل ، ملټي پلیر لوبې. د دریو وسیلو په جوړولو سره، هغه پریکړه وکړه چې دوی ته "په هوا کې" سکیچ ترلاسه کولو لپاره "درس ورکړي". هغه څه به نه یوازې په زړه پوري وي ، بلکه خورا اسانه هم وي: د وسیلې قضیه هر ځل پرانستل کیږي ، او د بیټرۍ د برخې پوښ لاندې یوازې سوري شتون لري چې تاسو ته اجازه درکوي د JTAG پروګرامر بورډ سره وصل کړئ.

موږ د ATmega128RFA1 لپاره د OTA بوټلوډر لیکو (د سمارټ ریسپانس XE وسیلې برخې په توګه)

دا د Arduino بوټلوډر اپلوډ کولو لپاره کافي دی ، مګر سکیچ نه - سیریل پورټ هلته وصل ندی ، نو تاسو لاهم د قضیې خلاصولو پرته نشئ کولی. همچنان ، د لومړي سیریل پورټ TX0 او RX0 لاینونه د کیبورډ میټریکس د رایې ورکولو لاینونو سره یوځای شوي ، د بیلګې په توګه هغه څوک چې د نندارې په اړخونو کې د فعالیت کیلي رایه ورکوي. مګر تاسو څه کولی شئ - لیکوال دا جوړ کړی:

موږ د ATmega128RFA1 لپاره د OTA بوټلوډر لیکو (د سمارټ ریسپانس XE وسیلې برخې په توګه)

هغه هلته د JTAG لینونه راوړل، او اوس اړتیا نشته چې د بیټرۍ کمپارټ پرانیستل شي. او د دې لپاره چې سکیچونه اپلوډ شي ، ما دواړه سیریل پورټونه ورته نښلونکي سره وصل کړل ، یو سویچ یې هم اضافه کړ ، ځکه چې د بیټرۍ نصبولو سره ، دا په فزیکي لحاظ ناممکن دی چې وسیله په بل ډول بنده کړي.

د سولډرینګ اوسپنې، یوټیلټي چاقو او د ګوتو ټوپک سره کار کولو لپاره یو څه وخت ونیول. په عموم کې، "په هوا کې" د سکیچونو پورته کول خورا اسانه دي؛ موږ په چټکۍ سره د دې لپاره یو څه اختراع کولو ته اړتیا لرو.

Arduino IDE د سکیچونو اپلوډ کولو لپاره برنامه کاروي ایرډود. دا د پروتوکول په کارولو سره د مایکرو کنټرولر سره اړیکه لري STK500، کوم چې تاسو ته اجازه درکوي فایلونه په دواړو لورو کې لیږدئ. دا د چینلونو سره کمزوری مطابقت لري چیرې چې متغیر ځنډونه، تحریف او د معلوماتو ضایع ممکن وي. که چیرې په سریال چینل کې یو څه خلاص شي یا راټیټ شي ، تاسو کولی شئ د علت په لټه کې لیونی شئ. یوځل چې لیکوال د نیمې ورځې لپاره رنځ وخوړ تر هغه چې هغه پوه شو چې ستونزه یو خراب کیبل و ، په بیله بیا د زړه راښکونکي CP2102 انٹرفیس کنورټر. حتی یو مایکرو کنټرولر د جوړ شوي انٹرفیس کنورټر سره ، د مثال په توګه ، ATmega32u4 ، ځینې وختونه دا کار کولی شي. د Arduino هر کارونکي لیدلي چې د سکیچ اپلوډ کولو په وخت کې تېروتنې دومره نادر ندي. ځینې ​​​​وختونه ریکارډ ښه پرمخ ځي، مګر د ازموینې په جریان کې د لوستلو تېروتنه وموندل شوه. دا پدې معنی نه ده چې د لیکلو په وخت کې تېروتنه وه - د لوستلو پر مهال ناکامي وه. اوس تصور وکړئ چې کله "په هوا کې" کار کوي ورته شی به پیښ شي ، مګر ډیر ځله.

د دې ستونزې د له منځه وړلو لپاره د مختلفو لارو هڅه کولو وروسته، لیکوال لاندې سره راغی. وسیله د SPI انٹرفیس سره 128 KB فلش حافظه لري - موږ په تارونو کې ډیټا ترلاسه کوو (په یاد ولرئ چې لیکوال دمخه یو وسیله لري چې په اړخ کې نښلونکی لري) ، دا حافظه د بفر په توګه وکاروئ ، او ډیټا راډیو ته واستوو. بل وسیله ته چینل. د سایبکو څخه سلام.

د راډیو چینل سره د کار کولو لپاره د کوډ لیکلو وروسته، او همدارنګه فونټ، لوډر د 4 کیلوبایټ څخه ډیر اوږد شو. له همدې امله، د HFUSE ارزښت باید له 0xDA څخه 0xD8 ته بدل شي. اوس بوټلوډر تر 8 کیلوبایټ پورې اوږد کیدی شي، او د پیل پته اوس 0x1E000 ده. دا په میک فایل کې منعکس کیږي ، مګر د ډکولو پرمهال باید په پام کې ونیول شي بوټ لوډر د avrdude له لارې.

په ATmega802.15.4RFA128 کې د 1 ټرانسیور په اصل کې د پروتوکول په کارولو سره د کار کولو لپاره ډیزاین شوی زګبی، کوم چې خورا پیچلی دی ، نو لیکوال پریکړه وکړه چې یوازې د دې پرځای پاکټونه انتقال کړي. دا په ATmega128RFA1 کې په هارډویر کې پلي کیږي، نو لږ کوډ ته اړتیا ده. همدارنګه، د سادگي لپاره، لیکوال پریکړه وکړه چې یو ثابت چینل وکاروي، تاسو ته اجازه درکوي چې دا حتی په لاسي ډول وټاکئ. د 802.15.4 معیار د 16 څخه تر 11 پورې شمیرې سره د 26 چینلونو ملاتړ کوي. دوی خورا ګڼه ګوڼه لري، ځینې یې د وائی فای چینلونو سره همغږي دي (سور دي ZigBee چینلونه، نیلي، شنه او ژیړ WiFi دي).

موږ د ATmega128RFA1 لپاره د OTA بوټلوډر لیکو (د سمارټ ریسپانس XE وسیلې برخې په توګه)

دا معلومه شوه چې 15 او 26 چینلونه لږ تر لږه د وائی فای مداخلې لپاره حساس دي، لیکوال د دوی دویم غوره کړی. اعلان: ژباړونکی نه پوهیږي چې ایا دا اجازه لري چې ZigBee پدې ډول ساده کړي. شاید موږ یو څه نور پروګرامونه وکړو او په بشپړ ډول یې پلي کړو؟

په لومړي وسیله کې، دا اړینه ده چې یو محدود دولتي ماشین پلي کړئ چې د STK500 پروتوکول له لارې ډاټا لیږدوي. د ډیری برخې لپاره، لیږل شوي او ترلاسه شوي پیغامونه په خپل ځان بسیا دي، مګر ځینې یې د هغو سره تړلي دي چې مخکې د چینل له لارې تیر شوي. د خبرو اترو توضیحات ورکړل شوي دلته.

د دې ډیالوګ یوه مهمه برخه د پاکټونو لیږد دی چې هدف یې د منزل وسیلې فلش حافظې ته لیکل کیږي. د AVR کورنۍ ساده مایکروکنټرولرونو لپاره، د پاڼې اندازه 128 بایټه ده، مګر د ATmega128RFA1 لپاره دا 256 دی. او د فلش حافظې لپاره چې د SPI پروتوکول له لارې تړل کیږي، دا ورته دی. په لومړي وسیله کې برنامه ، کله چې سکیچ اپلوډ کوي ، سمدلاسه یې دوهم ته نه لیږدوي ، مګر دې حافظې ته یې لیکي. کله چې د Arduino IDE د ننوتلو سموالی معاینه کوي، دا لیږل کیږي چې هلته څه لیکل شوي. اوس موږ اړتیا لرو چې ترلاسه شوي معلومات د راډیو چینل له لارې دوهم وسیله ته انتقال کړو. په ورته وخت کې، د ترلاسه کولو څخه لیږدولو او بیرته لیږدولو ته ډیری وختونه پیښیږي. د STK500 پروتوکول د ځنډ په اړه بې پروا دی، مګر د معلوماتو ضایع نه زغمي (عجیب، مګر پورته وویل شول چې ځنډ د معلوماتو لیږد هم اغیزه کوي). او د بې سیمه لیږد پرمهال زیانونه ناگزیر دي. ATmega128RFA1 د بار بار غوښتنو لپاره جوړ شوي هارډویر پلي کول لري کله چې د لیږد سموالي په اړه شک شتون ولري ، مګر لیکوال پریکړه کړې چې پخپله سافټویر کې ورته پلي کړي. هغه یو پروتوکول رامینځته کړ په کوم کې چې ډیر ډیټا د بل په پرتله له یوې لارې تیریږي.

دا کامل نه دی، مګر دا کار کوي. د 256 بایټ پاڼه په څلورو برخو ویشل شوې، چې هر یو یې د پاکټ په توګه د هوا له لارې لیږدول کیږي. یو کڅوړه کولی شي د 125 بایټ ډیټا او د اوږدوالي لپاره یو بایټ او د CRC لپاره دوه بایټس وساتي. نو د پاڼې او برخې شمیرې (له 64 څخه تر 0 پورې) سره 3 بایټ اوږد ټوټې هلته ځای په ځای شوي. د ترلاسه کولو وسیله یو متغیر لري چې دا ته اجازه ورکوي چې تعقیب کړي چې څومره برخې ترلاسه شوي، او کله چې ټول څلور راشي، د لیږلو وسیله تاییدوي چې ټوله پاڼه ترلاسه شوې. هیڅ تایید (CRC سمون نه درلود) - ټوله پاڼه بیا واستوئ. سرعت حتی د کیبل له لارې لیږدولو څخه ډیر دی. وګورئ:


مګر په عموم کې ، دا به اړین وي چې د سکیچونو اپلوډ کولو او د هغې له لارې وسیلو ته کیبل سره وصل کولو لپاره اسانه لاره چمتو کړئ. د مثال په توګه، د داسې یو انټرفیس کنورټر دننه په CP2102 کې ځای په ځای کړئ، لکه څنګه چې په عکس کې، او بورډ ته یې چپه کړئ ترڅو د مایکرو USB کیبل سره نښلولو او منحل کولو په وخت کې د ځواک سره مقاومت وکړي.

موږ د ATmega128RFA1 لپاره د OTA بوټلوډر لیکو (د سمارټ ریسپانس XE وسیلې برخې په توګه)

دا د 3,3 ولټ سټیبلائزر هم لري (او دا څنګه په وسیله کې د 6 ولټ بریښنا رسولو سره وکاروئ - که یوازې دا ورته سټیبلائزر ولري ، او تاسو کولی شئ دوه ډیایډونه اضافه کړئ ترڅو په اتوماتيک ډول وټاکئ چې کوم یو به وسیله بریښنا کړي) . ټول درې LEDs باید د انٹرفیس کنورټر بورډ څخه غیر پلورل شوي وي ، که نه نو دوی به اضافي بیټرۍ بار کړي کله چې دوی کار کوي ، او همدارنګه د کیبورډ رای ورکولو کې مداخله کوي او د SPI انٹرفیس سره د فلش حافظې سره کار کوي.

د یوې موخې تعقیب د هغې د ترلاسه کولو په پرتله خورا په زړه پورې وګرځید (او د بس په اړه دې ټوکې ته اړتیا نلري). لیکوال د AVR بوټلوډرانو، SPI فلش حافظې، د STK500 پروتوکول او 802.15.4 معیار په اړه ډیر څه زده کړل.

پورته ذکر شوي کتابتون سربیره نور ټول کوډ - دی دلته، او دا د GPL v3 لاندې هم دی. د لیکوال ټویټر - دلته.

سرچینه: www.habr.com

Add a comment