AVR-ChipBasic - сучасний ретро-комп'ютер. Передача даних з комп'ютера до мікроконтролера через монітор

У наші дні мікроконтролери можна зустріти практично у кожному екземплярі побутової технікита електроніки. Наприклад, якщо в мікрохвильовій печі є світлодіодний або РК-екран і клавіатура, то вона обов'язково обладнана спеціальною мікросхемою, що управляє.

Різноманітність застосувань

Всі сучасні автомобілі містять по Крайній міріодин мікроконтролер і можуть бути обладнаними декількома для двигуна, антиблокувальної системи, круїз-контролю і т. д. Будь-який пристрій з ПДУ майже напевно має керування мікроконтролером. До цієї категорії потрапляють телевізори, плеєри та високоякісні стереосистеми. Цифрові компактні та дзеркальні камери, мобільні телефони, відеокамери, автовідповідачі, лазерні принтери, стаціонарні телефониз можливістю ідентифікації абонентата пам'яттю на 20 номерів, багатофункціональні холодильники, посудомийні та пральні У принципі, будь-яка побутова техніка або пристрій, що взаємодіє з користувачем, має вбудований мікроконтролер.

Що це таке?

Мікроконтролер – це комп'ютер. Усі комп'ютери, незалежно від того, чи є вони персональними або великими мейнфреймами, мають деякі загальними рисами. Вони мають які виконує програми, завантажуючи команди з будь-якого сховища даних. На комп'ютері, наприклад, це жорсткий диск. Комп'ютер також обладнаний оперативним пристроєм, що запам'ятовує (ОЗУ). Для комунікації з зовнішнім світомповинні передбачатися спеціальні засоби. На ПК клавіатура та миша є пристроями введення інформації, а монітор та принтер використовуються для її виведення. Жорсткий дискоб'єднує в собі обидві ці функціональні можливості, оскільки працює як із вхідними, так і вихідними даними.

ЦПУ

Тип процесора, що використовується в мікроконтролері, залежить від конкретного додатку. Доступні варіанти від простих 4-, 8- або 16-розрядних до складніших 32- або 64-бітних. Щодо пам'яті, то можуть використовуватися ОЗУ, флеш-пам'ять, EPROM або EEPROM. Як правило, мікроконтролери розраховані на використання без додаткових обчислювальних компонентів, оскільки вони спроектовані з достатнім обсягом вбудованої пам'яті, а також мають контакти для загальних операцій виводу-введення-виводу, щоб безпосередньо взаємодіяти з датчиками та іншими компонентами.

Архітектура ЦПУ може бути як гарвардською, так і фон-нейманівською, пропонуючи різні методиобміну інформацією між процесором та пам'яттю. У першому випадку шини даних та команд розділені, що дозволяє здійснювати одночасну їх передачу. Для цього використовується загальна.

Програмування

Процесори мікроконтролерів можуть базуватися на розширеному (CISC) чи скороченому наборі команд (RISC). CISC зазвичай включає близько 80 інструкцій (RISC - близько 30), а також більша кількістьрежимів адресації – 12-24 у порівнянні з 3-5 у RISC. Хоча розширений набір команд простіше реалізувати і він ефективніше використовує пам'ять, його продуктивність нижча через більшу кількість тактових циклів, необхідні їх виконання. RISC-процесори приділяють більше уваги програмного забезпечення та більш продуктивні.

Спочатку мовою мікроконтролерів був асемблер. Сьогодні найпопулярнішим варіантом є мова C.

За наявності відповідного кабелю, програмного забезпеченнята ПК запрограмувати мікроконтролер своїми руками нескладно. Необхідно підключити контролер кабелем до комп'ютера, запустити програму та завантажити набір команд.

Визначальні характеристики

