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

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

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

Сообщение dosikus »

Darth Cuauhtemoc У 10x проверяй RXNE .
Реклама
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

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

Сообщение HHIMERA »

Да не нужен там RXNE...
TXE и BSY вполне достаточно...
Да и насчёт SS... не уверен, что им там вообще дёргать надо...
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

HHIMERA писал(а): Да и насчёт SS... не уверен, что им там вообще дёргать надо...
Вот и я про то, если хочет дергать CS каждый байт - тогда RXNE .
Хотя этим дисплеем и на это дерганье не нужно.
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

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

Сообщение Darth Cuauhtemoc »

А получится ли сделать хардварный NSS, чтобы мастер управлял NSS, таким образом?

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

...
GPIO_InitStructure.GPIO_Pin = SPI_LCD_PIN_SCK | SPI_LCD_PIN_MOSI | SPI_LCD_PIN_NSS;
...
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
...
SPI_InitStructure.SPI_NSS = SPI_NSS_Hard;
...
SPI_Init(SPI_LCD, &SPI_InitStructure);
SPI_Cmd(SPI_LCD, ENABLE);
...
SPI_SSOutputCmd(SPI_LCD, ENABLE);
Просто сейчас контроллера нет под рукой, чтобы сразу проверить.
dosikus писал(а):
HHIMERA писал(а): Да и насчёт SS... не уверен, что им там вообще дёргать надо...
Хотя этим дисплеем и на это дерганье не нужно.
Конечно, для этого случая можно и не дергать, это я так уж :)
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

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

void Lcd_putc( char c)
{
 
	uint8_t line, n;
  c-= 32;
  if( c == 0 )
    n = 3;
  else
    n = 5;
	Lcd_Write(DATA,0);
	for (line=0; line<n; line++){

		
	 while(!(SPI1->SR & SPI_SR_TXE)); 
  SPI1->DR =((uint16_t)font5x8[c][line])|0x100UL;	
		
  }
	while(SPI1->SR & SPI_SR_BSY); 
}

Вот вывод символа на nokia 1200 . На F0 .
Если сделаешь хардварный CS - он у тебя и будет хлопать каждую посылку . Оно надо?
Прижимать CS только когда работаешь с дисплеем - и то если на SPI еще что то сидит.
А если дисплей один , то СS на GND ...

Ну и скрин , правда здесь 9бит фрейм. CS дергаю для наглядности...
СпойлерИзображение

ЗЫ смотри - здесь полное цитирование предыдущего сообщения карается смертью.
Модераторы сильно радеют за объем страниц.
Блин , ну вот уже тыщу лет не актуально . Пора бы вытереть сей пункт на ...
Последний раз редактировалось dosikus Вт сен 17, 2013 11:28:05, всего редактировалось 2 раза.
Реклама
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

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

Сообщение HHIMERA »

Darth Cuauhtemoc писал(а):А получится ли сделать хардварный NSS
Хардварный NSS только у STM32F0XX и STM32F3XX...
Можно сделать на таймере... но оно нужно???
Да и вообще... дёргать CS имеет смысл только в случаях...
а) изменеие режимов и конфигурации по ходу пьесы... да и то не всегда...
в) ремап... да и то не всегда...
с) если это оговорено даташитом устройства и по другому никак...
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

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

Сообщение HHIMERA »

dosikus писал(а): 9бит фрейм
STM32F100 ... 18 bit... :))
STM32F100_18bit.png
(54.76 КБ) 563 скачивания
"Я не даю готовых решений, я заставляю думать!"(С)
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

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

Сообщение Darth Cuauhtemoc »

Дисплейчик работает :beer: кстати, у меня в инициализации SPI была ошибка - для Nokia 3310 надо задавать

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

SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
а у меня было SPI_CPOL_High.

Но после исправления все еще не работал; оказалось, была еще ошибка в одном бите в последовательности инициализации, но это к SPI уже отношения не имеет. Как исправил, заработало.

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

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

Сообщение dosikus »

Darth Cuauhtemoc писал(а):.

CS дисплея просто заземлил.
Прикинь у меня еще и RESET на VDD навешан и 9 бит SPI ... :)))

И весь инит SPI, супротив простыней SPL :

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

 void SPI1_init(void)
	{
	RCC->AHBENR |=RCC_AHBENR_GPIOAEN;
		RCC->APB2ENR |=RCC_APB2ENR_SPI1EN;
		GPIOA->MODER &=~

		            GPIO_MODER_MODER5 |
                GPIO_MODER_MODER7 
		                             ;
		GPIOA->MODER|= 

		        GPIO_MODER_MODER5_1|
		        GPIO_MODER_MODER7_1
		                           ;            		
		
		GPIOA->OSPEEDR|=
		         GPIO_OSPEEDER_OSPEEDR5|
		         GPIO_OSPEEDER_OSPEEDR7
		                               ;
	
		
	SPI1->CR1 |= 
	         SPI_CR1_BR_0 |     // 
           SPI_CR1_MSTR |
           SPI_CR1_SSI 	|				 
					 SPI_CR1_SSM              
					          ;	
	SPI1->CR2  = 0x800;   //  9 bit
	SPI1->CR1 |= SPI_CR1_SPE;	
	}
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

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

