Автор Тема: Как да направим схема включваща повече памет?  (Прочетена 18118 пъти)

DarkLordTed

  • Робо-Новак
  • *****
  • Публикации: 33
    • Профил
Здравейте!
Аз не съм се занимавал с роботи до този момент, но ми е интересно и увлекателно. Бих искал да попитам как точно може към даден контролер да се свърже EEPROM чип така, че да се ползва повече памет и да могат да се пишат сравнително по-сложни прогроми. Също би ми било много интересно (а вярвам  ина другите хора четящи тази рубрика) да дадете повече разяснения за възможностите които дава даден контролер. Видове контролери, и ако е възможно малко повече информация за програмните инструкции които поддържат. Има ли компилатор който да може да се ползва за да е по-лесно писането на фърмуера (ако въобще се казва така). Пак казвам, че не разбирам от това и затова ако е възможно като за нормални хора - както бяха статиите за дискретните елементи.

yasko

  • Administrator
  • *****
  • Публикации: 484
    • Профил
Как да направим схема включваща повече памет?
« Отговор #1 -: Януари 30, 2008, 01:06:32 am »
DarkLordTed добре дошъл във форума :)
Обикновено микроконтролерите не позволяват добавянето на външна програмна памет, ако не стига паметта може да се подбере такъв с по-голяма. Другия вариант е да се изгради микропроцесорна система, където човек може да си подбере сам размерите на паметта. Но като за начало дори и с един обикновен 8 битов контролер за 3-4 лв могат да се направят доста интересни неща. Относно другите ти въпроси, наистина е хубаво да се направи една рубрика за начинаещи, аз лично започнах да обяснявам за AVR микроконтролерите. Изложил съм как човек може да напише една елементарна програма, да я компилира и след това да я запише и разбира се преди това да сглоби необходимия хардуер. Засега съм спрял да пиша по тематиката поради липса на време и интерес от страна на участниците във форума. Не съм се отказал от начинанието и подготвям един интересен проект базиран на AVR микроконтролер в който ще се опитам да обясня различни аспекти на самия MCU.
А иначе контролери има най-различни и направата на един обзор е не лека задача. За момента във форума се занимаваме с 2 от най-популярните AVR и PIC.
Ясен Паунски,  гр.София, 39 г.

DarkLordTed

  • Робо-Новак
  • *****
  • Публикации: 33
    • Профил
Как да направим схема включваща повече памет?
« Отговор #2 -: Януари 30, 2008, 01:44:25 am »
Благодаря за отговора Yasko!
Ясно, е че има различни видове контролери - въпроса който ме касае в частност е дали мога да пиша програмата си директно на Assembler да я компилирам и тя да работи на даден контролер. Ясно е, че не може да се очаква да има прекъсвания (все пак това не е PC) става дума за директни обръщения към портовете IN, OUT и за логически инструкции като XOR, AND, OR, NOT и др. До каква степен Op байтовете са съвместими с тези на PC-то за тези инструкции, и до каква степен са съвместими между отделните процесори използвани в различните контролери. Пак казвам ако говоря глупости казвайте защото аз съм просто биолог и нямам техническо образование.

DataMatrix

  • Заклет Роботостроител
  • *****
  • Публикации: 308
    • Профил
    • http://datamatrix-bg.net/
Как да направим схема включваща повече памет?
« Отговор #3 -: Януари 30, 2008, 09:06:42 am »
Не е вярно, че MCU-тата нямат прекъсвания, поне не повечето. По принцип можеш спокойно да пишеш на асемблер, като набора от инструкции си зависи от самия контролер. Виж следният даташийт например: http://upload.robotics-bg.com/files/datasheet_PIC16f877A.pdf
на страница 160 (номерация на страниците, по номерацията на PDF-a е 162) започва списъка с инстукции, които е нужно да се знаят преди да почнем да пишем на асемблер-а на даден контролер. Плюс това, трябва да имаш компилатор, който подържа даденият контролер и той да е настроен в режим за работа имено с него. Ако знаеш езика C обаче, можеш да си вземеш програма, на която пишеш кода на C и си избираш типа на контролера - за останалото се грижи програмата-компилатор.
Димитър Бояджиев, гр. София