Як відрізнити комп'ютер від мікроконтролера? Якщо перший являє собою пристрій загального призначення, яке може запускати тисячі різних програм, то другий є спеціалізованим, орієнтованим на один додаток. Існує й низка інших характеристик, які дозволяють відрізнити мікроконтролери. Для користувачів-початківців це проблемою не буде - достатньо встановити наявність у чіпа більшості нижченаведених якостей, щоб можна було сміливо віднести його до даної категорії.

  • Мікроконтролери є елементами іншого пристрою (часто побутової техніки) для управління його функціями або роботою. Ще їх називають вбудованими контролерами.
  • Пристрій призначений для виконання одного завдання та запуску однієї конкретної програми, що зберігається в ПЗП, яка зазвичай не змінюється.

  • Мікроконтролери – це малопотужні чіпи. Їхня потужність при живленні від батареї становить близько 50 мВт. Настільний комп'ютермайже завжди підключений до розетки та споживає 50 Вт і більше.
  • Мікроконтролер відрізняється наявністю спеціального блоку введення та часто (але не завжди) невеликого світлодіода або РК-дисплея для виведення. Приймає вхідні дані від пристрою, яким він керує, надсилаючи сигнали різним його компонентам. Наприклад, мікроконтролер телевізора отримує сигнали з ПДК і відображає виведення на екрані телевізора. Він керує селектором каналів, динаміками та деякими налаштуваннями зображення, такими як контраст та яскравість. Контролер автомобільного двигуна приймає вхідні сигналивід датчиків кисню та детонації, регулює створення паливної суміші та синхронізує роботу свічок запалювання. У мікрохвильовій печі він приймає введення з клавіатури, відображає виведення на РК-дисплеї та керує реле увімкнення та відключення НВЧ-генератора.
  • Мікроконтролери - це часто невеликі та недорогі пристрої. Компоненти вибираються таким чином, щоб мінімізувати розміри та максимально здешевити виробництво.
  • Часто, але не завжди, робота мікроконтролера здійснюється в несприятливі умови. Наприклад, пристрій керування двигуном автомобіля має працювати в екстремальних температурах, за яких звичайний комп'ютер взагалі не може функціонувати. На півночі мікроконтролер автомобіля повинен функціонувати за температури -34 °C, а на півдні - при 49 °C. У моторному відсіку температура може становити 65-80 °C. З іншого боку, мікроконтролер, вбудований у програвач Blu-rayвзагалі не повинен бути особливо міцним.

Вимоги до ЦПУ

Процесори, що використовуються в мікроконтролерах, можуть сильно відрізнятися. Наприклад, в стільникових телефонівзастосовувався 8-розрядний мікропроцесор Z-80, розроблений у 1970-х роках і що спочатку використовувався в домашніх комп'ютерах. GPS-навігатор Garmin обладнався малопотужною версією Intel 80386, яку також спочатку встановлювали у настільних ПК.

Більшість побутової техніки, такої як мікрохвильові печі, невимоглива до процесорів, але їх ціна є важливим фактором. У цих випадках виробники звертаються до спеціалізованих мікроконтролерів, розроблених із недорогих, невеликих та малопотужних ЦПУ. Motorola 6811 та Intel 8051 є добрими прикладамитаких чіпів. Також випускається серія найпопулярніших компанії Microchip. За сьогоднішніми мірками ці процесори неймовірно мінімалістичні, але вони надзвичайно дешеві і часто можуть задовольнити потреби конструктора.

Економічність

Типовий мікроконтролер - це чіп з 1000 байтів ПЗУ, 20-ма байтами ОЗУ та 8-ма контактами введення-виведення. При випуску великими партіями їхня вартість невисока. Звісно, ​​запустити Microsoft Wordна такому чіпі неможливо - для цього потрібно не менше 30 МБ ОЗУ та процесор, що виконує мільйони операцій на секунду. Але для керування мікрохвильовою піччюцього не потрібно. Мікроконтролер виконує одну конкретне завдання, а низька вартістьта енергоспоживання є його головними перевагами.

Як працює?

Незважаючи на велику різноманітність мікроконтролерів та ще Велика кількістьпрограм для них, навчившись поводитися з одним із них, можна познайомитися з усіма. Типовий сценарій роботи виглядає так:

  • При відключеному живленні пристрій ніяк не проявляє себе.
  • Підключення мікроконтролера до джерела енергії запускає блок логіки системи управління, що відключає всі інші схеми, крім кварцового кристала.
  • Коли напруга сягає свого максимуму, частота генератора стабілізується. Регістри заповнюються бітами, що відбивають стан усіх схем мікроконтролера. Усі контакти налаштовуються як входи. Електроніка починає працювати відповідно до ритмічної послідовності тактових імпульсів.
  • Лічильник команд обнулюється. Інструкція на цю адресу відправляється в декодер команд, який її розпізнає, після чого вона негайно виконується.
  • Значення лічильника команд збільшується на 1 і весь процес повторюється зі швидкістю мільйон операцій на секунду.
