STM32 новичку в ARM что к чему
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: STM32 новичку в ARM что к чему
[uquote="dosikus",url="/forum/viewtopic.php?p=3155013#p3155013"]Кстати, решил брать этот анализатор, так же уткнулся в ограничения... https://ru.aliexpress.com/item/Kingst-L ... 396.0TSocH[/uquote]
This is out of my budget, как говорится. Загнули цену, однако, последователи товарища Мао.
Мне и chaineae пока хватает для эпизодических поисков при затыках.
This is out of my budget, как говорится. Загнули цену, однако, последователи товарища Мао.
Мне и chaineae пока хватает для эпизодических поисков при затыках.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Re: STM32 новичку в ARM что к чему
Ничего дешевле, с нужным параметрами, не наблюдаю.
Дорого, а что делать. Недавно обновил осцилл - продал рЫгол 1052, добавил и приобрел 1054...
Дорого, а что делать. Недавно обновил осцилл - продал рЫгол 1052, добавил и приобрел 1054...
Re: STM32 новичку в ARM что к чему
Подскажите, можно ли подключить два процессора STM32 другом с другом по FSMC, т.е что бы один был как бы ведомый?
Re: STM32 новичку в ARM что к чему
На СТМ можно всё что не запрещено. А не жирно по пинам будет?
Re: STM32 новичку в ARM что к чему
[uquote="dosikus",url="/forum/viewtopic.php?p=3155062#p3155062"]Ничего дешевле, с нужным параметрами, не наблюдаю.[/uquote]
а такой https://ru.aliexpress.com/item/Kingst-L ... 46572.html
а такой https://ru.aliexpress.com/item/Kingst-L ... 46572.html
- RusikOk
- Нашел транзистор. Понюхал.
- Сообщения: 197
- Зарегистрирован: Пн янв 24, 2011 01:51:48
- Откуда: Украина, Киев
- Контактная информация:
Re: STM32 новичку в ARM что к чему
нигде не нашел описание максимальной частоты генерации сигнала встроенным в F103 ЦАП-ом. и еще такой вопрос можно ли на нем построить модуль развертки для аналогового осциллографа?
Re: STM32 новичку в ARM что к чему
[uquote="ozzy",url="/forum/viewtopic.php?p=3163418#p3163418"]а такой[/uquote]
Фраза
Фраза
, вам ни о чем не говорит?с нужным параметрами
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: STM32 новичку в ARM что к чему
Уважаемые знатоки ARM! Помогите пожалуйста решить проблему с запуском LCD дисплея по FSMC.
Проблема заключается в настройке FSMC на stm32f407zet6.
Вывод CS дисплея подключен к NE4(PG12), вывод RS к A6(PF12).
Проблема именно в FSMC, потому что ногодрыгом дисплей запустился.
Прощупывая управляющие пины осциллографом определил, что причина в сигнале CS (точнее в его отсутствии). При настройке ноги CS(PG12) на альтернативную функцию при отправке данных на этой линии никаких фронтов, на линии постоянно логическая 1.
Все остальные же сигналы работают как надо. При отключении вывода CS от шины FSMC и подключении его к GND дисплей оживает.
Основные вопросы:
1. Правильно ли я определил адреса для данных и команд?
//LCD RS подключен к A6
#define LCD_DAT *(uint16_t*)0x60000080
#define LCD_CMD *(uint16_t*)0x60000000
2. Почему при записи по этим адресам на линии PG12 отсутствуют управляющие импульсы (постоянно лог. 1)?
3. Правильно ли выбрал банк?
fsmc.FSMC_Bank = FSMC_Bank1_NORSRAM4;
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);
Проблема заключается в настройке FSMC на stm32f407zet6.
Вывод CS дисплея подключен к NE4(PG12), вывод RS к A6(PF12).
Проблема именно в FSMC, потому что ногодрыгом дисплей запустился.
Прощупывая управляющие пины осциллографом определил, что причина в сигнале CS (точнее в его отсутствии). При настройке ноги CS(PG12) на альтернативную функцию при отправке данных на этой линии никаких фронтов, на линии постоянно логическая 1.
Все остальные же сигналы работают как надо. При отключении вывода CS от шины FSMC и подключении его к GND дисплей оживает.
Основные вопросы:
1. Правильно ли я определил адреса для данных и команд?
//LCD RS подключен к A6
#define LCD_DAT *(uint16_t*)0x60000080
#define LCD_CMD *(uint16_t*)0x60000000
2. Почему при записи по этим адресам на линии PG12 отсутствуют управляющие импульсы (постоянно лог. 1)?
3. Правильно ли выбрал банк?
fsmc.FSMC_Bank = FSMC_Bank1_NORSRAM4;
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);
- Вложения
-
- FSMC.txt
- (5.01 КБ) 280 скачиваний
Re: STM32 новичку в ARM что к чему
[uquote="pinchemierda",url="/forum/viewtopic.php?p=3165855#p3165855"]1. Правильно ли я определил адреса для данных и команд?
//LCD RS подключен к A6
#define LCD_DAT *(uint16_t*)0x60000080
#define LCD_CMD *(uint16_t*)0x60000000[/uquote]
Нет, конечно. И лучше добавить volatile иначе если писать по одному адресу несколько раз подряд компилятор может оставить только последнюю запись.
//LCD RS подключен к A6
#define LCD_DAT *(uint16_t*)0x60000080
#define LCD_CMD *(uint16_t*)0x60000000[/uquote]
Нет, конечно. И лучше добавить volatile иначе если писать по одному адресу несколько раз подряд компилятор может оставить только последнюю запись.
Код: Выделить всё
#define LCD_DAT ((volatile uint16_t*)0x60000040)
#define LCD_CMD ((volatile uint16_t*)0x60000000)
У FSMC выведено 26 линий адреса которые позволяют адресовать 64MB, но в банке 256MB, потому можно прицепить 4 микросхемы памяти и тогда роль физически отсутствующих A27:A26 будут выполнять четыре сигнала NE. Когда ты включаешь FSMC_Bank1_NORSRAM4 то чтобы на NE4 увидеть не только единицу по идее нужно писать по адресу в котором A27:A26 сами оба в единице(0x6С000000). Это в теории, я лично всегда выбирал только NORSRAM1...3. Правильно ли выбрал банк?
fsmc.FSMC_Bank = FSMC_Bank1_NORSRAM4;
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: STM32 новичку в ARM что к чему
Вряд ли стоит писать 0x60000040 вместо 0x60000080, напомню у меня RS подключен к A6. Там же вроде надо сдвигать влево на один бит?
По крайней мере претензий к сигналу на ноге RS никаких нет, осцилом также прощупывал. Когда команда 0, а когда данные 1.
C volatile тоже самое.
А вот на счёт выбора банка не очень понятно. Возможности подключить к NE1 нет
, железно висит на NE4.
Демоплата https://ru.aliexpress.com/item/STM32F40 ... st=ae803_3
Добавлено after 15 minutes 58 seconds:
Reflector, огромное спасибо!
По твоему совету пишу по адресам 0x6C000080 и 0x6C000000 и всё работает!
По крайней мере претензий к сигналу на ноге RS никаких нет, осцилом также прощупывал. Когда команда 0, а когда данные 1.
C volatile тоже самое.
А вот на счёт выбора банка не очень понятно. Возможности подключить к NE1 нет
Демоплата https://ru.aliexpress.com/item/STM32F40 ... st=ae803_3
Добавлено after 15 minutes 58 seconds:
Reflector, огромное спасибо!
По твоему совету пишу по адресам 0x6C000080 и 0x6C000000 и всё работает!
Re: STM32 новичку в ARM что к чему
[uquote="pinchemierda",url="/forum/viewtopic.php?p=3165876#p3165876"]Вряд ли стоит писать 0x60000040 вместо 0x60000080, напомню у меня RS подключен к A6. Там же вроде надо сдвигать влево на один бит?[/uquote]
Точно, только сдвигать нужно не всегда, просто я последний раз цеплял экран с 8-ми битной шиной, там никаких сдвигов нет.
Точно, только сдвигать нужно не всегда, просто я последний раз цеплял экран с 8-ми битной шиной, там никаких сдвигов нет.
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: STM32 новичку в ARM что к чему
Да, забыл указать, 16 бит подключение
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: STM32 новичку в ARM что к чему
Народ, я в STM32 "0", подскажите готвые проекты под STM32F103C8T6 под Keil - https://arduino-ua.com/prod1328-plata-r ... igyraciya- чтобы можно было запустить, прошить, и заработало, а потом разобраться, как оно работает.
Также подскажите, как подключить к платке ST-Link - https://arduino-ua.com/prod920-programm ... tlink-mini - чтобы я не напутал.
Также подскажите, как подключить к платке ST-Link - https://arduino-ua.com/prod920-programm ... tlink-mini - чтобы я не напутал.
Хорошему коту и в декабре - март 
Re: STM32 новичку в ARM что к чему
Для начала смотрите http://purebasic.mybb.ru/viewtopic.php?id=575
Готовые проекты
http://purebasic.mybb.ru/viewforum.php?id=6
http://www.avislab.com/blog/stm32-list_ru/
Выводы SWDIO, GND, SWCLK, 3.3 ST-Link нужно подключить к DIO, GND, DCLK, 3.3.
Готовые проекты
http://purebasic.mybb.ru/viewforum.php?id=6
http://www.avislab.com/blog/stm32-list_ru/
Выводы SWDIO, GND, SWCLK, 3.3 ST-Link нужно подключить к DIO, GND, DCLK, 3.3.
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: STM32 новичку в ARM что к чему
А не подскажите как запустить передачу из памяти в память через DMA. Например, есть два глобально определённых буфера по 100 байт и надо из одного в другой скопировать. А то везде примеры, как из памяти в периферию и наоборот.
Пытаюсь инициировать передачу строкой DMA_Cmd(DMA1_Stream0, ENABLE);
Но в прерывание так и не попадаю, приёмный буфер, также, остаётся пустым.
Спасибо!
Добавлено after 7 minutes 40 seconds:
И ещё бы научится через DMA c gpio и с fsmc работать. Я правильно понимаю, что с точки зрения контроллера DMA это не периферия и настраивать в этих случаях его надо для обмена DMA_DIR_MemoryToMemory?
Код: Выделить всё
uint8_t in[100];
uint8_t out[100] = "qwertyuiop1234567890";
void DMA_ini(void)
{
DMA_InitTypeDef dma;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE);
dma.DMA_Channel = DMA_Channel_0;
dma.DMA_PeripheralBaseAddr = (uint32_t)out;
dma.DMA_Memory0BaseAddr = (uint32_t)in;
dma.DMA_DIR = DMA_DIR_MemoryToMemory;
dma.DMA_BufferSize = 100;
dma.DMA_PeripheralInc = DMA_PeripheralInc_Enable;
dma.DMA_MemoryInc = DMA_MemoryInc_Enable;
dma.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
dma.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
dma.DMA_Mode = DMA_Mode_Normal;
dma.DMA_Priority = DMA_Priority_VeryHigh;
dma.DMA_FIFOMode = DMA_FIFOMode_Disable;
dma.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
dma.DMA_MemoryBurst = DMA_MemoryBurst_Single;
dma.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
DMA_Init(DMA1_Stream0, &dma);
DMA_ITConfig(DMA1_Stream0, DMA_IT_TC, ENABLE);
NVIC_EnableIRQ(DMA1_Stream0_IRQn);
}Но в прерывание так и не попадаю, приёмный буфер, также, остаётся пустым.
Спасибо!
Добавлено after 7 minutes 40 seconds:
И ещё бы научится через DMA c gpio и с fsmc работать. Я правильно понимаю, что с точки зрения контроллера DMA это не периферия и настраивать в этих случаях его надо для обмена DMA_DIR_MemoryToMemory?
Re: STM32 новичку в ARM что к чему
pinchemierda, RM начать читать не судьба?
Для начала камень озвучить не мешало бы...
Для начала камень озвучить не мешало бы...
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: STM32 новичку в ARM что к чему
RM читаю, не эффективно в моём случае))
С микроконтроллерами год знаком. Подобного рода литература (RM), да и вообще, технический английский для меня новьё.
Без помощи, без примеров, опираясь только на RM, согласитесь, начинающему осваивать stm32 не просто.
(пример не нашёл, плохо искал может, каюсь)
До этого во всём сам разбирался. Сюда пишу уж в крайних случаях.
Камень stm32f407zet6
С микроконтроллерами год знаком. Подобного рода литература (RM), да и вообще, технический английский для меня новьё.
Без помощи, без примеров, опираясь только на RM, согласитесь, начинающему осваивать stm32 не просто.
(пример не нашёл, плохо искал может, каюсь)
До этого во всём сам разбирался. Сюда пишу уж в крайних случаях.
Камень stm32f407zet6
Re: STM32 новичку в ARM что к чему
Код: Выделить всё
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE);Если выводишь из памяти в GPIO или FSMC просто на максимальной скорости, то да, будет M2M, но если делать то же самое, но уже по таймеру, то нужен MemToPeriph.И ещё бы научится через DMA c gpio и с fsmc работать. Я правильно понимаю, что с точки зрения контроллера DMA это не периферия и настраивать в этих случаях его надо для обмена DMA_DIR_MemoryToMemory?
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: STM32 новичку в ARM что к чему
Reflector, как всегда огромное спасибо тебе! Не в первый раз выручаешь))) Заработало
Добавлено after 1 minute 59 seconds:
Добавлено after 1 minute 59 seconds:
Как уж я так просмотрел то, блин...F4 в режиме M2M работает только с DMA2.
Re: STM32 новичку в ARM что к чему
Добрый день, подскажите пожалуйста в чем принципиальное отличие external clock mode 1 от external clock mode 2 кроме того, что при использовании ETR можно включить предделитель.