Borislav

  • Administrator
  • *****
  • Публикации: 1010
    • Профил
    • http://robotics-bg.com
Как да направим схема включваща повече памет?
« Отговор #4 -: Януари 30, 2008, 10:24:23 am »
Митко е прав... На почти всички процесори може да се пише на Асемблер..
И малко извън темата: Можеш да видиш "хлебарката" (робо-платформата) на Слави (spp). :) Той я беше подготвял за Line-tracer, като програмата беше на Асемблер. Но не е казвал подробности от доста време... Очаквам с нетърпение да я видя в действие!
Роботиката не е хоби - тя е начин на живот!

spp

  • Global Moderator
  • *****
  • Публикации: 414
    • Профил
    • http://robotics.cnc-bg.net/
Как да направим схема включваща повече памет?
« Отговор #5 -: Януари 30, 2008, 11:38:44 am »
Задал си въпроси на които трудно може да се отговори с два реда.
Има различни програмни езици (от ниско и високо)ниво.Общо взето всеки един от тях си има особености и трябва за себе си да решиш с какъв ще работиш.Езиците от ниско ниво ,като асемблера,изискват познаване на вътрешната архитектура на процесора.Така,че ако решиш да програмираш с него ще трябва да почетеш и да понаучиш основите на цифровата електроника.А след това и да познаваш добре процесора,които ще програмираш.Не е толкова трудно ,колкото изглежда.На мен лично ми се струва много по интуитивно ,но това е мое мнение и не държа да е универсално.Езиците от по-високо ниво не изискват   много познания по вътрешната архитектура на контролера.Можеш да ги ползваш за различни контролери стига да имаш подходящия компилатор.
Всеки един език си има и предимства и недостатъци.
Истината е ,че трябва да пробваш и едното и другото,така сам за себе си ще определиш къде ти е най-лесно и приятно.
Другата безкрайна тема,кои контролер е по-добър също ми се струва безсмислена за коментар.Важно е за какво ще го ползваш и кое ти е приоритет.Ресурсите на контролера или цената.
За да започнеш от А и Б ти трябва и ясно (разбираемо) написана литература.Такава има на български за най-оспорвания и хулен процесор PIC16F84.Има две книги и много примери и схеми,които можеш да изпълниш с малко средства и за кратко време.Можеш да почнеш от там .А после да разбереш ти точно ,какво ти трябва,защото това вече е индивидуално.
Слави Петков
София 49г

DarkLordTed

  • Робо-Новак
  • *****
  • Публикации: 33
    • Профил
Как да направим схема включваща повече памет?
« Отговор #6 -: Януари 30, 2008, 02:10:23 pm »
Благодаря на всички за разясненията. Това, че може да се ползват даже прекъсвания ме зарадва много. Имам един последен въпрос може ли някой да даде схема на това как трябва да се навържат Процесор, Таймер, SRAM, DRAM и ROM при собствена реализация. Възможно ли е вместо ROM да има външна флаш памет и по този начин да се избегне необходимостта от програматор? Знам, че това може и да не е много лесно за начинаещи, но все пак би било интересно- ако искате пуснете просто тема за това когато имате възможност. Още веднъж ви благодаря за информацията.

tommyboy

  • Направо Робот! :)
  • *****
  • Публикации: 416
    • Профил
Как да направим схема включваща повече памет?
« Отговор #7 -: Февруари 03, 2008, 11:27:44 am »
сори, че не е по темата, но ако някой знае някой книжка за микроконтролери на БГ освен на млад конструктор да каже няма значение за какви МЦУ-та става въпрос  ;)