Мікроконтролер- Комп'ютер на одній мікросхемі. Призначений для керування різними електронними пристроямита здійснення взаємодії між ними відповідно до закладеної в мікроконтролер програми. На відміну від мікропроцесорів, що використовуються в персональних комп'ютерах, мікроконтролери містять вбудовані додаткові пристрої. Ці пристрої виконують свої завдання під керуванням мікропроцесорного ядра мікроконтролера.

До найбільш поширених вбудованих пристроїв відносяться пристрої пам'яті та порти вводу/виводу (I/O), інтерфейси зв'язку, таймери, системний годинник. Пристрої пам'яті включають оперативну пам'ять(RAM), постійні запам'ятовуючі пристрої (ROM), ROM (EPROM), що перепрограмується, ROM (EEPROM), що електрично перепрограмується. Таймери включають годинник реального часу, і таймери переривань. Засоби I/O включають послідовні портизв'язку, паралельні порти(I/O лінії), аналого-цифрові перетворювачі(A/D), цифрові аналогові перетворювачі (D/A), драйвери рідкокристалічного дисплея (LCD) або драйвери вакуумного флуоресцентного дисплея (VFD). Вбудовані пристрої мають підвищену надійність, оскільки вони не вимагають жодних зовнішніх електричних кіл.

На відміну від мікроконтролера контролером зазвичай називають плату, побудовану на основі мікроконтролера, але досить часто при використанні поняття "мікроконтролер" застосовують скорочену назву цього пристрою, відкидаючи приставку "мікро" для простоти. Також при згадці мікроконтролерів можна зустріти слова "чіп" або "мікрочіп", "кристал" (більшість мікроконтролерів виготовляють на єдиному кристалі кремнію), скорочення МК або англійського microcontroller - MC.

Мікроконтролери можна зустріти у величезній кількості сучасних промислових та побутових приладів: верстати, автомобілі, телефони, телевізори, холодильники, пральних машинах... і навіть кавоварках. Серед виробників мікроконтролерів можна назвати Intel, Motorola, Hitachi, Microchip, Atmel, Philips, Texas Instruments, Infineon Technologies (колишня Siemens Semiconductor Group) та багатьох інших.
Для виробництва сучасних мікросхем потрібні надчисті приміщення.

Основним класифікаційним ознакою мікроконтролерів є розрядність даних, оброблюваних арифметико-логічним пристроєм (АЛП). За цією ознакою вони діляться на 4-, 8-, 16-, 32- та 64-розрядні. Сьогодні найбільша частка світового ринку мікроконтролерів належить восьмирозрядним пристроям (близько 50% у вартісному вираженні). За ними слідують 16-розрядні та DSP-мікроконтролери (DSP - Digital Signal Processor - цифровий сигнальний процесор), орієнтовані використання у системах обробки сигналів (кожна з груп займає приблизно 20 % ринку). Усередині кожної групи мікроконтролери діляться на CISC-і RISC-пристрої. Найбільш численною групою є CISC-мікроконтролери, але в Останніми рокамисеред нових чіпів намітилася очевидна тенденція зростання частки RISC-архітектури.

Тактова частота, або, точніше, швидкість шини, визначає, скільки обчислень може бути виконано за одиницю часу. В основному продуктивність мікроконтролера та споживана ним потужність збільшуються з підвищенням тактової частоти. Продуктивність мікроконтролера вимірюють у MIPS (Million Instruсtions per Second - мільйон інструкцій на секунду).

У статті я опишу створення мною простого бортового комп'ютера для автомобіля чи мотоцикла. Жодних екзотичних функцій пристрій не містить, зате в ньому є годинник, термометр і вольтметр. Основа, це AVR мікроконтролер ATmega8 з восьми кілобайтами флеш пам'ять, цього нам досить. Годинник реалізований на спеціальній мікросхемі (годин реального часу RTC) DS1307, це дозволяє йти годинникам дуже точно досить довгий часнавіть тоді, коли пристрій вимкнено. Але, звичайно, для роботи мікросхеми DS1307 потрібно додаткове харчування 3 вольти, наприклад батарейка CR2032. Датчик для термометра взяв DS1820, що працює за інтерфейсом 1-Wire. Усі дані виводяться на РК індикатор на контролері. Отже, для збирання пристрою знадобляться такі радіодеталі:

