Страница 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 :dont_know:

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 МГц, это заводская установка.