И с какой целью обычно применяется внешняя RC цепочка? Чем может быть недостаточно внутреннего тактирования или нормального кварца?
Мелкие вопросы по МК и ПЛИС.
- Сообщения: 115
- Зарегистрирован: Ср дек 12, 2012 20:08:08
Есть два мелких вопроса по микроконтроллерам. Правильно понимаю, что если при написании программы на асме поставить директиву .ORG ,то программный счетчик будет все равно прощелкивать пустые ячейки?
И с какой целью обычно применяется внешняя RC цепочка? Чем может быть недостаточно внутреннего тактирования или нормального кварца?
И с какой целью обычно применяется внешняя RC цепочка? Чем может быть недостаточно внутреннего тактирования или нормального кварца?
- Реклама
Директива ORG не имеет никакого отношения к исполнению кода. Это директива РАЗМЕЩЕНИЯ кода в программной памяти.
Исполнение зависит от КОМАНД контроллера.
"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит. Обычно внешняя RC-цепь служит целям СБРОСА.
Хотя и это в большинстве случаев совершенно не требуется. Контроллер содержит на борту и супервизор (BOR) и таймер сброса.
Исполнение зависит от КОМАНД контроллера.
"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит. Обычно внешняя RC-цепь служит целям СБРОСА.
Хотя и это в большинстве случаев совершенно не требуется. Контроллер содержит на борту и супервизор (BOR) и таймер сброса.
- Сообщения: 115
- Зарегистрирован: Ср дек 12, 2012 20:08:08
Допустим, с помощью директивы мы разместили код в середине памяти. Значит ли это что МК до начала выполнения кода потратит часть времени на прощелкивание пустых ячеек?
Пустых ячеек не бывает. По любому адресу есть какой то код, который интерпретируется контроллером как некая команда.
Если эта команда NOP, то счетчик команд действительно будет просто инкрементироваться. А если, например, первая команда будет переходом на адрес ORG, то программа ничего "прощелкивать" не будет.
Если эта команда NOP, то счетчик команд действительно будет просто инкрементироваться. А если, например, первая команда будет переходом на адрес ORG, то программа ничего "прощелкивать" не будет.
помнится, у каких-то PIC-ов имелась возможность затактироваться от RC-генератора с внешней RC-цепочкой. не стану утверждать, что такая практика в настоящее время искоренилась всеми производителями МК.КРАМ писал(а):"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит.
так что обычно это или нет, зависит от контекста.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
"Помнится" к случаю "обычно" никак отнести нельзя.ARV писал(а):помнится, у каких-то
Из контекста вопроса следует лишь цепь сброса.
- Сообщения: 33
- Зарегистрирован: Чт окт 01, 2015 13:59:33
Вопросик!
Пишу программку на 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); // ожидание Как в теории рассчитать эту паузу? Мне допустим надо точно 3с.
Последний раз редактировалось SEMuil Пн дек 21, 2015 16:19:13, всего редактировалось 1 раз.
- Сообщения: 33
- Зарегистрирован: Чт окт 01, 2015 13:59:33
У 16-й и 18-й серий. Про 24-ю и 33-ю ничего не скажу, я с PIC переехал раньше, чем добрался до этих серий.ARV писал(а):у каких-то PIC-ов имелась возможность затактироваться от RC-генератора с внешней RC-цепочкой.
- Сообщения: 26671
- Зарегистрирован: Пт май 18, 2007 22:56:58
Проверьте фьюзы и правильность выставленной частоты в настройках проекта cvavr. Если все верно, то и задержка будет правильно точно идти.SEMuil писал(а):Как в теории рассчитать эту паузу?
Не променяю медь на ржавую несгорайку!
- Сообщения: 33
- Зарегистрирован: Чт окт 01, 2015 13:59:33
Фьюзы я не трогаю, следовательно 1.2 МГц.Upgrader писал(а):Проверьте фьюзы и правильность выставленной частоты в настройках проекта cvavr. Если все верно, то и задержка будет правильно точно идти.SEMuil писал(а):Как в теории рассчитать эту паузу?
Поковырялся в настройках, нашёл это:
Про эти настройки вы говорите?
4.800 000 Это я поменял для теста. Завтра буду прошивать, тестировать. (стояло 1.200 000)
- Сообщения: 26671
- Зарегистрирован: Пт май 18, 2007 22:56:58
Нет, не следовательно.SEMuil писал(а):Фьюзы я не трогаю, следовательно 1.2 МГц.
Надо прочитать их и посмотреть
Не променяю медь на ржавую несгорайку!
- Сообщения: 33
- Зарегистрирован: Чт окт 01, 2015 13:59:33
Пробежался на калькуляторе, значение фьюз выкладывал ранее:Upgrader писал(а):Нет, не следовательно.SEMuil писал(а):Фьюзы я не трогаю, следовательно 1.2 МГц.
Надо прочитать их и посмотретьЭто не сложно. Найдите любой калькулятор фьюзов, и сравните с ним то что у вас есть.
кто поопытнее, скажите какая тут частота работы чипа?
мои мысли 9,6 + включён делитель на 8 = 1,2
Судя по младшему байту конфигурации установлена частота 4,8МГц без делителя и максимальное время задержки включения.
- Сообщения: 33
- Зарегистрирован: Чт окт 01, 2015 13:59:33
Опытным путём, только при установке в программе 9,6 МГц промежутки времени похожи на правду. мда ...
а ещё же частота зависит от напряжения питания, я правильно понимаю? (у меня будет работать на 5В, а тестирую я от компа там где то 4,5В в итоге будет одинаково?)
а ещё же частота зависит от напряжения питания, я правильно понимаю? (у меня будет работать на 5В, а тестирую я от компа там где то 4,5В в итоге будет одинаково?)
- Сообщения: 3342
- Зарегистрирован: Ср янв 02, 2013 08:37:35
Судя по картинке, МК тактируется от внутреннего генератора 1,2 МГц, это заводская установка.SEMuil писал(а):кто поопытнее, скажите какая тут частота работы чипа?
- Сообщения: 33
- Зарегистрирован: Чт окт 01, 2015 13:59:33
как тогда синхронизировать эту микруху с CodeVisionAVR ? Почему такие нестыковки, видимо что то не так делаюАСУ писал(а): Судя по картинке, МК тактируется от внутреннего генератора 1,2 МГц, это заводская установка.
По логике как раз делитель частоты на 8 не включён, и CodeVisionAV думает что 9,6 МГц.
Мне просто интересно тогда с какой частотой работает ШИМ.
1,2 МГц / 250 / 8 = 600 Гц. - норм, но если реальная частота 9,6 то там килогерцы , сильно много. (плохо нет осциллографа)
8 - это TCCR0B=0b00000010;
- Сообщения: 3342
- Зарегистрирован: Ср янв 02, 2013 08:37:35
Я отталкиваюсь от информации калькулятора, которую ты выложил. Если он соответствует прочтённым фьюзам, то однозначно частота 1,2 МГц. Почему у тебя не работают паузы как надо… хз, я пишу проги на АБ (Algorithm Builder). Так что где у тебя, что не так, я проверить не смогу. Если уберёшь делитель на 8, будет тикать на частоте 9,6 МГц. Попробуй и посмотри.
Сама библиотека которую ты используешь как «определяет» частоту тактирования МК… может в настройках чего не установил?
Сама библиотека которую ты используешь как «определяет» частоту тактирования МК… может в настройках чего не установил?
- Сообщения: 33
- Зарегистрирован: Чт окт 01, 2015 13:59:33
Мне главное что бы было 1,2МГц. так что в принципе терпимо.АСУ писал(а):Я отталкиваюсь от информации калькулятора, которую ты выложил. Если он соответствует прочтённым фьюзам, то однозначно частота 1,2 МГц. Почему у тебя не работают паузы как надо… хз, я пишу проги на АБ (Algorithm Builder). Так что где у тебя, что не так, я проверить не смогу. Если уберёшь делитель на 8, будет тикать на частоте 9,6 МГц. Попробуй и посмотри.
Сама библиотека которую ты используешь как «определяет» частоту тактирования МК… может в настройках чего не установил?
С CodeVisionAVR только осваиваюсь, но вроде бы только в одном месте устанавливается частота (скрин ранее).
Так то не мешает, если в проге установить 9,6 МГц соответствует с реальностью. Поэкспериментировал сегодня вроде точно, жить можно ))
Буду дальше думать.
Приветик!
будут ли дружить по 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 кОм