1. Мікроконтролер Atmega8 – 1шт.
2. Мікросхема DS1307 – 1шт.
3. Датчик DS1820 – 1шт.
4. Панелька DIP-8 – 1шт.
5. Панелька DIP-28 – 1шт.
6. Мікросхема LM7805 – 1шт.
7. Мікросхема LM7809 – 1шт.
8. Тактові кнопки – 4шт.
9. Кнопки з фіксацією положення – 2шт.
10. Кварц 14.3 МГц – 1шт.
11. Кварц вартовий 32768 Гц - 1шт.
12. Конденсатор керамічний 22 пф - 2шт.
13. Конденсатор керамічний 100 нф – 4шт.
14. Транзистор КТ315 – 2шт.
15. Конденсатор електролітичний 100 мкФ – 1шт.
16. Конденсатор електролітичний 47 мкФ – 2шт.
17. Діод 1N4001 – 1шт.
18. Підстроювальний резистор 20 кОм - 2шт.
19. Резистор 1 ком - 2шт.
20. Резистор 10 ком - 2шт.
21. Резистор 4,7 кОм – 3шт.
22. Резистор 100 ком - 1шт.
23. Резистор 20 Ом - 1шт.
24. Резистор 68 Ом - 1шт.
25. Динамік 0.2 Вт – 1шт.
26. РК індикатор WH1602 (на контролері HD44780 або сумісному) – 1шт.
27. Текстоліт – 1шт.
28. Корпус пластиковий – 1шт.
29. Відсік для батарейок 2xAA - 1шт.
30. Батарея 1.5v AA - 2шт.

Принципова схема пристрою:

Підстроювальний резистор R4 встановлює контрастність РК індикатора, а R12 підлаштовує вольтметр до точного значення. Кварц Z2 на 14.3 МГц, його можна знайти на старих материнських платах. Кнопка S1 - "Скасувати", S2 - "Вниз", S3 - "Ок", S4 - "Вгору". Резистор R3 підтягує Reset мікроконтролера до плюсу живлення щоб запобігти випадковому скидання. Резистори R1, R2 та R7 також підтягують порти мікроконтролера до плюсу живлення. Керамічні конденсатори C1 та C2 потрібні для стабільної роботикварцу Z2. Я зібрав пристрій на двох друкованих платахна одній містяться мікросхеми LM7805 і LM7809, на іншій, все інше. Плати малював у програмі та виготовляв за допомогою. Ось готова плата покрита сплавом троянд:

Плата із запаяними на ній деталями:

На звороті:

Все потрухи зібрав у корпус, у результаті вийшло красиво та компактно.

Фото готового бортового комп'ютера (вид спереду):

Фото готового бортового комп'ютера (задній вид):

Для зручності, спереду я розмістив лише РК ​​індикатор та кнопки керування S1, S2, S3 та S4. Роз'єм, кнопки включення пристрою та вимкнення звуку, підстроювальний резистор R12 я розмістив позаду корпусу. Прошивку для мікроконтролера писав у середовищі (вихідник додається), мікроконтролер прошивав програматором USBtiny за допомогою програми SinaProg. Після прошивки мікроконтролера потрібно встановити такі ф'юз-біти:

Правильно зібраний і прошитий пристрій запускається відразу, і не вимагає налаштування, хіба що, точного підстроювання вольтметра та налаштування годинника. З додаткові функціїприсутнє регулювання яскравості РКІ та годинний біпер (годинник подає сигнал на початку кожної години). При включенні пристрою на РКІ з'являється заставка і плавно спалахує підсвічування індикатора, потім з'являється головний екран, де відображається час, дата, температура та напруга. Якщо в цей час натиснути кнопку S3, то ви увійдете в меню налаштування часу, S2 ​​- в інформаційну вкладку, де написана інформація про версію пристрою та його автора, S4 - в меню налаштування яскравості РКІ та управління годинниковим біпером. Кнопка S1 повертається назад на головний екран. Наочно подивитися, як керувати пристроєм ви можете на відео:

У файлах до статті є вихідні програми, прошивка, проект у програмі .

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
IC1 Годинник реального часу (RTC)

DS1307

1 До блокноту
IC2 МК AVR 8-біт

ATmega8

1 До блокноту
VR1 Лінійний регулятор

LM7805CT

1 До блокноту
VR2 Лінійний регулятор

LM78L09

1 До блокноту
VT1, VT2 Біполярний транзистор

КТ315Б

2 До блокноту
VD1 Випрямний діод

1N4001

1 До блокноту
Z1 Кварц32768 Гц1 До блокноту
Z2 Кварц14.3 МГц1 До блокноту
C1, C2 Конденсатор22 пФ2 Керамічні До блокноту
C3-C5, C8 Конденсатор100 нФ4 Керамічні До блокноту
C6, C7 47мкФ 16В2 До блокноту
C9 Електролітичний конденсатор100мкФ 35В1 До блокноту
R1, R2, R7 Резистор

4.7 ком

3 До блокноту
R3, R10 Резистор

10 ком

2 До блокноту
R4, R12 Підстроювальний резистор20 ком2 До блокноту
R5 Резистор

20 Ом

1 До блокноту
R6, R9 Резистор

1 ком

2 До блокноту
R8 Резистор

Час іде, і раритетних комп'ютерів стає дедалі менше. Якісь ламаються, якісь розбираються на запчастини, а якісь просто викидаються. На жаль, цей процес не зупинити – нічого вічного немає.
Але якщо взяти і вигадати такий комп'ютер, який за всіма параметрами був схожий на ретро-комп'ютери, але був зроблений на сучасній елементарній базі? І такий комп'ютер є – це AVR ChipBasic.
1. Передмова
AVR ChipBasic – серія радіоаматорських комп'ютерів, розроблених німецьким інженером Йоргом Вольфрамом (Joerg Wolfram) Всі вони є комп'ютерами, зібраними всього на одній мікросхемі – мікроконтролері фірми Atmel AVR. У цих комп'ютерах мікроконтролер виконує функції відеоконтролера, контролера клавіатури, звукового генератора, бейсик-інтерпретатора та інших пристроїв, які в звичайних комп'ютерахскладаються з безлічі мікросхем. Серія AVR-ChipBasic складається із чотирьох моделей.
1. Молодша. Заснована на мікроконтролері AtMega8, містить 1 КБ ОЗП, 8 КБ ПЗП. Має вбудований інтерпретатор мови TinyBasic, що генерує чорно-біле зображенняз роздільною здатністю 180*230, підключається до композитному входутелевізор (тюльпан).

2. Перша середня. Заснована на мікроконтролері AtMega16, містить 2 КБ ОЗП, 16 КБ ПЗП. Має розширений інтерпретатор бейсику. Виводить кольорове зображення(8 кольорів) з роздільною здатністю 180*230. Має знакогенератор без малих літер.

3. Друга середня. Те ж, що і перша середня, тільки на мікроконтролері AtMega32 і з повним генератором.
4. Старша. Найпотужніша модель.
Заснована на мікроконтролері AtMega644, містить 8 КБ ОЗП, 64 КБ ПЗП. Має потужний вбудований інтерпретатор бейсику. Генерує кольорове зображення (16 кольорів) роздільною здатністю 180*230 Єдина з моделей, що підтримує тригонометричні функціїі графічний режим. Всі ці комп'ютери поширюються вільно по ліцензії GNU GPL, на офіційному сайті представлені схеми, прошивки та вихідники.

Зараз ми детальніше розглянемо молодшу модель комп'ютера AVR ChipBasic.
2.Загальний опис
Молодша модель комп'ютера AVRChipBasic, як говорилося раніше, складається з лише однієї мікросхеми – мікроконтролера AtMega8 фірми Atmel, і тому можливості цього комп'ютера будуть визначатися можливостями мікроконтролера. Комп'ютер має 1 КБ ОЗУ, 8 КБ FLASH пам'яті, в якій зберігається інтерпретатор бейсика і 512 байт EEPROM, в якому зберігається програма, що запускається. Єдиний відеорежим комп'ютера – текстовий 30*23 символи, де кожен символ розміром 6*10 пікселів, і тому загальний дозвілекрану 180*230 пікселів. Зображення виводиться на звичайний побутовий телевізор, який підключається до комп'ютера за композитним входом.
Також, в комп'ютері AVR? Ще комп'ютер вміє відтворювати звук через біпер, з'єднаються з ПК через послідовний порт для обміну програм та керувати зовнішніми пристроямичерез 4 лінії введення-виведення.
За характеристиками цей комп'ютер дуже схожий на комп'ютери 70-80-х років. Ось у таблиці наведено порівняльні характеристикикомп'ютера AVR-ChipBasic та інших ретро-комп'ютерів.

Як видно з таблиці, цей мікрокомп'ютер найбільше схожий на комп'ютер ZX80, у нього, як і AVR ChipBasic'a, 1 КБ ОЗУ, 8 КБ ПЗУ, чорно-білий екрані найголовніше, відео теж формується центральним процесорома не окремою схемою відеогенератора. Причому обчислення проводяться у вільний від генерації відео час, а не навпаки, як у ZX80.
Також комп'ютер може відтворювати звук. Є два типи звуку: перший нагадує звук «бім», а другий – звук «пшш», причому перший звук може робити різної висоти.
3.Особливості конструкції
Схема комп'ютера проста, як молоток: вона складається з мікроконтролера та невеликої обв'язки резисторів та конденсаторів.
Для з'єднання комп'ютера із ПК використовується аналог мікросхеми MAX232 на двох транзисторах.
Схема комп'ютера

