Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
service47
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение service47 »

Леонид Иванович писал(а):Бит CS21 расположен в регистре TCCR2B.

Спасибо, заработало.
jazz393
Встал на лапы
Сообщения: 118
Зарегистрирован: Ср фев 05, 2014 18:54:39

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение jazz393 »

Здравствуйте, с микроконтроллерами немного знаком, но не сильно, вопрос возник - что такое JTAG отладчик/прорамматор ?
Почитал ВиКи но не очень понял, можно как-нибудь по простому или ккакую-нибудь статейку на эту тематику, большое спасибо.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

jazz393 писал(а):что такое JTAG отладчик/прорамматор ?

JTAG — протокол/стандарт
отладчик позволяет смотреть что на самом деле творится в МК: текущая команда, данные в ОЗУ, состояние периферии, выводов и т.д.
прорамматор позволяет заливать прошивку в МК.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
jazz393
Встал на лапы
Сообщения: 118
Зарегистрирован: Ср фев 05, 2014 18:54:39

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение jazz393 »

спасибо!
1)А что такое ядро микроконтроллера? я уже несколько раз читал про архитектуру микропроцессоров и т.п. , но для себя так особо и не понял, это что-то очень абстрактное... вот есть АЛУ, которое выполняет различные команды над данными в памяти(у каждого АЛУ есть своя система команд как я понял в зависимости от ядра т.е. АЛУ по сути и есть ядро...?), у него есть регистры (кажется FRC или FRU), есть различная переферитя типа таймеров, ADC, DMA итп (которая как я понимаю к ядру уже не относится).

2)Вот ещё, для того чтобы написать какую-нибудь мигалку, надо подключить заголовочный файл, который будет это ядро инициализировать - т.е. настраивать все эти FRU регистры, я правильно понимаю?(И кстати бывает ли так что необходимо несколько хедеров только для того чтобы залить пустую прогу на мк, без gpio итп?).

3) А вот к примеру есть такая штука как бутлоадер, она отвечает за загрузку операционной системы(как я понял из чтива), а в atmega8 к примеру он вообще есть? Или на stm32f407? там же на него не поставить linux какой-нибудь ... тоже какая-то для меня абстрактная штука ... как ей пользоваться для чего она не понимаю...
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение menzoda »

jazz393
Нет. По каждому пункту не правильно.

1. Ядро - это грубо говоря аппаратная штука выполняющая инструкции. Оно состоит из разных частей, в том числе ALU, которое выполняет простейшие арифметические и логические операции. Может быть FPU, который выполняет операции над числами с плавающей точкой. Скорей всего есть какой-нибудь Barrel Shifter как в ARM, который выполняет битовый сдвиг. Есть конвейер команд, который "разбивает" выполнение одной команды на несколько этапов в целях ускорения. В общем есть много всего и все это вместе выполняет твои инструкции и называется ядром.

Еще у ядра есть регистры - ячейки памяти, которыми оперируют ALU и иже с ними. Некоторые архитектуры ядра подразумевают, что операции могут выполняться только над этими регистрами, поэтому сначала приходится загружать данные из памяти в эти регистры, там их складывать/вычитать, а потом обратно сохранять в память. У каждой архитектуры может ыть разный набор этих регистров с разным назначением, а что такое FRC и FRU я понятия не имею, по крайней мере в ARM до версии 7 такого не встречал.

Чуть не забыл. Периферия в ядро не входит, это совершенно независимая штука. Периферия плюс ядро равно микроконтроллер, ну или микропроцессор. Это зависит от того какая периферия и какое ядро.

В общем тебе тут нужно почитать какую-нибудь хорошую книжку, потому что судя по вопросам ты тут совсем плаваешь. Мне лично помогла "Чарльз Петцольд: Код - Тайный язык информатики". Там доступным языком рассказывается собственно о том, как "тупой набор транзисторов" исполняет твои программы.

