Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 14:50:51

Почему в референс мануале на F030xx в разделах, упоминающих RTC, не говорится о том, что кварц 32768 можно подключить только к чипам Cx и Rx исполнения, т.е при наличии не менее 48 ног?

Прошелся по описанию тактов, конкретно от LSE - молчание. В разделе собственно RTC аналогично. То же и в ДШ. При этом по другим моментам пишут в примечаниях, мол, такое-то не для таких-то девайсов. Только по табпице распиновки можно понять, что к TSSOP28 и LQFP32 часовой кварц ни-ни. Понятно, что можно взять щелчки от оставшихся трех источников, но не понятно, почему об этом явно не пишут. Или я что-то не понимаю?

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 17:06:23

Потому что в референсе присутствует только описание работы модулей МК, а наличие или отсутствие модулей, как и наличие или отсутствие пинов МК, описывает даташит.

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 18:40:40

что к TSSOP28 и LQFP32 часовой кварц ни-ни
вот в Меге8 мудро поступили - на ноги основного кварца можно повесить 32К, и работать от внутреннего...

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 18:54:23

ОК. Вот вырезка из RM0360:

Обратите внимание на название картинки. Оно включает в себя так же F030F4 и F030K6, 20- и 32-ногие чипы соответственно.
Внизу есть примечание об отсутствии НЧ генераторов только в F030х8 чипах. Все остальные должны иметь всё, изображенное на блок-схеме.
На деле же упомянутые мной выше кристаллы НЕ имеют выводы предназначенные под часовой кварц.

Потому я и спросил в чем причина этого: ошибка мануала или я не знаю каких-то особенностей.

zöner писал(а):вот в Меге8 мудро поступили...

В равнозначных ему PIC16F87xA чипах поступили еще мудрее: отдельные выводы для ВЧ кварца, отдельные для НЧ, но тема не о них.

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 19:55:50

Zhuk72 писал(а):Обратите внимание на название картинки. Оно включает в себя так же F030F4 и F030K6, 20- и 32-ногие чипы соответственно. Внизу есть примечание об отсутствии НЧ генераторов только в F030х8 чипах. Все остальные должны иметь всё, изображенное на блок-схеме.
Откройте даташит и посмотрите к каким выводам подключается часовой кварц (это PC14 и PC15). Они есть в F030F4?
Вероятнее всего во всех моделях перечисленных на картинке один и тот же кристалл, но выведено разное число выводов в зависимости от модели.

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 20:22:25

На картинке перечислены (сужу по свежему ST MCU Finder) F030F4, F030K6, F030C8 и F030R8. Согласно распиновке в этом же документе, первые два не имеют выводов под LSE, а согласно примечанию под картинкой последние два не имеют ни LSE, ни LSI. Так для чего надо было рисовать то, чего нет ни в одном из описываемых чипов?

Выходит, что единственным достоверным источником тактов для часов может быть только внешний кварц.

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 21:26:23

Внимательно смотрите в картинку, вы там явно не видите.

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 21:28:42

Не знаю что там подразумевают на картинке, но в F030C8 LSE есть.

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 22:02:54

Внимательно смотрите в картинку, вы там явно не видите.

Что именно не вижу?

Re: STM32 новичку в ARM что к чему

Чт июл 13, 2017 22:31:31

Что сноска "1. LSI/LSE is not available on STM32F030x8 devices." относится только к МСО.

Re: STM32 новичку в ARM что к чему

Пт июл 14, 2017 06:49:10

Ясно. Но в таком случае логично было бы и около OSC32 выводов поставить цифру 2 и в примечании указать not available on STM32F030x4 and STM32F030x6 devices.

Re: STM32 новичку в ARM что к чему

Вт июл 25, 2017 20:43:58

Добрый вечер! Вопрос по SPI? MCU STM32F103C8 дисплей ST7735s
беру функцию инициализации:
Код:
 /*******************************************************************************
Имя функции : lcd7735_ini
Описание    : Инициализация дисплея
Ввод        : Нет
Возврат     : Нет
*******************************************************************************/

void lcd7735_ini(void) {
  LCD_CS0;                // CS=0   
  LCD_RST0;               // RST=0

  HAL_Delay(10);     

  LCD_RST1;               // RST=1
  HAL_Delay(10);          //

   
  lcd7735_sendCmd(0x11);  // вывод из спящего режима

   HAL_Delay(120);         // задержка

  lcd7735_sendCmd (0x3A); // режим цвета:
  lcd7735_sendData(0x05); // 16 бит
   lcd7735_sendCmd (0x36); // направление вывода изображения:
   lcd7735_sendData(0x14); // порядок цветов RGB, 0х14 (0x1C)-снизу вверх, справа на лево
   lcd7735_sendCmd (0x29); // Включить дисплей
}
Если в коде инициализации вместо lcd7735_sendCmd(0x11); писать SPI1->DR = 0x11; то всё работает. Если изменить функцию
Код:
/*******************************************************************************
Имя функции : lcd7735_sendCmd
Описание    : Отправка команды
Ввод        : cmd - передаваемая команда
Возврат     : Нет
*******************************************************************************/

void lcd7735_sendCmd(unsigned char cmd) {
   LCD_DC0; // установим ноль на линии DC
//lcd7735_senddata(cmd);      
   SPI1->DR = cmd;
   while(SPI1->SR & SPI_SR_BSY);
}
то ничего не работает, почему так ведь это же одно и тоже?