Єдине, що можна додати до схеми, це те, що резистор 330 Ом, який стоїть перед відеовиходом, слід замінити на 800 Ом, тоді зображення стане більш чітким.

Окреме слово хочеться сказати про прошивку мікроконтролера. В архіві знаходиться кілька прошивок, нам треба вибрати cb8_050_mega8_kbd?en_pal.hex, яка знаходиться в папці mega8
Комп'ютер збирається на друкованій або макетної плати. Для нього потрібне джерело живлення 5 вольт, для цього можна взяти БП від ПК форм фактора ATXАле краще для цих цілей підійде зарядка від телефону і стабілізатор 7805.
4.Особливості роботи
Після складання та увімкнення комп'ютера на екрані на кілька секунд з'являється логотип комп'ютера. Поки він знаходиться на екрані, треба натиснути якусь кнопку, тоді запускається редактор програм, інакше відбувається автозапуск програми з EEPROM.


Після відкриття редактора можна відразу розпочинати написання програм. У будь-який момент часу на екрані знаходиться вся програма, прокручування екрану немає. Також немає функції перенесення рядків, тобто при натисканні клавіші Enterрядки зміщуються одну вниз, а курсор просто переміщається до початку наступного рядка.
Під час редагування є кілька гарячих клавіш:
F1– Завантажити програму з EEPROM
F2– Змінити назву програми
F3– Відкрити діалог для роботи з дисковим модулем
F4– Запуск програми – Зупинити виконання програми
CLRL+P– Надсилає скріншот по послідовному порту
А тепер ми розглянемо одну цікаву особливістьцього комп'ютера: подивіться самі, екранна область займає 690 байт пам'яті (30*23) та програма 500 байт (20 рядків по 25 символів). Це разом виходить 1190 байт, але як це може бути, адже пам'яті мікроконтролера всього 1024 байта. До того ж потрібно ще кілька байт для системних змінних. А зроблено все так хитро: під час редагування програма знаходиться у відеопам'яті і не займає додаткового місця. Після натискання кнопки F4 програма копіюється з відеопам'яті EEPROM, а відеопам'ять очищається. Далі, програма інтерпретується не з ОЗУ, та якщо з EEPROM.
Після завершення програми вона знову копіюється у відеопам'ять і можна продовжувати редагувати.
Такий стан справ дозволяє заощадити пам'ять, але веде до інших незручностей.
Справа в тому, що EEPROM підтримує всього 100 000 циклів перезапису. Це означає, що якщо щодня робити по 100 запусків, то за три роки мікросхема згорить. На щастя, комп'ютер має невеликий захист: перед тим, як переписувати програму в ППЗУ, вона порівнюється з тією, що вже там знаходиться, і якщо вони рівні, то програма не переписується.
Після завершення роботи програми у правому нижньому кутку з'являється напис PRESS ESC! Якщо програма запускалася клавішею F4, то відкриється редактор, а якщо програма запускалася автозапуском, то вона перезапуститься.
5.Бейсік
Комп'ютер AVR? ChipBasic має вбудований інтерпретатор мови бейсик. Для економії пам'яті використовується його діалект Tiny Basic, який не дуже відрізняється від звичайного бейсика. Тепер ми розглянемо основні особливості цієї мови.
Перше, що відразу впадає у вічі, – це скорочені команди. Замість GOTO використовується GO замість GOSUB – SUB, замість NEXT – NXT. Деякі команди взагалі замінені символами. Наприклад, команда?@2,2;%17 означає вивести в координатах 2, 2 символ номер 17 (кружок). Це робить програми на цьому бейсику трохи нечитаним, але якщо вникнути, то все зрозуміло.
Tiny Basic підтримує 26 змінних типу byte, кожна позначається однією літерою (A-Z). Масиви та рядки не підтримуються.
Також варто відзначити ряд цікавих можливостейцієї мови. Наприклад, кілька способів доступу до клавіатури. За допомогою одного зі способів можна зробити, що при на? натискання на кнопку «вправо» видаватиметься значення 1, а при натисканні на «вліво» – 255 (-1). За допомогою інших методів можна відловлювати натискання Ctrl, Shift та інших кнопок, і вони прийматимуть значення 1 і 255. Це зроблено для полегшення написання ігор, так як часто використовуються стрілки та інші кнопки, якими треба керувати рухом різних об'єктів.
Ще одна цікава команда- LIM. Вона задає межі значення змінної.
Наприклад, команда LIM D, 10, 20. Після виконання значення змінної D буде перебувати в діапазоні 10..20. Якщо до виконання команди значення змінної було менше десяти, воно стане 10, а якщо ж більше 20 - стане 20.
До того ж цей бейсик підтримує псевдографіку роздільною здатністю 60*46. Можна малювати точки, лінії та квадрати.
Напишемо яку? просту програмуцією мовою. Нехай це буде простенька гра «вгадай число». Ось її повний код:
1 a=rv(100)+1:? "Vvedi chis"
2 inp b
3 if b>a:go 6
4 if b 5 ?”Molodec!”:no 255:go 0
6 ?”Vvedi menshe”:no 5:go 2

