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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
gessor
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08
Контактная информация:

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

Сообщение gessor »

Есть два мелких вопроса по микроконтроллерам. Правильно понимаю, что если при написании программы на асме поставить директиву .ORG ,то программный счетчик будет все равно прощелкивать пустые ячейки?

И с какой целью обычно применяется внешняя RC цепочка? Чем может быть недостаточно внутреннего тактирования или нормального кварца?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25150
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

Директива ORG не имеет никакого отношения к исполнению кода. Это директива РАЗМЕЩЕНИЯ кода в программной памяти.
Исполнение зависит от КОМАНД контроллера.
"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит. Обычно внешняя RC-цепь служит целям СБРОСА.
Хотя и это в большинстве случаев совершенно не требуется. Контроллер содержит на борту и супервизор (BOR) и таймер сброса.
gessor
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08
Контактная информация:

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

Сообщение gessor »

Допустим, с помощью директивы мы разместили код в середине памяти. Значит ли это что МК до начала выполнения кода потратит часть времени на прощелкивание пустых ячеек?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25150
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

Пустых ячеек не бывает. По любому адресу есть какой то код, который интерпретируется контроллером как некая команда.
Если эта команда NOP, то счетчик команд действительно будет просто инкрементироваться. А если, например, первая команда будет переходом на адрес ORG, то программа ничего "прощелкивать" не будет.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

КРАМ писал(а):"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит.
помнится, у каких-то PIC-ов имелась возможность затактироваться от RC-генератора с внешней RC-цепочкой. не стану утверждать, что такая практика в настоящее время искоренилась всеми производителями МК.
так что обычно это или нет, зависит от контекста.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25150
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

ARV писал(а):помнится, у каких-то

"Помнится" к случаю "обычно" никак отнести нельзя.
Из контекста вопроса следует лишь цепь сброса.
SEMuil
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт окт 01, 2015 13:59:33

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

Сообщение SEMuil »

Вопросик!
Пишу программку на CodeVisionAVR V2.04.4a для ATtiny13A (фьюзы не трогаю, т.е. частота 1,2 МГц)

У меня неправильно работает пауза,
часть кода:

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

PORTB=0b00000100;
DDRB=0b00000001;

TCCR0A=0b10100011;
TCCR0B=0b00000010;   
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

GIMSK=0x00;
MCUCR=0x00;

TIMSK0=0x00;

ACSR=0x80;
ADCSRB=0x00;

while (OCR0A<maxA) {     // плавный розжиг LED1
 OCR0A++;   
 delay_ms(10); };

t=t_eep;
if (t>5) t=1;
delay_ms(t*1000);        // ожидание


В общем ожидание, delay_ms(1000); пролетает за мгновение, а должно быть 1 сек. На практике 1с. получается около delay_ms(9000);

Как в теории рассчитать эту паузу? Мне допустим надо точно 3с.
Последний раз редактировалось SEMuil Пн дек 21, 2015 16:19:13, всего редактировалось 1 раз.
SEMuil
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт окт 01, 2015 13:59:33

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

Сообщение SEMuil »

пока только одно на ум приходит, по умолчанию Тинька работает на другой частоте. (поэтому компилятор не правильно рассчитывает значение delay )
Фьюзы по умолчанию:
Изображение
Chettuser

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

Сообщение Chettuser »

ARV писал(а):у каких-то PIC-ов имелась возможность затактироваться от RC-генератора с внешней RC-цепочкой.

У 16-й и 18-й серий. Про 24-ю и 33-ю ничего не скажу, я с PIC переехал раньше, чем добрался до этих серий.
Аватара пользователя
Upgrader
Друг Кота
Сообщения: 26671
Зарегистрирован: Пт май 18, 2007 22:56:58

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

Сообщение Upgrader »

SEMuil писал(а):Как в теории рассчитать эту паузу?
Проверьте фьюзы и правильность выставленной частоты в настройках проекта cvavr. Если все верно, то и задержка будет правильно точно идти.
Не променяю медь на ржавую несгорайку!
SEMuil
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт окт 01, 2015 13:59:33

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

Сообщение SEMuil »

Upgrader писал(а):
SEMuil писал(а):Как в теории рассчитать эту паузу?
Проверьте фьюзы и правильность выставленной частоты в настройках проекта cvavr. Если все верно, то и задержка будет правильно точно идти.

Фьюзы я не трогаю, следовательно 1.2 МГц.
Поковырялся в настройках, нашёл это:
Изображение
Про эти настройки вы говорите?

4.800 000 Это я поменял для теста. Завтра буду прошивать, тестировать. (стояло 1.200 000)
Аватара пользователя
Upgrader
Друг Кота
Сообщения: 26671
Зарегистрирован: Пт май 18, 2007 22:56:58

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

Сообщение Upgrader »

SEMuil писал(а):Фьюзы я не трогаю, следовательно 1.2 МГц.
Нет, не следовательно.
Надо прочитать их и посмотреть :) Это не сложно. Найдите любой калькулятор фьюзов, и сравните с ним то что у вас есть.
Не променяю медь на ржавую несгорайку!
SEMuil
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт окт 01, 2015 13:59:33

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

Сообщение SEMuil »

Upgrader писал(а):
SEMuil писал(а):Фьюзы я не трогаю, следовательно 1.2 МГц.
Нет, не следовательно.
Надо прочитать их и посмотреть :) Это не сложно. Найдите любой калькулятор фьюзов, и сравните с ним то что у вас есть.

Пробежался на калькуляторе, значение фьюз выкладывал ранее:
Изображение
кто поопытнее, скажите какая тут частота работы чипа?

мои мысли 9,6 + включён делитель на 8 = 1,2 :dont_know:
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Судя по младшему байту конфигурации установлена частота 4,8МГц без делителя и максимальное время задержки включения.
SEMuil
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт окт 01, 2015 13:59:33

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

Сообщение SEMuil »

Опытным путём, только при установке в программе 9,6 МГц промежутки времени похожи на правду. мда ...
а ещё же частота зависит от напряжения питания, я правильно понимаю? (у меня будет работать на 5В, а тестирую я от компа там где то 4,5В в итоге будет одинаково?)
АСУ
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

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

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

SEMuil писал(а):кто поопытнее, скажите какая тут частота работы чипа?

Судя по картинке, МК тактируется от внутреннего генератора 1,2 МГц, это заводская установка.
SEMuil
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт окт 01, 2015 13:59:33

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

Сообщение SEMuil »

АСУ писал(а):Судя по картинке, МК тактируется от внутреннего генератора 1,2 МГц, это заводская установка.

как тогда синхронизировать эту микруху с CodeVisionAVR ? Почему такие нестыковки, видимо что то не так делаю :(
По логике как раз делитель частоты на 8 не включён, и CodeVisionAV думает что 9,6 МГц.
Мне просто интересно тогда с какой частотой работает ШИМ.

1,2 МГц / 250 / 8 = 600 Гц. - норм, но если реальная частота 9,6 то там килогерцы , сильно много. (плохо нет осциллографа)
8 - это TCCR0B=0b00000010;
АСУ
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

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

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

Я отталкиваюсь от информации калькулятора, которую ты выложил. Если он соответствует прочтённым фьюзам, то однозначно частота 1,2 МГц. Почему у тебя не работают паузы как надо… хз, я пишу проги на АБ (Algorithm Builder). Так что где у тебя, что не так, я проверить не смогу. Если уберёшь делитель на 8, будет тикать на частоте 9,6 МГц. Попробуй и посмотри.
Сама библиотека которую ты используешь как «определяет» частоту тактирования МК… может в настройках чего не установил?
SEMuil
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт окт 01, 2015 13:59:33

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

Сообщение SEMuil »

АСУ писал(а):Я отталкиваюсь от информации калькулятора, которую ты выложил. Если он соответствует прочтённым фьюзам, то однозначно частота 1,2 МГц. Почему у тебя не работают паузы как надо… хз, я пишу проги на АБ (Algorithm Builder). Так что где у тебя, что не так, я проверить не смогу. Если уберёшь делитель на 8, будет тикать на частоте 9,6 МГц. Попробуй и посмотри.
Сама библиотека которую ты используешь как «определяет» частоту тактирования МК… может в настройках чего не установил?

Мне главное что бы было 1,2МГц. так что в принципе терпимо.
С CodeVisionAVR только осваиваюсь, но вроде бы только в одном месте устанавливается частота (скрин ранее).
Так то не мешает, если в проге установить 9,6 МГц соответствует с реальностью. Поэкспериментировал сегодня вроде точно, жить можно ))
Буду дальше думать.
Ican
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт янв 31, 2012 20:55:18
Откуда: Екатеринбург
Контактная информация:

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

Сообщение Ican »

Приветик!
будут ли дружить по i2c stm32f100(питание 3.3В) и TDA7313 (питание 9В) если шину i2c подтянуть к +3.3В ?
ДШ на 7313 не оговаривает к какому уровню подтягивать шинку i2c

PS это первое знакомство с этой шиной. Я даже не знаю какой номинал резистора нужно... Ну предполагаю, что 10 кОм
Ответить

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