Re: STM32 новичку в ARM что к чему

Ср июл 26, 2017 15:39:07

Разбираюсь с 401RE.
Наткнулся на непонятки в ситуации, когда моя инициализация вешала МК после смены системных тактов с внутреннего генератора 16 МГц на PLL с конечным выходом 80 МГц (84 допустимый максимум). Уже хотел писать сюда, но тут неожиданно (не искал даже) наткнулся на статью уважаемого котоварища YS, в которой говорится о флэше и частоте. Зашел в RM, увидел, победил. Светодиод исправно замигал.

Но теперь пришел черед второй непонятки, которая меня раздражала, раз уж с первой разобрался.
Итак в startup.s первой прописана SystemInit() в генерируемом системой файле тратата.с следующего содержания (после очистки от комментариев и условной компиляции)...

Пока писал, разобрался и со второй проблемой. Как оказалось, разрешение FPU должно идти в самом начале инициализации. Просто прописал ее мануальный асм вариант в startup.s и все заработало.

Вот так писал вопрос, а получился маленький ФАК.

Задержкой помигал, системным таймером тоже, теперь пойду мигать стандартным таймером, потом часами, ну а дальше как получится 8)

Re: STM32 новичку в ARM что к чему

Пт июл 28, 2017 17:56:05

Если в коде инициализации вместо lcd7735_sendCmd(0x11); писать SPI1->DR = 0x11; то всё работает. Если изменить функцию
Код:
/*******************************************************************************
Имя функции : lcd7735_sendCmd
Описание    : Отправка команды
Ввод        : cmd - передаваемая команда
Возврат     : Нет
*******************************************************************************/

void lcd7735_sendCmd(unsigned char cmd) {
   LCD_DC0; // установим ноль на линии DC
//lcd7735_senddata(cmd);      
   SPI1->DR = cmd;
   while(SPI1->SR & SPI_SR_BSY);
}
то ничего не работает, почему так ведь это же одно и тоже?

Разве одно и то же? Функция меняет линию DC, посылает байт команды в буфер SPI и ждет(!) пока он не уйдет. Не работать может по разным причинам, но, возможно, дело в линии DC - лог. анализатором надо посмотреть что происходит и сравнить с алгоритмом работы контроллера дисплея.

Re: STM32 новичку в ARM что к чему

Вс июл 30, 2017 14:24:28

Всем привет.
Кто-нибудь может объяснить, почему на F401 такты у SPI такие неравномерные? И это при том, что работает только SPI раз в секунду и прерывание по системному таймеру каждую мс.
Работать-то это работает, но ранее смотрел SPI на F103, так там все было красиво, а тут как будто вручную ногу дергают.
7219.zip
(1.57 KiB) Скачиваний: 248


Инициализация простейшая. Если интересно, то вот:
Код:
void spi2_init(void)
{
// APB1 = 40MHz
  RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;
  SPI2->CR1 = (SPI_CR1_BR_0 | SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR | SPI_CR1_DFF); // 40:4 MHz.
  SPI2->CR2 = SPI_CR2_TXEIE;
  NVIC_EnableIRQ(SPI2_IRQn);
}

Re: STM32 новичку в ARM что к чему

Пн июл 31, 2017 12:43:44

Сложно сказать... как вариант лог. анализатор, если он китайский клон, то на высоких частотах так может показывать - мой так точно.

Re: STM32 новичку в ARM что к чему

Пн июл 31, 2017 15:18:45

Ну не знаю. Я не помню какую частоту я выдавал на F103, но где-то в районе мегагерца.
А здесь даже на 4 МГц такая рваная картинка.
Да и с чего клону так врать? ПЛМ же и у оригинала, и у китайца одинаковые, а входной буфер я менял.

Для пробы попробую проверить картинку на МСО. Там-то уж точно частота от работы периферии не зависит.

Re: STM32 новичку в ARM что к чему

Вт авг 01, 2017 13:36:13

Zhuk72 писал(а):Ну не знаю.

Капитальная отмазка... А надо бы ... :)))


Zhuk72 писал(а):А здесь даже на 4 МГц такая рваная картинка.


Здесь не 4МГц, Clock 12MHz , клон saleae выше 8ми корректно не покажет.
Можно попробовать выкинуть все каналы, оставив MOSI, CLK и CS или MOSI и CLK только...


Изображение

Re: STM32 новичку в ARM что к чему

Вт авг 01, 2017 15:49:49

Вообще там должно быть не больше 10, но по диаграмме этого не понять, потому что длительности импульсов разнятся по всему пакету.
В принципе меня это не особо волнует, ибо шина работает. Просто интересно было выяснить причину.

А в чем отличие клона от оригинала, если уж на то пошло? ПЛМ левый, сборка или еще что?

Re: STM32 новичку в ARM что к чему

Вт авг 01, 2017 19:11:57

А в чем отличие клона от оригинала, если уж на то пошло? ПЛМ левый, сборка или еще что?


Да нет , отличий от первых версий оригинала насколько помнится нет. Просто у всех клоны . :)))

Кстати, решил брать этот анализатор, так же уткнулся в ограничения... https://ru.aliexpress.com/item/Kingst-L ... 396.0TSocH
Ответить