7 ?”Vvedi bolshe”:no 8:go 2

Розберемо цю програму детальніше.
У першому рядку цієї програми загадується випадкове число від 1 до 100 і виводиться напис.
У другому – вводиться число з клавіатури.
У третій і четвертій введене число звіряється з загаданим, і програма відправляється куди потрібно.

6.Висновок
Ось такий ось це комп'ютер, AVRChipBasic.
Незважаючи на свою простоту, він має досить великі можливості.
Звичайно, є деякі недоліки / недоробки, але треба пам'ятати, що в крихітні 8 кілобайт пам'яті, куди і бейсик важко влізе, вдалося впхнути бейсик, відеогенератор, контролер клавіатури, і щоб це все разом ще й працювало, причому досить швидко.
Тому комп'ютер ARV-ChipBasic можна сміливо назвати витвором мистецтва. Працювати з ним – одне задоволення. :?)
Посилання:
Офіційна сторінка комп'ютера:
http://jcwolfram.de/projekte/avr/chipbasic8/main.php
У п'ятому-сьомому рядках виводиться потрібне повідомлення, грає звук, і програма відправляється або до введення, або виходить.

Олександр Завгородній (Kakos_Nonos)
http://kabardcomp.narod.ru/

Мікроконтролер фірми Parallax під назвою Propeller, у порівнянні з «класикою» жанру типу PIC або AVR займає дещо дивну нішу. Про перші два можна сказати, що це архітектура загального призначення. Творці Пропелера підійшли до питання «з флангу».

Основні відмінні риси Пропелера:

  • 8 незалежних ядер, які працюють паралельно. Будь-який поділ часу, необхідний загальних ресурсів типу пам'яті чи портів вводу-вывода не контролюється програмістом і «вшито» в кристал. Це дає передбачуваність у часі виконання коду. Кожне ядро ​​має 4КБ власної ізольованої оперативної пам'яті. Також кожне ядро ​​має вбудований апаратний модуль для генерації (увага!) ТБ або VGA відеосигналу.
  • Немає поняття переривань. Натомість пропонується запускати конкуруючі завдання різних ядрах (cog"ах).
  • Програмувати можна або на асемблері, або особливою високорівневою мовою Spin, яка сильно спрощує багатоядерне і паралельне програмування. Інтерпретатор Spin зашитий у кристал.
  • Майже немає поняття програмування чи прошивки кристала. Верхня половина адресного (ROM) простору розміром 32КБ прошита інтерпретатором Spin і різними системними таблицями. В цьому випадку при кожному включенні потрібно завантаження програми ззовні (наприклад, з середовища розробки) в нижню 32КБ область (RAM). Але зазвичай реальному використанні підключається зовнішня I2C мікросхема пам'яті EEPROM, вміст якої автоматично копіюється в RAM при включенні кристала.
  • Процесор заявлений як 32-бітний, оскільки оперує з даними цього розміру, але адресний простір 16-бітний (64КБ).
Мова Spin розроблена для зручного багатопроцесорного програмування, і виглядає як щось середнє між процедурною та об'єктно-орієнтованою мовою.

Ось приклад коду на Spin, що запускає функцію обертатися на кількох ядрах. Код реально простий та зрозумілий.

CON _clkmode = xtal1 + pll16x "Establish speed _xinfreq = 5_000_000 "80Mhz OBJ led: "E555_LEDEngine.spin" "Include LED methods object VAR byte Counter " le(16,clkfreq/ 50), @stack) "start Twinkle cog 1 cognew(Twinkle(19,clkfreq/150), @stack) "start Twinkle cog 2 cognew(Twinkle(22,clkfreq/100), @stack) "start Twinkle cog 3 PUB Twinkle(PIN,RATE) "Метод declaration repeat "Initiate a master loop repeat Counter from 0 to 100 "Repeat loop Counter led. 100 to 0 "Repeat loop Counter led.LEDBrightness(Counter,PIN) "Adjust LED brightness waitcnt(RATE + cnt) "Wait a moment
Функція cognew запускає завдання на трьох ядрах, параметризуючи кожну своєю частотою та стеком.

