Важная информация

User Tag List

Страница 6 из 28 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 280

Тема: Микроконтроллеры STM32, "с нуля".

  1. #51
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Говорю же :
    Эта функция дублирует действия что делает SystemInit.

    Вот самое начало в стартапе - вектор сброса :
    Код:
    ; Reset handler routine
    Reset_Handler    PROC
                     EXPORT  Reset_Handler                 [WEAK]
            IMPORT  __main
            IMPORT  SystemInit  
                     LDR     R0, =SystemInit
                     BLX     R0
                     LDR     R0, =__main
                     BX      R0
                     ENDP
    Что бы не мешалось заремарь :
    Код:
     
                    ; LDR     R0, =SystemInit
                    ;BLX     R0




    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Мне вот это нифига не понятно, зачем?
    FLASH->ACR |= FLASH_ACR_ACC64; /* Enable 64-bit access */
    FLASH->ACR |= FLASH_ACR_PRFTEN; /* Enable Prefetch Buffer */
    FLASH->ACR |= FLASH_ACR_LATENCY; /* Flash 1 wait state
    Устанавливает латентность флэша , для тактовой 48МГц...

    Тьфу ты , у тебя тактовая другая . Но смысл тот же...

    ---------- Post added at 12:09 ---------- Previous post was at 11:43 ----------

    Ewgeny7, Выкачай сие STSW-STM32002 http://www.st.com/web/en/catalog/too...S1533/PF257838

    Там exel'вский скрипт для настройки тактовой . Визуальная облегчалка.
    Поможет осознать - что, как,к чему . На первых порах более чем достаточно.
    Генерит system_stm32xxx.c - заменяешь то что в проекте .
    Естественно вызов той функции ремарить :
    Код:
     //SystemCoreClockSetHSI();
    Последний раз редактировалось dosikus; 28.04.2014 в 12:13.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  2. #52
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    dosikus, объясни простую вещь, пожалуйста...
    Стартап - понятно, выполняется при запуске камня и конфигурирует генераторы-делители-переключатели. Т.е. ставит всё по некоему дефолту.
    Но после его выполнения, можно же конфигурить тактовые уже из программы, в частности - указанной функцией? На СТМ8 ведь именно так и делается, дефолтный стартап с HSI, включен делитель на 8, сисклок равен 2МГц, но в начале СВОЕЙ программы я могу запустить HSE и выставить делители как мне кажется необходимым. Здесь не так же?

    ---------- Post added at 12:20 ---------- Previous post was at 12:20 ----------

    Экселину скачал, спасибо! Занятная вещь
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  3. #53
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ewgeny7, Да все так же .
    Только кроме выбора источника тактовой есть еще и системные делители внутренних шин-мостов , PLL и т.д.
    Тебе счас обязательно внешний кварц нужен?

    Да и стратап в STM32 это только векторы сброса, прерываний, трапов. Настройка кучи и стека .
    Те функции что ты говоришь - настройка тактовой , прерогатива system_stm32xxx.c

    Вот полюбуйся на систему тактирования, насколько все гибче :

    Последний раз редактировалось dosikus; 28.04.2014 в 12:40.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  4. #54
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dosikus Посмотреть сообщение
    Тебе счас обязательно внешний кварц нужен?
    Нет, не обязательно. Да он по сути и не нужен вообще. Так, образования ради.
    Ладно, обойдемся без него.
    Такие вопросы - клок на само ядро - это SYSCLK?
    А что такое HCLK? Это уже частота для расползания по GPIO и прочим таймерам/периферии?
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  5. #55
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нет , посмотри на стр. 90 Ref.man
    HCLK это ядро, AHB, DMA, память

    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  6. #56
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну, вроде как разобрался с тактированием.
    По дефолту МК стартует с MSI-генератором, 2МГц.
    Этот режим включен в дефолтном system_stm32l1xx.c
    Это не всегда есть гуд, и мы можем переключиться на высокую частоту, пересобрав этот файлик под свои нужды, или применив команды настройки тактирования.
    Я поигрался с параметрами, запускал разные источники клока, менял коэффициенты делителей, менял делитель системного таймера...
    Собственно, мы запускаем нужный генератор, к примеру HSI (16Мгц)
    RCC->CR |= ((uint32_t)RCC_CR_HSION);
    Ждем, пока он стабилизуется -
    while ((RCC->CR & RCC_CR_HSIRDY) == 0);
    Подаем повышенное напряжение (1.8В) на цепи тактирования, дабы работала бОльшая частота -
    PWR->CR = PWR_CR_VOS_0;
    Ждем, пока оно устаканится -
    while((PWR->CSR & PWR_CSR_VOSF) != 0);
    Устанавливаем AHB-делитель в режим "не делить частоту", т.е. делитель равен 1 -
    RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
    Устанавливаем делители на периферию с нужными коэффициентами, или вообще 1 -
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1;
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
    Сообщаем системе, что "Хачу HSI! Дай, да?" -
    RCC->CFGR = (RCC->CFGR & ~RCC_CFGR_SW) | RCC_CFGR_SW_HSI;
    Ну и ждем, пока электронная буря от переключения успокоится... -
    while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI);
    Система к работе готова...
    Да, еще не мешало бы выставить системный таймер, вдруг пригодится -
    SysTick_Config(16000);
    Здесь 16000 - сколько тиков клока считать до отработки таймера. Поскольку мы только что установили системную частоту в 16000000 герц, то после установки таймера он будет срабатывать каждую миллисекунду. Подсчитывая эти "тики", легко строится функция задержки Delay, столь любимая упоротыми фанатами CodeVisionAVR
    Код:
    void SysTick_Handler(void) {    //хендлер, "ловящий" тики системного таймера
      msTicks++;
    }
    
    void Delay (uint32_t dlyTicks) {                                              
      uint32_t curTicks;
    
      curTicks = msTicks;
      while ((msTicks - curTicks) < dlyTicks);   // собственно, ждем dlyTicks тиков таймера
    }
    Воть, что я вынес из этой темы.
    Если есть неправильности - с благодарностью приму затрещины от гуру
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  7. #57
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Если есть неправильности - с благодарностью приму затрещины от гуру
    Если ты имеешь в виду меня - то сам ты гуру .
    Я так же учусь/постигаю , и без меня гур хватает.

    А по делу - настройка тактирования весьма гибкая и тактирование во время работы можно менять и менять как нужно.
    И для уменьшения жручести и наоборот для скорострельности .
    Последний раз редактировалось dosikus; 28.04.2014 в 14:17.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  8. #58
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dosikus Посмотреть сообщение
    Если ты имеешь в виду меня
    Как бы да...
    Ладно, сойдемся на тосте за прекрасных гурий
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  9. #59
    Veteran Аватар для dosikus
    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ewgeny7, Есть Стас, nahimovv , жаль что наши его забанили в хохлосраче
    http://kazus.ru/forums/showthread.php?t=107109
    Вот он точно ходячая энциклопедия и щелкает как семечки любые чипы .
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  10. #60
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dosikus Посмотреть сообщение
    И для уменьшения жручести и наоборот для скорострельности .
    Я так и понял из всей этой байды.
    Можно варировать частоту, источник, питающее напряжение всего этого колхоза.
    Попутно сейчас разобрался, для чего Flash Latency.
    Оно включается, если системная частота предполагается выше 16Мгц, иначе флеша пошлет нафиг.
    Включив эту "латентность", можно "раскачать" ядро и периферию на 32МГц, использовав даже внутренний HSI и PLL.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

Страница 6 из 28 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. Ответов: 19
    Последнее: 30.09.2011, 03:08
  3. Ответов: 0
    Последнее: 15.08.2010, 14:38
  4. Ответов: 18
    Последнее: 27.08.2008, 20:27
  5. Ответов: 6
    Последнее: 20.11.2007, 11:29

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •