Мелкие вопросы по МК и ПЛИС.
-
gessor
- Встал на лапы
- Сообщения: 115
- Зарегистрирован: Ср дек 12, 2012 20:08:08
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Есть два мелких вопроса по микроконтроллерам. Правильно понимаю, что если при написании программы на асме поставить директиву .ORG ,то программный счетчик будет все равно прощелкивать пустые ячейки?
И с какой целью обычно применяется внешняя RC цепочка? Чем может быть недостаточно внутреннего тактирования или нормального кварца?
И с какой целью обычно применяется внешняя RC цепочка? Чем может быть недостаточно внутреннего тактирования или нормального кварца?
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
Директива ORG не имеет никакого отношения к исполнению кода. Это директива РАЗМЕЩЕНИЯ кода в программной памяти.
Исполнение зависит от КОМАНД контроллера.
"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит. Обычно внешняя RC-цепь служит целям СБРОСА.
Хотя и это в большинстве случаев совершенно не требуется. Контроллер содержит на борту и супервизор (BOR) и таймер сброса.
Исполнение зависит от КОМАНД контроллера.
"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит. Обычно внешняя RC-цепь служит целям СБРОСА.
Хотя и это в большинстве случаев совершенно не требуется. Контроллер содержит на борту и супервизор (BOR) и таймер сброса.
-
gessor
- Встал на лапы
- Сообщения: 115
- Зарегистрирован: Ср дек 12, 2012 20:08:08
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Допустим, с помощью директивы мы разместили код в середине памяти. Значит ли это что МК до начала выполнения кода потратит часть времени на прощелкивание пустых ячеек?
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
Пустых ячеек не бывает. По любому адресу есть какой то код, который интерпретируется контроллером как некая команда.
Если эта команда NOP, то счетчик команд действительно будет просто инкрементироваться. А если, например, первая команда будет переходом на адрес ORG, то программа ничего "прощелкивать" не будет.
Если эта команда NOP, то счетчик команд действительно будет просто инкрементироваться. А если, например, первая команда будет переходом на адрес ORG, то программа ничего "прощелкивать" не будет.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
помнится, у каких-то PIC-ов имелась возможность затактироваться от RC-генератора с внешней RC-цепочкой. не стану утверждать, что такая практика в настоящее время искоренилась всеми производителями МК.КРАМ писал(а):"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит.
так что обычно это или нет, зависит от контекста.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
ARV писал(а):помнится, у каких-то
"Помнится" к случаю "обычно" никак отнести нельзя.
Из контекста вопроса следует лишь цепь сброса.
Re: Мелкие вопросы по МК и ПЛИС.
Вопросик!
Пишу программку на CodeVisionAVR V2.04.4a для ATtiny13A (фьюзы не трогаю, т.е. частота 1,2 МГц)
У меня неправильно работает пауза,
часть кода:
В общем ожидание, delay_ms(1000); пролетает за мгновение, а должно быть 1 сек. На практике 1с. получается около delay_ms(9000);
Как в теории рассчитать эту паузу? Мне допустим надо точно 3с.
Пишу программку на 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 раз.
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
ARV писал(а):у каких-то PIC-ов имелась возможность затактироваться от RC-генератора с внешней RC-цепочкой.
У 16-й и 18-й серий. Про 24-ю и 33-ю ничего не скажу, я с PIC переехал раньше, чем добрался до этих серий.
Re: Мелкие вопросы по МК и ПЛИС.
Проверьте фьюзы и правильность выставленной частоты в настройках проекта cvavr. Если все верно, то и задержка будет правильно точно идти.SEMuil писал(а):Как в теории рассчитать эту паузу?
Не променяю медь на ржавую несгорайку!
Re: Мелкие вопросы по МК и ПЛИС.
Upgrader писал(а):Проверьте фьюзы и правильность выставленной частоты в настройках проекта cvavr. Если все верно, то и задержка будет правильно точно идти.SEMuil писал(а):Как в теории рассчитать эту паузу?
Фьюзы я не трогаю, следовательно 1.2 МГц.
Поковырялся в настройках, нашёл это:
Про эти настройки вы говорите?
4.800 000 Это я поменял для теста. Завтра буду прошивать, тестировать. (стояло 1.200 000)
Re: Мелкие вопросы по МК и ПЛИС.
Нет, не следовательно.SEMuil писал(а):Фьюзы я не трогаю, следовательно 1.2 МГц.
Надо прочитать их и посмотреть
Не променяю медь на ржавую несгорайку!
Re: Мелкие вопросы по МК и ПЛИС.
Upgrader писал(а):Нет, не следовательно.SEMuil писал(а):Фьюзы я не трогаю, следовательно 1.2 МГц.
Надо прочитать их и посмотретьЭто не сложно. Найдите любой калькулятор фьюзов, и сравните с ним то что у вас есть.
Пробежался на калькуляторе, значение фьюз выкладывал ранее:
кто поопытнее, скажите какая тут частота работы чипа?
мои мысли 9,6 + включён делитель на 8 = 1,2

Re: Мелкие вопросы по МК и ПЛИС.
Судя по младшему байту конфигурации установлена частота 4,8МГц без делителя и максимальное время задержки включения.
Re: Мелкие вопросы по МК и ПЛИС.
Опытным путём, только при установке в программе 9,6 МГц промежутки времени похожи на правду. мда ...
а ещё же частота зависит от напряжения питания, я правильно понимаю? (у меня будет работать на 5В, а тестирую я от компа там где то 4,5В в итоге будет одинаково?)
а ещё же частота зависит от напряжения питания, я правильно понимаю? (у меня будет работать на 5В, а тестирую я от компа там где то 4,5В в итоге будет одинаково?)
Re: Мелкие вопросы по МК и ПЛИС.
SEMuil писал(а):кто поопытнее, скажите какая тут частота работы чипа?
Судя по картинке, МК тактируется от внутреннего генератора 1,2 МГц, это заводская установка.
Re: Мелкие вопросы по МК и ПЛИС.
АСУ писал(а):Судя по картинке, МК тактируется от внутреннего генератора 1,2 МГц, это заводская установка.
как тогда синхронизировать эту микруху с CodeVisionAVR ? Почему такие нестыковки, видимо что то не так делаю
По логике как раз делитель частоты на 8 не включён, и CodeVisionAV думает что 9,6 МГц.
Мне просто интересно тогда с какой частотой работает ШИМ.
1,2 МГц / 250 / 8 = 600 Гц. - норм, но если реальная частота 9,6 то там килогерцы , сильно много. (плохо нет осциллографа)
8 - это TCCR0B=0b00000010;
Re: Мелкие вопросы по МК и ПЛИС.
Я отталкиваюсь от информации калькулятора, которую ты выложил. Если он соответствует прочтённым фьюзам, то однозначно частота 1,2 МГц. Почему у тебя не работают паузы как надо… хз, я пишу проги на АБ (Algorithm Builder). Так что где у тебя, что не так, я проверить не смогу. Если уберёшь делитель на 8, будет тикать на частоте 9,6 МГц. Попробуй и посмотри.
Сама библиотека которую ты используешь как «определяет» частоту тактирования МК… может в настройках чего не установил?
Сама библиотека которую ты используешь как «определяет» частоту тактирования МК… может в настройках чего не установил?
Re: Мелкие вопросы по МК и ПЛИС.
АСУ писал(а):Я отталкиваюсь от информации калькулятора, которую ты выложил. Если он соответствует прочтённым фьюзам, то однозначно частота 1,2 МГц. Почему у тебя не работают паузы как надо… хз, я пишу проги на АБ (Algorithm Builder). Так что где у тебя, что не так, я проверить не смогу. Если уберёшь делитель на 8, будет тикать на частоте 9,6 МГц. Попробуй и посмотри.
Сама библиотека которую ты используешь как «определяет» частоту тактирования МК… может в настройках чего не установил?
Мне главное что бы было 1,2МГц. так что в принципе терпимо.
С CodeVisionAVR только осваиваюсь, но вроде бы только в одном месте устанавливается частота (скрин ранее).
Так то не мешает, если в проге установить 9,6 МГц соответствует с реальностью. Поэкспериментировал сегодня вроде точно, жить можно ))
Буду дальше думать.
-
Ican
- Встал на лапы
- Сообщения: 94
- Зарегистрирован: Вт янв 31, 2012 20:55:18
- Откуда: Екатеринбург
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Приветик!
будут ли дружить по i2c stm32f100(питание 3.3В) и TDA7313 (питание 9В) если шину i2c подтянуть к +3.3В ?
ДШ на 7313 не оговаривает к какому уровню подтягивать шинку i2c
PS это первое знакомство с этой шиной. Я даже не знаю какой номинал резистора нужно... Ну предполагаю, что 10 кОм
будут ли дружить по i2c stm32f100(питание 3.3В) и TDA7313 (питание 9В) если шину i2c подтянуть к +3.3В ?
ДШ на 7313 не оговаривает к какому уровню подтягивать шинку i2c
PS это первое знакомство с этой шиной. Я даже не знаю какой номинал резистора нужно... Ну предполагаю, что 10 кОм