2. Даже не знаю как отвечать. Ты тут тоже очень плаваешь и я бы порекомендовал тебе прочитать какую-нибудь книжку по Си, можно классику Кернигана и Ричи. А так заголовочные файлы - это... хм... заголовочные файлы. Просто подключив их у тебя ничего не "настроится" и не заработает. Обычно в этих файлах находятся объявления регистров периферии (не путать с регистрами ядра), а ты уже в файлах исходного кода, подключив эти заголовочные файлы, записываешь в регистры определенные значения, или там читаешь, в общем настраиваешь как надо и далее с ними работаешь.

3. Bootloader в контексте микроконтроллеров - это обычно небольшая программа, которая может записать твою прошивку в микроконтроллер по различным интерфейсам (UART, CAN, USB), а затем просто передать ей управление. Для работы совершенно не обязательная штука, просто позволяет в отсутствии отладчика перепрошить МК.
jazz393
Встал на лапы
Сообщения: 118
Зарегистрирован: Ср фев 05, 2014 18:54:39

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение jazz393 »

спасибо за овтеты
1) тогда не понимаю, что подразумевается под ядром Linux - я так думал что это нечто программное, что как раз таки инициализирует то аппаратное ядро.
2) ну я это вообщем-то и имел ввиду, что подключается хедер, в котором объявляются регистры... переферия подключается отдельно, а есть 1 или несколько главных заголовочных файлов в которых идёт настройка как раз таки ядра...

я знаю С/С++ поэтому врядли книги начального уровня мне что-то дадут, мне надо как раз про то как транзисторы тупо это всё выполняют))
я уже с QT вовсю воюю и потихоньку winAPIшные штуки разбираю, просто хочу не только уметь пользоваться языком как инструментом, но и понимать что при этом происходит на уровне железа...
3) т.е. бутлоадер это программа в памяти самого мк, которую туда зашивают или не зашивают производители?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

jazz393 писал(а):3) т.е. бутлоадер это программа в памяти самого мк, которую туда зашивают или не зашивают производители?

Да. Бутлоадер позволяет прошивать МК, не имея спец. программатора. Например, через USB или ещё как.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

Читаю ДШ на Мегу8 и не вдуплю - что у проца может быть всего 2 прерывания с внешних ног INT0 и INT1? :shock: У Тини2313 чуть ли не любой ноги можно генерить асинхронное прерывание... Что же она круче меги? :shock:
АСУ
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение АСУ »

aam писал(а):Что же она круче меги? :shock:

Разве только количество входов внешнего прерывания определяют «крутизну»? :dont_know: Нужно много прерываний… возьмите ATmega48_88_168 цоколевка один к одному с ATmega8. :)
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

Понятно - скоро светодиод будем включать с помощью кнопки и Атмега128... :)))
Значит, я правильно понял, что нет их.
Вот пытаюсь понять что у меня прогу так раздуло... Выясняется, что очень тяжелая функция rand() и моя функция, в которой использую операцию "%" совместно с rand().
Также нелегка апроксимация экспоненты (программная реализация переменника с логарифмической характеристикой), которую я записал так:

Код: Выделить всё

unsigned char Lin_2_Exp(unsigned char lin)

  static unsigned char const __flash Table[]={0,2,6,12,23,44,80,145,255};
  unsigned char index;
  unsigned int dy, exp;
 
  index=lin>>5;
  dy=Table[index+1]-Table[index]; 
  exp=(((lin-(index<<5))*dy)>>5)+Table[index]; 
  return (unsigned char)exp;
}

