Автор Тема: Въпроси свързани с един туториял  (Прочетена 5509 пъти)

xyz

  • Вече знае какво е робот!
  • *****
  • Публикации: 75
    • Профил
Въпроси свързани с един туториял
« -: Април 09, 2013, 02:49:49 pm »
Никога не съм се занимавал с електроника, в смисъл знам елементите и как функционират, но как им се изчисляват точните стойности - това не го знам.

Но ето, че реших да за обучавам за правенето на USB устройства. Нещата откъм компютъра са ми горе долу ясни (в смисъл, че знам асемблер и съм си играл с управлението на USB потра), но за изработката на хардуера започнах от този туториял:
http://codeandlife.com/2012/01/25/avr-attiny-usb-tutorial-part-2/

Някой ще може ли да ми каже например, в споменатия туториял как се изчисляват параметрите на нужните съпротивленията и кондензатори?

Другото нещо, което искам да питам е на какъв принцип се осъществява синхронизирането. В смисъл двоичният сигнал по D+ и D- не отговаря на този, който е генериран от кварца в схемата.

emil74

  • Зомбиран Роботостроител
  • *****
  • Публикации: 227
    • Профил
    • http://www.maystorio.com
Въпроси свързани с един туториял
« Отговор #1 -: Април 10, 2013, 05:38:17 pm »
Кажи малко по-конкретно доколко си запознат с USB.
 Един въпрос, например, само за да си посверим часовниците: знаеш ли как дадено устройство ще "каже" на компютъра какво е?
При правенето на USB устройства, изчисляването  на елементите е най-малкия проблем. Обикновено се ползва готово схемотехническо решение, дадено от производителя, което само се прилага. Но, за да имаш комуникация с компютъра, трябват доста познания. Мисля също, че Асемблер не е добра идея. Има други езици, с които много по-лесно да осъществиш това, което искаш.
От кой клас ще са устройствата, които искаш да правиш? Как стои въпросът с драйверите?

xyz

  • Вече знае какво е робот!
  • *****
  • Публикации: 75
    • Профил
Въпроси свързани с един туториял
« Отговор #2 -: Април 11, 2013, 12:57:44 pm »
Цитат
Кажи малко по-конкретно доколко си запознат с USB.

  Всичко което съм правил беше преди доста време, така че някои термини вече съм ги забравил. Иначе практическият ми опит в USB е, че успях да пригодя една програма за управление на USB мишката (т. е. става дума за HID устройство) писана за DOS за операционната система MenuetOS. Така че разглеждайки тази програма (която пазя) лесно ще си припомня как стоят нещата по отношение контрола от страна на компютъра. Адаптацията не беше твърде елементарна, защото трябваше да заменя BIOS извикванията със съответните функции за писане в pci регистрите и още други неща свързани с асемблера.
  Между другото USB достъпа да мишката беше от интелски тип. Освен него има още един вид, който не му помня името, но съдържаше частицата "open". Аз използвах първото, защото такова имах на компютъра си (а исках да го тествам практически и наистина се получи). Не си спомням дори и протокола USB 1.0 или USB 2.0 беше.

Цитат
Един въпрос, например, само за да си посверим часовниците: знаеш ли как дадено устройство ще "каже" на компютъра какво е?

  Тези неща си ги пише в USB документацията. Разглеждах такава, докато се опитвах да подкарам едно USB флопи. Не се получи, защото не можах да подкарам DMA в MenuetOS (май прекъсванията правеха някакви мизерии). Иначе стартирането и спирането на двигателчето беше без проблемно.

Цитат
При правенето на USB устройства, изчисляването на елементите е най-малкия проблем. Обикновено се ползва готово схемотехническо решение, дадено от производителя, което само се прилага.

  За кой производител става дума? Туторияла който съм показал не показва ли в някакъв смисъл подобно готово решение? Между другото в оня туториял кварцът, който се ползва за тактов генератор е огромен. Също и самата интегрална схема е огромна. При реализирането на реална схема (а не само за тестове, като е показано) тези компоненти имат ли си "нормални" размери?

Цитат
Но, за да имаш комуникация с компютъра, трябват доста познания. Мисля също, че Асемблер не е добра идея. Има други езици, с които много по-лесно да осъществиш това, което искаш.

  С асемблер е далеч по-лесно трасирането, ако написаното от теб се тества например се емулатор. При горните експерименти аз емулирах MenuetOS с емулатора qemu. Този емулатор е много добре написан, така че можеш да схванеш начина на действие и по самия код.

Цитат
От кой клас ще са устройствата, които искаш да правиш?

  Крайната цел ще бъде да са от класа на USB флашките (забравих точно как се казваха). Но може отначало да опитам само HID.

Цитат
Как стои въпросът с драйверите?

  Крайната цел, която съм си поставил е за стандартно устройство, така че няма да имам нужда от драйвер. По времето на разработката мисля да ползвам въпросната MenuetOS, прилагайки директно управление. Така че няма да имам отново нужда да пиша драйвери за истинска операционна система.

emil74

  • Зомбиран Роботостроител
  • *****
  • Публикации: 227
    • Профил
    • http://www.maystorio.com
Въпроси свързани с един туториял
« Отговор #3 -: Април 11, 2013, 04:08:33 pm »
Погледни примерите, които съм дал в сайта на Микроелектроника за емулиране на мишка, клавиатура и джойстик, както и примера за използване на Report ID в дескриптора(мишка и клавиатура с един микроконтролер). За MikroC са и предполагам, веднага ще разбереш колко по-лесно е, отколкото с Асемблер.
http://www.libstock.com/users/view/6838

Кодовете се виждат, когато се щракне върху връзката под логото ми - там, където пише 4 codes
Няма да ти се наложи писане от страната на компютъра, ако ползваш Windows - той има вградени драйвери за тези устройства. Само преработваш кода, който съм дал.
За Mass Storage клас нещата са подобни. Но за начало можеш да си поиграеш с тези примери.
Ако искаш да се занимаваш сериозно с USB устройства, съветът ми е да започнеш да четеш информацията в официалния сайт за USB - http://www.usb.org
Има подробно описание за всеки клас, дескрипторите и съответните кодове в тях. За HID клас може да се свали инструмент за генериране на дескриптори - Descriptor Tool. Има набор от стандартни дескриптори и възможност да се модифицират или да се създават нови.