Спрощено Пропелер влаштований так:

Назва «Пропелер» походить від його моделі передачі пріоритету на доступ до ресурсів, що розділяються. Модуль Hub, що контролює поділ часу, робить це по колу, типу пропелера, що крутиться.

Я не хочу в цій статті заглиблюватися в сам Пропелер, бо це є велика тема. Для тих, хто цікавиться в кінці, є посилання на книги, в яких можна отримати вичерпну інформацію про цей мікроконтролер.

Але хочу розповісти про один цікавий проект, який називається "Pocket Mini Computer". Це міні-комп'ютер на базі Пропелера (P8X32A), який використовує evaluation board "P8X32A QuickStart" як основу.

Виглядає це добро в такий спосіб (фотографія з офіційного сайту):

Фактично автор продає evaluation board плюс плату розширення, на якій є VGA, microSD, PS/2, звук і Wii Gameport. Опціонально можна поставити мікросхему оперативної пам'яті SRAM на 32КБ.

Фішка проекту в тому, що автор розробив інтерпретатор Бейсіка, який перетворює все це на мікро-комп'ютер а-ля 80-ті. Бейсик написаний на Spin'e (вихідники відкриті). Діалект дуже обмежений, наприклад, немає масивів, рядкових і речових змінних, імена змінних тільки однолітерні і т.д. і також дозволяє запускати суто двійкові файли, які можуть бути написані хоч на тому ж Spin'e, хоч на С (Parallax має версію GCC для Пропелера), хоч на асемблері.

Майже все запаяно.

Бутерброд у збиранні.

Ось невелика демка, щоби оцінити графічні можливості.

Загальні враження

Пропелер

Не можна назвати його процесором загального призначення. На мою суб'єктивну думку, для ефективного використання Пропелера треба дуже добре розуміти своє прикладне завдання. Наприклад, у Пропелера немає ШИМ, ЦАП/АПЦ, вбудованої флеш-пам'яті, тригерів, поняття переривань, і творці пропонують або реалізовувати необхідне програмно, використовуючи силу кількох ядер, або використовувати спеціалізовані зовнішні мікросхеми. У книгах, наведених наприкінці, описано безліч прикладів роботи з додатковими мікросхемами.

Цікаво інше. Творці Пропелера не забоялися відійти від традиційного підходу та спробували вкласти в кристал конкретні прикладні можливості, майже готові завдання. Може для якихось проектів це буде дуже доречним. Як я зрозумів, Пропелер дуже зручний для створення різноманітних ігрових автоматів та приставок, наприклад, через вбудовану можливість генерувати якісний телевізійний та VGA сигнал.

Висновок: цікава архітектура, що безумовно заслуговує на увагу.

Конструктор PMC

Знову ж таки, двояке відчуття. Начебто працює, але ресурсів Бейсіку вочевидь не вистачає, особливо пам'яті. Наприклад, той же Maximite на базі PIC32 його на голову перевершує. На ньому можна запустити хоч RetroBSD, хоч Радіо-86РК. Та й вбудований MMBasic незрівнянно потужніший.

Хоча, за 39 доларів США - це чудова іграшка для тих, хто хоче помацати Пропелер, маючи вже зібраний пристрій.

На закуску

Книги про Пропелера, які я прочитав, що стосується архітектури, і переглянув (що стосується проектів). Усі рекомендую.

Невелика та дуже зрозуміла книга для початківців. Описано (з картинками) цікаві проекти. Один із співавторів є конструктором PMC.

Getting Started With the Propeller

Вкрай грамотна книга в плані архітектури та розуміння суті Пропелера. У ній розглядається лише програмування на Spin, але з повним поясненням підходів та особливостей мікроконтролера. Прочитавши перший розділ, ви отримаєте майже повне розуміння архітектури. Далі описано декілька проектів (це можна пропустити).