Библиотека для пульта RC-5 весит 441 байт.
Ну и т. п... Так вот и набежало 3,5 кило на RGB-мигалке... :(

Кто-нибудь в курсе, как сделать в IAR AVR ассемблерную вставку больше чем на 1 строчку? Приемы из CodeVision не канают(( Если писать много раз asm("команда"), то где гарантия, что команды пойдут подряд и как ставить метки и константы с дефайнов?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25125
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

aam писал(а):Читаю ДШ на Мегу8 и не вдуплю - что у проца может быть всего 2 прерывания с внешних ног INT0 и INT1? :shock: У Тини2313 чуть ли не любой ноги можно генерить асинхронное прерывание... Что же она круче меги? :shock:

Если не секрет, а зачем Вам обилие прерываний с ног?
И что за нужда иметь на каждую ногу свой вектор?
Просуммируйте все внешние на одну ногу внешнего прерывания и кроме того подайте их каждый на свою.
Семафор, полагаю, Вас не нужно учить писать?
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

КРАМ писал(а):Если не секрет, а зачем Вам обилие прерываний с ног?

Типа изменение на ноге отслеживать. У меня 2 питания - одно для ленты, другое для светодиодов. А контроллер от обоих по ИЛИ питается, т.е. работает если запитан хотя бы один из источников света или оба сразу. Соответственно если одного из питаний нет, то ЭТИМ управлять не стоит, т.к. ЭТО не запитано и должны быть заблокированы соответствующие кнопки чтоб дров не наломать беспорядочным тырканьем. Если же питание появилось, то надо включить соответствующее устройство программно (БП светодиодов или каналы RGB).
Вот и завел я 2 питания на 2 ноги. Щас программно опрашиваю и есть переменная пред. значения. Может семафор и проще...
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25125
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

aam писал(а):
КРАМ писал(а):Если не секрет, а зачем Вам обилие прерываний с ног?

Типа изменение на ноге отслеживать.

Изменения питания происходят за единицы или десятки МИЛЛИсекунд, а латентность прерываний составляет максимум десяток машинных циклов, т.е. пару сотен НАНОсекунд.
Еще раз вопрос: ЗАЧЕМ Вам столь высокая скорость отслеживания? И что мешает считывать состояние ног по таймеру?
ЗЫ. Кстати, лень смотреть даташит на Мегу, но практически все МК имеют обилие асинхронных прерываний от ног по их ИЗМЕНЕНИЮ, но не для обычного использования, а для ПРОСЫПАНИЯ ИЗ СЛИПА, ибо обычные синхронные прерывания не способны разбудить нетактируемый контроллер...
Последний раз редактировалось КРАМ Пт фев 07, 2014 20:05:15, всего редактировалось 1 раз.
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

Скорость не нужна, проге нужен факт изменения. Т. е. грубо говоря не if(есть питание==1),
а if(появилось питание==1). Вот и ввел щас флаг пред. состояния, с корым сравниваю имеющееся, и если изменилось - значит был нажат выключатель.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25125
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

Вот и считывайте по системному таймеру. Им и мигалки всякие можно сделать, и от дребезга защититься, и порты прочесть на предмет изменений. И на все про все ОДИН ТАЙМЕР...
jazz393
Встал на лапы
Сообщения: 118
Зарегистрирован: Ср фев 05, 2014 18:54:39

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение jazz393 »

посоветуйте книгу по ассемблеру хорошую
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FreshMan »

    AVR Microcontroller and Embedded Systems
    Beginers introduction to the Assebly Language of ATMEL-AVR Microprocessors (Gerhard Schmidt,2004, англ)
Tell Me The Truth
jazz393
Встал на лапы
Сообщения: 118
Зарегистрирован: Ср фев 05, 2014 18:54:39

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение jazz393 »

а на русском нету?
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение FreshMan »

jazz393, конечно есть, но рекомендовать вам от себя ничего не стану т.к. в свое время мне ни один из них не подошол и пришлось собирать инфу из разных источников по крупицам
дам вам добрый совет: потихоньку подучивайте англицкий :wink:
Tell Me The Truth
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение aam »

jazz393, все зависит от вашего уровня. Я, например, когда только начал осваивать процы, чииал Белов "Создаем устройства на микроконтроллерах". Там начинается с подключения светодиода и заканчивается схемамами байтбластера для прошивки. Все примеры на ассемблере и на Си. Все подробно разжевано, что называется, для школьников/чайников. Речь о процах AVR.
Ответить

Вернуться в «Разные вопросы по МК»