Сообщение Darth Cuauhtemoc »

Для контроллера оригинального Nokia 3310 написано в даташите
Immediately following power-on, the contents of all internal
registers and of the RAM are undefined. A #RES pulse
must be applied.
Attention should be paid to the
possibility that the device may be damaged if not properly
reset.
Жирный шрифт не мой. У меня правда экранчик китайский, он может быть и не таким нежным, но я рисковать не стал бы.
dosikus писал(а): И весь инит SPI, супротив простыней SPL :
Ну это кому как удобно. Если нет жестких ограничений по памяти или быстродействию, лично я предпочитаю понятность (читабельность) кода :)
Разбираться в нагромождениях скобок, сдвигов и бинарных операций... напоминает взрывающий моск LISP :) Но в данном случае конечно все не так экстремально.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Darth Cuauhtemoc писал(а): Ну это кому как удобно. Если нет жестких ограничений по памяти или быстродействию, лично я предпочитаю понятность (читабельность) кода :)
Ты сам в это веришь или чужими словами глаголишь ?
В случае SPL удобочитаемость это бред полнейший .
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

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

Сообщение Darth Cuauhtemoc »

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

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

Сообщение dosikus »

Darth Cuauhtemoc писал(а):Конечно, не чужими - я программист :)
Ну это то понятно что в эмбедде новичок.
Здесь универсальные либы зло, в любой интерпретации . Это не PC...
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

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

Сообщение Darth Cuauhtemoc »

Не совсем так, в ARM - да, а с AVR знаком уже какое то время и всегда предпочитал находить и использовать чужие либы, поскольку хорошо написанная как в смысле кода, так и понятности программисту, который ее применяет, либа - это сильная экономия времени, нервов и вообще...

Конечно, МК не PC, но это как посмотреть... ARMы, в принципе, неслабые такие компьютеры, и такой подход совершенно оправдан. Если нужно создать девайс, который должен будет работать с SD картой или флэшкой, ты же не будешь писать файловую систему с нуля, а возьмешь либу или даже CoOS.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Darth Cuauhtemoc писал(а): Если нужно создать девайс, который должен будет работать с SD картой или флэшкой, ты же не будешь писать файловую систему с нуля, а возьмешь либу или даже CoOS.
Не, быдло_код от кактуса, однозначно нет.
FatFS бери от чана . ОСей и так хватает , но только не кактусО_поделки.
Кстати AVR это тебе в минус , если сидел только на них...
У кодописателя на PC совершенно другое мировоззрение, там от либ никуда не денешься .
На МК даже на навороченных ARM совершенно спокойно можно обходиться без индусского кода SPL .
Да и полезней это будет - периферию нужно знать от и до ....
Последний раз редактировалось dosikus Вт сен 17, 2013 22:36:54, всего редактировалось 1 раз.
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

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

Сообщение Darth Cuauhtemoc »

dosikus писал(а):ОСей и так хватает
Кстати AVR это тебе в минус , если сидел только на них...
Ну, на CoOS наткнулся случайно, когда еще присматривался только к ARM. Поэтому упомянул - пока знаю только ее. То, что осей много, это хорошо - а Юникс, ну или Линукс есть хороший?

Да, сидел на них и не жужжал, пока не узнал вдруг о "коммунистических" STM32. После этого, решил переползти на новую платформу :)
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Darth Cuauhtemoc писал(а): а Юникс, ну или Линукс есть хороший?
Дык это однозначно на другие ARM . Есть одноплатные компьютеры та же "Малинка" например.
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

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

Сообщение drakon »

dosikus писал(а):
Darth Cuauhtemoc писал(а):CS дисплея просто заземлил.
Прикинь у меня еще и RESET на VDD навешан и 9 бит SPI ... :)))
dosikus, :beer:. LCD на 4ох проводах:
Изображение
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

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

Сообщение Darth Cuauhtemoc »

dosikus писал(а): Прикинь у меня еще и RESET на VDD навешан и 9 бит SPI ... :)))

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

SPI1->CR2  = 0x800;   //  9 bit
9 бит SPI это интересно, есть у меня пара дисплеев Nokia 1202/1203/1280

UPD: Интересно, а если программа отремапит на выводы JTAG другие функции, возможность программирования не будет утрачена?
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

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

Сообщение drakon »

Darth Cuauhtemoc, ремапте на выводы JTAG, например, через секунду после старта МК.
Ответить

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