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

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

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

Сообщение Zhuk72 »

[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 пока хватает для эпизодических поисков при затыках.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Ничего дешевле, с нужным параметрами, не наблюдаю.
Дорого, а что делать. Недавно обновил осцилл - продал рЫгол 1052, добавил и приобрел 1054...
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

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

Сообщение pokk »

Подскажите, можно ли подключить два процессора STM32 другом с другом по FSMC, т.е что бы один был как бы ведомый?
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

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

Сообщение scorpi_0n »

На СТМ можно всё что не запрещено. А не жирно по пинам будет?
Аватара пользователя
ozzy
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вс янв 18, 2009 20:15:27
Откуда: UA ZT

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

Сообщение ozzy »

[uquote="dosikus",url="/forum/viewtopic.php?p=3155062#p3155062"]Ничего дешевле, с нужным параметрами, не наблюдаю.[/uquote]


а такой https://ru.aliexpress.com/item/Kingst-L ... 46572.html
Аватара пользователя
RusikOk
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев
Контактная информация:

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

Сообщение RusikOk »

нигде не нашел описание максимальной частоты генерации сигнала встроенным в F103 ЦАП-ом. и еще такой вопрос можно ли на нем построить модуль развертки для аналогового осциллографа?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

[uquote="ozzy",url="/forum/viewtopic.php?p=3163418#p3163418"]а такой[/uquote]

Фраза
с нужным параметрами
, вам ни о чем не говорит?
pinchemierda
Встал на лапы
Сообщения: 130
Зарегистрирован: Ср мар 22, 2017 09:52:52

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

Сообщение pinchemierda »

Уважаемые знатоки 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.txt
(5.01 КБ) 280 скачиваний
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

[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 иначе если писать по одному адресу несколько раз подряд компилятор может оставить только последнюю запись.

Код: Выделить всё

#define LCD_DAT ((volatile uint16_t*)0x60000040)
#define LCD_CMD  ((volatile uint16_t*)0x60000000)
3. Правильно ли выбрал банк?
fsmc.FSMC_Bank = FSMC_Bank1_NORSRAM4;
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);
У FSMC выведено 26 линий адреса которые позволяют адресовать 64MB, но в банке 256MB, потому можно прицепить 4 микросхемы памяти и тогда роль физически отсутствующих A27:A26 будут выполнять четыре сигнала NE. Когда ты включаешь FSMC_Bank1_NORSRAM4 то чтобы на NE4 увидеть не только единицу по идее нужно писать по адресу в котором A27:A26 сами оба в единице(0x6С000000). Это в теории, я лично всегда выбирал только NORSRAM1...
pinchemierda
Встал на лапы
Сообщения: 130
Зарегистрирован: Ср мар 22, 2017 09:52:52

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

Сообщение pinchemierda »

Вряд ли стоит писать 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 и всё работает!
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

[uquote="pinchemierda",url="/forum/viewtopic.php?p=3165876#p3165876"]Вряд ли стоит писать 0x60000040 вместо 0x60000080, напомню у меня RS подключен к A6. Там же вроде надо сдвигать влево на один бит?[/uquote]
Точно, только сдвигать нужно не всегда, просто я последний раз цеплял экран с 8-ми битной шиной, там никаких сдвигов нет.
pinchemierda
Встал на лапы
Сообщения: 130
Зарегистрирован: Ср мар 22, 2017 09:52:52

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

Сообщение pinchemierda »

Да, забыл указать, 16 бит подключение
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

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

Сообщение Frogfot »

Народ, я в STM32 "0", подскажите готвые проекты под STM32F103C8T6 под Keil - https://arduino-ua.com/prod1328-plata-r ... igyraciya- чтобы можно было запустить, прошить, и заработало, а потом разобраться, как оно работает.

Также подскажите, как подключить к платке ST-Link - https://arduino-ua.com/prod920-programm ... tlink-mini - чтобы я не напутал.
Хорошему коту и в декабре - март :)
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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.
pinchemierda
Встал на лапы
Сообщения: 130
Зарегистрирован: Ср мар 22, 2017 09:52:52

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

Сообщение pinchemierda »

А не подскажите как запустить передачу из памяти в память через DMA. Например, есть два глобально определённых буфера по 100 байт и надо из одного в другой скопировать. А то везде примеры, как из памяти в периферию и наоборот.

Код: Выделить всё

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);
}
Пытаюсь инициировать передачу строкой DMA_Cmd(DMA1_Stream0, ENABLE);
Но в прерывание так и не попадаю, приёмный буфер, также, остаётся пустым.
Спасибо!

Добавлено after 7 minutes 40 seconds:
И ещё бы научится через DMA c gpio и с fsmc работать. Я правильно понимаю, что с точки зрения контроллера DMA это не периферия и настраивать в этих случаях его надо для обмена DMA_DIR_MemoryToMemory?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

pinchemierda, RM начать читать не судьба?
Для начала камень озвучить не мешало бы...
pinchemierda
Встал на лапы
Сообщения: 130
Зарегистрирован: Ср мар 22, 2017 09:52:52

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

Сообщение pinchemierda »

RM читаю, не эффективно в моём случае))
С микроконтроллерами год знаком. Подобного рода литература (RM), да и вообще, технический английский для меня новьё.
Без помощи, без примеров, опираясь только на RM, согласитесь, начинающему осваивать stm32 не просто.
(пример не нашёл, плохо искал может, каюсь)
До этого во всём сам разбирался. Сюда пишу уж в крайних случаях.

Камень stm32f407zet6
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

Код: Выделить всё

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE);
F4 в режиме M2M работает только с DMA2.
И ещё бы научится через DMA c gpio и с fsmc работать. Я правильно понимаю, что с точки зрения контроллера DMA это не периферия и настраивать в этих случаях его надо для обмена DMA_DIR_MemoryToMemory?
Если выводишь из памяти в GPIO или FSMC просто на максимальной скорости, то да, будет M2M, но если делать то же самое, но уже по таймеру, то нужен MemToPeriph.
pinchemierda
Встал на лапы
Сообщения: 130
Зарегистрирован: Ср мар 22, 2017 09:52:52

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

Сообщение pinchemierda »

Reflector, как всегда огромное спасибо тебе! Не в первый раз выручаешь))) Заработало

Добавлено after 1 minute 59 seconds:
F4 в режиме M2M работает только с DMA2.
Как уж я так просмотрел то, блин...
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

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

Сообщение baghear »

Добрый день, подскажите пожалуйста в чем принципиальное отличие external clock mode 1 от external clock mode 2 кроме того, что при использовании ETR можно включить предделитель.
Ответить

Вернуться в «ARM»