Кто любит RISC в жизни, заходим, не стесняемся.
Чт июл 13, 2017 14:50:51
Почему в референс мануале на F030xx в разделах, упоминающих RTC, не говорится о том, что кварц 32768 можно подключить только к чипам Cx и Rx исполнения, т.е при наличии не менее 48 ног?
Прошелся по описанию тактов, конкретно от LSE - молчание. В разделе собственно RTC аналогично. То же и в ДШ. При этом по другим моментам пишут в примечаниях, мол, такое-то не для таких-то девайсов. Только по табпице распиновки можно понять, что к TSSOP28 и LQFP32 часовой кварц ни-ни. Понятно, что можно взять щелчки от оставшихся трех источников, но не понятно, почему об этом явно не пишут. Или я что-то не понимаю?
Чт июл 13, 2017 17:06:23
Потому что в референсе присутствует только описание работы модулей МК, а наличие или отсутствие модулей, как и наличие или отсутствие пинов МК, описывает даташит.
Чт июл 13, 2017 18:40:40
что к TSSOP28 и LQFP32 часовой кварц ни-ни
вот в Меге8 мудро поступили - на ноги основного кварца можно повесить 32К, и работать от внутреннего...
Чт июл 13, 2017 18:54:23
ОК. Вот вырезка из RM0360:
Обратите внимание на название картинки. Оно включает в себя так же F030F4 и F030K6, 20- и 32-ногие чипы соответственно.
Внизу есть примечание об отсутствии НЧ генераторов только в F030х8 чипах. Все остальные должны иметь всё, изображенное на блок-схеме.
На деле же упомянутые мной выше кристаллы НЕ имеют выводы предназначенные под часовой кварц.
Потому я и спросил в чем причина этого: ошибка мануала или я не знаю каких-то особенностей.
zöner писал(а):вот в Меге8 мудро поступили...
В равнозначных ему PIC16F87xA чипах поступили еще мудрее: отдельные выводы для ВЧ кварца, отдельные для НЧ, но тема не о них.
Чт июл 13, 2017 19:55:50
Zhuk72 писал(а):Обратите внимание на название картинки. Оно включает в себя так же F030F4 и F030K6, 20- и 32-ногие чипы соответственно. Внизу есть примечание об отсутствии НЧ генераторов только в F030х8 чипах. Все остальные должны иметь всё, изображенное на блок-схеме.
Откройте даташит и посмотрите к каким выводам подключается часовой кварц (это PC14 и PC15). Они есть в F030F4?
Вероятнее всего во всех моделях перечисленных на картинке один и тот же кристалл, но выведено разное число выводов в зависимости от модели.
Чт июл 13, 2017 20:22:25
На картинке перечислены (сужу по свежему ST MCU Finder) F030F4, F030K6, F030C8 и F030R8. Согласно распиновке в этом же документе, первые два не имеют выводов под LSE, а согласно примечанию под картинкой последние два не имеют ни LSE, ни LSI. Так для чего надо было рисовать то, чего нет ни в одном из описываемых чипов?
Выходит, что единственным достоверным источником тактов для часов может быть только внешний кварц.
Чт июл 13, 2017 21:26:23
Внимательно смотрите в картинку, вы там явно не видите.
Чт июл 13, 2017 21:28:42
Не знаю что там подразумевают на картинке, но в F030C8 LSE есть.
Чт июл 13, 2017 22:02:54
Внимательно смотрите в картинку, вы там явно не видите.
Что именно не вижу?
Чт июл 13, 2017 22:31:31
Что сноска "1. LSI/LSE is not available on STM32F030x8 devices." относится только к МСО.
Пт июл 14, 2017 06:49:10
Ясно. Но в таком случае логично было бы и около OSC32 выводов поставить цифру 2 и в примечании указать not available on STM32F030x4 and STM32F030x6 devices.
Вт июл 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);
}
то ничего не работает, почему так ведь это же одно и тоже?
Ср июл 26, 2017 15:39:07
Разбираюсь с 401RE.
Наткнулся на непонятки в ситуации, когда моя инициализация вешала МК после смены системных тактов с внутреннего генератора 16 МГц на PLL с конечным выходом 80 МГц (84 допустимый максимум). Уже хотел писать сюда, но тут неожиданно (не искал даже) наткнулся на
статью уважаемого котоварища
YS, в которой говорится о флэше и частоте. Зашел в RM, увидел, победил. Светодиод исправно замигал.
Но теперь пришел черед второй непонятки, которая меня раздражала, раз уж с первой разобрался.
Итак в startup.s первой прописана SystemInit() в генерируемом системой файле тратата.с следующего содержания (после очистки от комментариев и условной компиляции)...
Пока писал, разобрался и со второй проблемой. Как оказалось, разрешение FPU должно идти в самом начале инициализации. Просто прописал ее мануальный асм вариант в startup.s и все заработало.
Вот так писал вопрос, а получился маленький ФАК.
Задержкой помигал, системным таймером тоже, теперь пойду мигать стандартным таймером, потом часами, ну а дальше как получится
Пт июл 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 - лог. анализатором надо посмотреть что происходит и сравнить с алгоритмом работы контроллера дисплея.
Вс июл 30, 2017 14:24:28
Всем привет.
Кто-нибудь может объяснить, почему на F401 такты у SPI такие неравномерные? И это при том, что работает только SPI раз в секунду и прерывание по системному таймеру каждую мс.
Работать-то это работает, но ранее смотрел SPI на F103, так там все было красиво, а тут как будто вручную ногу дергают.
Инициализация простейшая. Если интересно, то вот:
- Код:
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);
}
Пн июл 31, 2017 12:43:44
Сложно сказать... как вариант лог. анализатор, если он китайский клон, то на высоких частотах так может показывать - мой так точно.
Пн июл 31, 2017 15:18:45
Ну не знаю. Я не помню какую частоту я выдавал на F103, но где-то в районе мегагерца.
А здесь даже на 4 МГц такая рваная картинка.
Да и с чего клону так врать? ПЛМ же и у оригинала, и у китайца одинаковые, а входной буфер я менял.
Для пробы попробую проверить картинку на МСО. Там-то уж точно частота от работы периферии не зависит.
Вт авг 01, 2017 13:36:13
Zhuk72 писал(а):Ну не знаю.
Капитальная отмазка... А надо бы ...
Zhuk72 писал(а):А здесь даже на 4 МГц такая рваная картинка.
Здесь не 4МГц, Clock 12MHz , клон saleae выше 8ми корректно не покажет.
Можно попробовать выкинуть все каналы, оставив MOSI, CLK и CS или MOSI и CLK только...
Вт авг 01, 2017 15:49:49
Вообще там должно быть не больше 10, но по диаграмме этого не понять, потому что длительности импульсов разнятся по всему пакету.
В принципе меня это не особо волнует, ибо шина работает. Просто интересно было выяснить причину.
А в чем отличие клона от оригинала, если уж на то пошло? ПЛМ левый, сборка или еще что?
Вт авг 01, 2017 19:11:57
А в чем отличие клона от оригинала, если уж на то пошло? ПЛМ левый, сборка или еще что?
Да нет , отличий от первых версий оригинала насколько помнится нет. Просто у всех клоны .
Кстати, решил брать этот анализатор, так же уткнулся в ограничения...
https://ru.aliexpress.com/item/Kingst-L ... 396.0TSocH
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.