Страница 564 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 02, 2015 11:33:32
Chettuser
Всё! Сдаюсь!
Пытаюсь запустить STM32F030R8 от внутреннего HSI:
Спойлер
Код: Выделить всё
RCC->CR = 0;
RCC->CR |= RCC_CR_HSION;
while((RCC->CR &RCC_CR_HSIRDY)==0){}
RCC->CR &=~(RCC_CR_PLLON); // Отключаем PLL
while((RCC->CR & RCC_CR_PLLRDY) == 1){}
RCC->CFGR &=~(RCC_CFGR_SW_PLL | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL); // Обнуление CFGR
RCC->CFGR |= RCC_CFGR_SW_PLL;
RCC->CFGR |= RCC_CFGR_PLLMUL2; // Умножить частоту PLL_MUL (2...16)
RCC->CR |= RCC_CR_PLLON; // Запустить PLL
while((RCC->CR &RCC_CR_PLLRDY)==0){} // Ожидание готовности PLL
RCC->CFGR &= ~(RCC_CFGR_SW); // Очистить биты SW0 и SW1
RCC->CFGR |= RCC_CFGR_SW_PLL; // Тактирование с выхода PLL
while((RCC->CFGR & RCC_CFGR_SW) != RCC_CFGR_SW_PLL) {} // Ожидание переключения на PLL
Где что не так?
А ещё у меня что то МК в ресет уходит раз в 200-300 мс. Это вижу по контрольному светодиоду на пине PF4. Может я его перегрел когда ставил? Маловероятно. Такого циклического сброса не происходило на первой макетке с STM32F030F4P6.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб дек 05, 2015 09:39:57
Chettuser
Мучаю HAL. В нём есть HAL_Delay(ms);
Keil почему то не воспринимает ms больше 300. ЧЯДНТ?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 06, 2015 14:23:16
Jeka_M
Chettuser писал(а):Keil почему то не воспринимает ms больше 300
Прям так и пишет: "Я не воспринимаю ms больше 300"?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 09, 2015 20:13:04
Chettuser
Разбираюсь с DMA.
Если я задействую DMA для работы, например с SPI, то я ведь не смогу задействовать его для работы например с внешней памятью? Только переконфигурировав?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 20, 2015 19:22:30
gessor
Есть два мелких вопроса по микроконтроллерам. Правильно понимаю, что если при написании программы на асме поставить директиву .ORG ,то программный счетчик будет все равно прощелкивать пустые ячейки?
И с какой целью обычно применяется внешняя RC цепочка? Чем может быть недостаточно внутреннего тактирования или нормального кварца?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 20, 2015 19:30:52
КРАМ
Директива ORG не имеет никакого отношения к исполнению кода. Это директива РАЗМЕЩЕНИЯ кода в программной памяти.
Исполнение зависит от КОМАНД контроллера.
"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит. Обычно внешняя RC-цепь служит целям СБРОСА.
Хотя и это в большинстве случаев совершенно не требуется. Контроллер содержит на борту и супервизор (BOR) и таймер сброса.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 20, 2015 19:52:58
gessor
Допустим, с помощью директивы мы разместили код в середине памяти. Значит ли это что МК до начала выполнения кода потратит часть времени на прощелкивание пустых ячеек?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 20, 2015 20:10:37
КРАМ
Пустых ячеек не бывает. По любому адресу есть какой то код, который интерпретируется контроллером как некая команда.
Если эта команда NOP, то счетчик команд действительно будет просто инкрементироваться. А если, например, первая команда будет переходом на адрес ORG, то программа ничего "прощелкивать" не будет.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 20, 2015 20:29:02
ARV
КРАМ писал(а):"Обычно" никто внешнюю RC-цепочку для целей тактирования не ставит.
помнится, у каких-то PIC-ов имелась возможность затактироваться от RC-генератора с внешней RC-цепочкой. не стану утверждать, что такая практика в настоящее время искоренилась всеми производителями МК.
так что обычно это или нет, зависит от контекста.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс дек 20, 2015 20:34:51
КРАМ
ARV писал(а):помнится, у каких-то
"Помнится" к случаю "обычно" никак отнести нельзя.
Из контекста вопроса следует лишь цепь сброса.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 21, 2015 11:07:09
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с.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 21, 2015 13:09:43
SEMuil
пока только одно на ум приходит, по умолчанию Тинька работает на другой частоте. (поэтому компилятор не правильно рассчитывает значение delay )
Фьюзы по умолчанию:

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 21, 2015 19:30:14
Chettuser
ARV писал(а):у каких-то PIC-ов имелась возможность затактироваться от RC-генератора с внешней RC-цепочкой.
У 16-й и 18-й серий. Про 24-ю и 33-ю ничего не скажу, я с PIC переехал раньше, чем добрался до этих серий.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 21, 2015 20:21:23
Upgrader
SEMuil писал(а):Как в теории рассчитать эту паузу?
Проверьте фьюзы и правильность выставленной частоты в настройках проекта cvavr. Если все верно, то и задержка будет правильно точно идти.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 21, 2015 20:41:59
SEMuil
Upgrader писал(а):SEMuil писал(а):Как в теории рассчитать эту паузу?
Проверьте фьюзы и правильность выставленной частоты в настройках проекта cvavr. Если все верно, то и задержка будет правильно точно идти.
Фьюзы я не трогаю, следовательно 1.2 МГц.
Поковырялся в настройках, нашёл это:

Про эти настройки вы говорите?
4.800 000 Это я поменял для теста. Завтра буду прошивать, тестировать. (стояло 1.200 000)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 21, 2015 21:56:31
Upgrader
SEMuil писал(а):Фьюзы я не трогаю, следовательно 1.2 МГц.
Нет, не следовательно.
Надо прочитать их и посмотреть

Это не сложно. Найдите любой калькулятор фьюзов, и сравните с ним то что у вас есть.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 22, 2015 05:52:19
SEMuil
Upgrader писал(а):SEMuil писал(а):Фьюзы я не трогаю, следовательно 1.2 МГц.
Нет, не следовательно.
Надо прочитать их и посмотреть

Это не сложно. Найдите любой калькулятор фьюзов, и сравните с ним то что у вас есть.
Пробежался на калькуляторе, значение фьюз выкладывал ранее:

кто поопытнее, скажите какая тут частота работы чипа?
мои мысли 9,6 + включён делитель на 8 = 1,2

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 22, 2015 06:50:57
akl
Судя по младшему байту конфигурации установлена частота 4,8МГц без делителя и максимальное время задержки включения.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 22, 2015 07:26:25
SEMuil
Опытным путём, только при установке в программе 9,6 МГц промежутки времени похожи на правду. мда ...
а ещё же частота зависит от напряжения питания, я правильно понимаю? (у меня будет работать на 5В, а тестирую я от компа там где то 4,5В в итоге будет одинаково?)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 22, 2015 07:34:21
АСУ
SEMuil писал(а):кто поопытнее, скажите какая тут частота работы чипа?
Судя по картинке, МК тактируется от внутреннего генератора 1,2 МГц, это заводская установка.