STM32 новичку в ARM что к чему
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
- Реклама
Да не нужен там RXNE...
TXE и BSY вполне достаточно...
Да и насчёт SS... не уверен, что им там вообще дёргать надо...
TXE и BSY вполне достаточно...
Да и насчёт SS... не уверен, что им там вообще дёргать надо...
"Я не даю готовых решений, я заставляю думать!"(С)
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Вот и я про то, если хочет дергать CS каждый байт - тогда RXNE .HHIMERA писал(а): Да и насчёт SS... не уверен, что им там вообще дёргать надо...
Хотя этим дисплеем и на это дерганье не нужно.
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
А получится ли сделать хардварный 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... не уверен, что им там вообще дёргать надо...
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Код: Выделить всё
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 раза.
- Реклама
Хардварный NSS только у STM32F0XX и STM32F3XX...Darth Cuauhtemoc писал(а):А получится ли сделать хардварный NSS
Можно сделать на таймере... но оно нужно???
Да и вообще... дёргать CS имеет смысл только в случаях...
а) изменеие режимов и конфигурации по ходу пьесы... да и то не всегда...
в) ремап... да и то не всегда...
с) если это оговорено даташитом устройства и по другому никак...
"Я не даю готовых решений, я заставляю думать!"(С)
STM32F100 ... 18 bit...dosikus писал(а): 9бит фрейм
"Я не даю готовых решений, я заставляю думать!"(С)
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Дисплейчик работает
кстати, у меня в инициализации SPI была ошибка - для Nokia 3310 надо задавать
а у меня было SPI_CPOL_High.
Но после исправления все еще не работал; оказалось, была еще ошибка в одном бите в последовательности инициализации, но это к SPI уже отношения не имеет. Как исправил, заработало.
CS дисплея просто заземлил.
Код: Выделить всё
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
Но после исправления все еще не работал; оказалось, была еще ошибка в одном бите в последовательности инициализации, но это к SPI уже отношения не имеет. Как исправил, заработало.
CS дисплея просто заземлил.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Прикинь у меня еще и RESET на VDD навешан и 9 бит SPI ...Darth Cuauhtemoc писал(а):.
CS дисплея просто заземлил.
И весь инит 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;
}- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Для контроллера оригинального Nokia 3310 написано в даташите

Разбираться в нагромождениях скобок, сдвигов и бинарных операций... напоминает взрывающий моск LISP
Но в данном случае конечно все не так экстремально.
Жирный шрифт не мой. У меня правда экранчик китайский, он может быть и не таким нежным, но я рисковать не стал бы.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
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Ты сам в это веришь или чужими словами глаголишь ?Darth Cuauhtemoc писал(а): Ну это кому как удобно. Если нет жестких ограничений по памяти или быстродействию, лично я предпочитаю понятность (читабельность) кода![]()
В случае SPL удобочитаемость это бред полнейший .
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Конечно, не чужими - я программист 
SPL мне понравилась больше, несмотря на многословность
SPL мне понравилась больше, несмотря на многословность
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Ну это то понятно что в эмбедде новичок.Darth Cuauhtemoc писал(а):Конечно, не чужими - я программист![]()
Здесь универсальные либы зло, в любой интерпретации . Это не PC...
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Не совсем так, в ARM - да, а с AVR знаком уже какое то время и всегда предпочитал находить и использовать чужие либы, поскольку хорошо написанная как в смысле кода, так и понятности программисту, который ее применяет, либа - это сильная экономия времени, нервов и вообще...
Конечно, МК не PC, но это как посмотреть... ARMы, в принципе, неслабые такие компьютеры, и такой подход совершенно оправдан. Если нужно создать девайс, который должен будет работать с SD картой или флэшкой, ты же не будешь писать файловую систему с нуля, а возьмешь либу или даже CoOS.
Конечно, МК не PC, но это как посмотреть... ARMы, в принципе, неслабые такие компьютеры, и такой подход совершенно оправдан. Если нужно создать девайс, который должен будет работать с SD картой или флэшкой, ты же не будешь писать файловую систему с нуля, а возьмешь либу или даже CoOS.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Не, быдло_код от кактуса, однозначно нет.Darth Cuauhtemoc писал(а): Если нужно создать девайс, который должен будет работать с SD картой или флэшкой, ты же не будешь писать файловую систему с нуля, а возьмешь либу или даже CoOS.
FatFS бери от чана . ОСей и так хватает , но только не кактусО_поделки.
Кстати AVR это тебе в минус , если сидел только на них...
У кодописателя на PC совершенно другое мировоззрение, там от либ никуда не денешься .
На МК даже на навороченных ARM совершенно спокойно можно обходиться без индусского кода SPL .
Да и полезней это будет - периферию нужно знать от и до ....
Последний раз редактировалось dosikus Вт сен 17, 2013 22:36:54, всего редактировалось 1 раз.
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Ну, на CoOS наткнулся случайно, когда еще присматривался только к ARM. Поэтому упомянул - пока знаю только ее. То, что осей много, это хорошо - а Юникс, ну или Линукс есть хороший?dosikus писал(а):ОСей и так хватает
Кстати AVR это тебе в минус , если сидел только на них...
Да, сидел на них и не жужжал, пока не узнал вдруг о "коммунистических" STM32. После этого, решил переползти на новую платформу
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Дык это однозначно на другие ARM . Есть одноплатные компьютеры та же "Малинка" например.Darth Cuauhtemoc писал(а): а Юникс, ну или Линукс есть хороший?
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
9 бит SPI это интересно, есть у меня пара дисплеев Nokia 1202/1203/1280dosikus писал(а): Прикинь у меня еще и RESET на VDD навешан и 9 бит SPI ...![]()
Код: Выделить всё
SPI1->CR2 = 0x800; // 9 bit
UPD: Интересно, а если программа отремапит на выводы JTAG другие функции, возможность программирования не будет утрачена?
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Darth Cuauhtemoc, ремапте на выводы JTAG, например, через секунду после старта МК.


