Доброго времени.
stm32f042k6t6. Настраиваю spi Transmit only master. Собственно вопрос: в каком режиме надо настроить GPIO
-AF_PP
-AF_PP_PU
-AF_PP_PD
-AF_OD
-AF_OD_PU
-AF_OD_PD
Где это написано?
Спасибо.
stm32f0 spi режим GPIO
- Реклама
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: stm32f0 spi режим GPIO
MOSI и SCK в AF_PP
Re: stm32f0 spi режим GPIO
[uquote="mab72",url="/forum/viewtopic.php?p=4201126#p4201126"]Доброго времени.
stm32f042k6t6. Настраиваю spi Transmit only master. Собственно вопрос: в каком режиме надо настроить GPIO
-AF_PP
-AF_PP_PU
-AF_PP_PD
-AF_OD
-AF_OD_PU
-AF_OD_PD
Где это написано?
Спасибо.[/uquote]
Это написано в мурзилках на микрухи, которые ты собираешься подключать.
Тебе нужны сигналы (минимум): MOSI, MISO, CLK, CS и, желательно, RST. Вот и смотри, как эти входы сделаны на тех микрухах. Скорей всего, достаточно будет РР без подтяжек. Ещё учти, что пока ты не настроил ноги у МК, они висят в воздухе, поэтому, возможно, понадобится притянуть хотя бы CS к какой-то шине питания высокоомным резистором.
stm32f042k6t6. Настраиваю spi Transmit only master. Собственно вопрос: в каком режиме надо настроить GPIO
-AF_PP
-AF_PP_PU
-AF_PP_PD
-AF_OD
-AF_OD_PU
-AF_OD_PD
Где это написано?
Спасибо.[/uquote]
Это написано в мурзилках на микрухи, которые ты собираешься подключать.
Тебе нужны сигналы (минимум): MOSI, MISO, CLK, CS и, желательно, RST. Вот и смотри, как эти входы сделаны на тех микрухах. Скорей всего, достаточно будет РР без подтяжек. Ещё учти, что пока ты не настроил ноги у МК, они висят в воздухе, поэтому, возможно, понадобится притянуть хотя бы CS к какой-то шине питания высокоомным резистором.
Re: stm32f0 spi режим GPIO
Подключать собираюсь ST7735. Пойду листать DS на ST7735. Спасибо.
Добавлено after 2 hours 6 minutes 54 seconds:
Дано: stm32f0..., дисплей TFT_RGB 128x160 на базе ST7735s.
Задача: настроить SPI и вывести на дисплей точку в заданных координатах определенного цвета.
Если кому-то не сложно заделать разьяснения по поводу TFT_RGB 128x160 на базе ST7735s. Режим альтернативной функции (AF_PP, AF_PP_PU, AF_PP_PD, AF_OD, AF_OD_PU, AF_OD_PD) какой выбрать со ссылкой на документацию, порядок инициализации. Как понять из DS на ST7735s как инициализировать.
Спасибо.
Добавлено after 2 hours 6 minutes 54 seconds:
Дано: stm32f0..., дисплей TFT_RGB 128x160 на базе ST7735s.
Задача: настроить SPI и вывести на дисплей точку в заданных координатах определенного цвета.
Если кому-то не сложно заделать разьяснения по поводу TFT_RGB 128x160 на базе ST7735s. Режим альтернативной функции (AF_PP, AF_PP_PU, AF_PP_PD, AF_OD, AF_OD_PU, AF_OD_PD) какой выбрать со ссылкой на документацию, порядок инициализации. Как понять из DS на ST7735s как инициализировать.
Спасибо.
- AlanDrakes
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Пн июл 04, 2016 16:51:22
- Откуда: Россия, Омск
Re: stm32f0 spi режим GPIO
Поработаю минутку за гуглопереводчик.
AF = Alternate Function. Альтернативная функция пина (относительно "обычной" - GPIO - Порт ввода-вывода ОБЩЕГО НАЗНАЧЕНИЯ). Альтернативная функция, грубо говоря, специальное назначение и в этом режиме порт переключается на управление каким-либо периферийным блоком и управляется уже им.
PP = Push-Pull. Значит может работать как пин, который с силой тянет ножку как к плюсу питания, так и к общему провода. Как правило, с допустимым током до 50-100мА.
PU / PD - Pull Up / Pull Down. Подтяжка вверх или вних. Подключается дополнительный резистор прямо на кремнии. Номинал где-то между 20кОм и 50кОм. Может варьироваться.
OD - Open-Drain вывод. В отечественной номенклатуре TTL чипов обозначалось как "ОК" - Вывод с открытым коллектором. Тянет ножку только к нулю. Если записать в пин "1", но отключить подтяжку к плюсу, оставив провод "болтаться в воздухе", и попытаться измерить на нём напряжение, то напряжение будет плавать, а, в зависимости от входного сопротивления мультиметра - даже покажет ноль. Можно собирать несколько таких пинов в схему подключения "Проволочное И".
Соответственно, для SPI портов пины /CS, MOSI, SCK должны быть AF_PP, MISO - AF_INPUT.
По поводу того, где читать - Reference Manual, как правило, раздел 6 - GPIO.
По процессу инициализации дисплея - в референс-мануале на контроллер дисплея.
Можете попробовать код, взятый здесь
AF = Alternate Function. Альтернативная функция пина (относительно "обычной" - GPIO - Порт ввода-вывода ОБЩЕГО НАЗНАЧЕНИЯ). Альтернативная функция, грубо говоря, специальное назначение и в этом режиме порт переключается на управление каким-либо периферийным блоком и управляется уже им.
PP = Push-Pull. Значит может работать как пин, который с силой тянет ножку как к плюсу питания, так и к общему провода. Как правило, с допустимым током до 50-100мА.
PU / PD - Pull Up / Pull Down. Подтяжка вверх или вних. Подключается дополнительный резистор прямо на кремнии. Номинал где-то между 20кОм и 50кОм. Может варьироваться.
OD - Open-Drain вывод. В отечественной номенклатуре TTL чипов обозначалось как "ОК" - Вывод с открытым коллектором. Тянет ножку только к нулю. Если записать в пин "1", но отключить подтяжку к плюсу, оставив провод "болтаться в воздухе", и попытаться измерить на нём напряжение, то напряжение будет плавать, а, в зависимости от входного сопротивления мультиметра - даже покажет ноль. Можно собирать несколько таких пинов в схему подключения "Проволочное И".
Соответственно, для SPI портов пины /CS, MOSI, SCK должны быть AF_PP, MISO - AF_INPUT.
По поводу того, где читать - Reference Manual, как правило, раздел 6 - GPIO.
По процессу инициализации дисплея - в референс-мануале на контроллер дисплея.
Можете попробовать код, взятый здесь
Последний раз редактировалось AlanDrakes Вт мар 22, 2022 06:09:42, всего редактировалось 1 раз.
- Реклама
Re: stm32f0 spi режим GPIO
[uquote="AlanDrakes",url="/forum/viewtopic.php?p=4201733#p4201733"]Поработаю минутку...[/uquote]
Про режим AF_PP с натяжкой вроде бы понял.
По поводу инициализации: готовых кодов в интернете есть много. Уровень моего английского не позволяет полноценно понять DS на st7735. Например для LCD1602 конкретно указана последовательность инициализации, даже моего уровня знания английского и при помощи интернета вполне себе понятно. А вот на st7735 нет такой последовательности или она так завуалирована... Вот я и прошу, что если кто-то сможет расписать инициализацию оного дисплея с привязкой к документации по пунктам. Думаю не мне одному это пригодилось бы.
Про режим AF_PP с натяжкой вроде бы понял.
По поводу инициализации: готовых кодов в интернете есть много. Уровень моего английского не позволяет полноценно понять DS на st7735. Например для LCD1602 конкретно указана последовательность инициализации, даже моего уровня знания английского и при помощи интернета вполне себе понятно. А вот на st7735 нет такой последовательности или она так завуалирована... Вот я и прошу, что если кто-то сможет расписать инициализацию оного дисплея с привязкой к документации по пунктам. Думаю не мне одному это пригодилось бы.
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: stm32f0 spi режим GPIO
mab72, когда то игрался с 7735.
последовательность команд инициализации была у продавана на Али.
По его мурзилке я и сделал. Устройство уже несколько лет работает.
последовательность команд инициализации была у продавана на Али.
По его мурзилке я и сделал. Устройство уже несколько лет работает.
Спойлер
Код: Выделить всё
#define ST7735_MADCTL_MY 0x80
#define ST7735_MADCTL_MX 0x40
#define ST7735_MADCTL_MV 0x20
#define ST7735_MADCTL_RGB 0x00
#define ST7735_MADCTL_BGR 0x08
#define ST7735_MADCTL_ML 0x10
#define ST7735_MADCTL_MH 0x04
#define ST7735_RGB444 0x03
#define ST7735_RGB565 0x05
#define ST7735_RGB666 0x06
#define ST7735_NOP 0x00
#define ST7735_SWRESET 0x01
//#define ST7735_RDDID 0x04
//#define ST7735_RDDST 0x09
#define ST7735_SLPIN 0x10
#define ST7735_SLPOUT 0x11
#define ST7735_PTLON 0x12
#define ST7735_NORON 0x13
#define ST7735_INVOFF 0x20
#define ST7735_INVON 0x21
#define ST7735_DISPOFF 0x28
#define ST7735_DISPON 0x29
#define ST7735_CASET 0x2A
#define ST7735_RASET 0x2B
#define ST7735_RAMWR 0x2C
#define ST7735_RGBSET 0x2D
//#define ST7735_RAMRD 0x2E
#define ST7735_PTLAR 0x30
#define ST7735_COLMOD 0x3A
#define ST7735_MADCTL 0x36 Код: Выделить всё
// инициализация
void initDisplayST7735(void){
setResetPinST7735(0);
_delay_ms(50);
setResetPinST7735(1);
_delay_ms(10);
sendCommandST7735(ST7735_SWRESET);
_delay_ms(120);
sleepModeST7735(0); // ST7735_SLPOUT
_delay_ms(120);
powerModeST7735(1); // ST7735_DISPON
_delay_us(150);
// ali seller's init
//--- ST7735S Frame Rate
sendCommandST7735(0xB1);
sendDataST7735(0x05);
sendDataST7735(0x3C);
sendDataST7735(0x3C);
sendCommandST7735(0xB2);
sendDataST7735(0x05);
sendDataST7735(0x3C);
sendDataST7735(0x3C);
sendCommandST7735(0xB3);
sendDataST7735(0x05);
sendDataST7735(0x3C);
sendDataST7735(0x3C);
sendDataST7735(0x05);
sendDataST7735(0x3C);
sendDataST7735(0x3C);
//--- End ST7735S Frame Rate
sendCommandST7735(0xB4); //Dot inversion
sendDataST7735(0x03);
//--- ST7735S Power Sequence
sendCommandST7735(0xC0);
sendDataST7735(0x28);
sendDataST7735(0x08);
sendDataST7735(0x04);
sendCommandST7735(0xC1);
sendDataST7735(0XC0);
sendCommandST7735(0xC2);
sendDataST7735(0x0D);
sendDataST7735(0x00);
sendCommandST7735(0xC3);
sendDataST7735(0x8D);
sendDataST7735(0x2A);
sendCommandST7735(0xC4);
sendDataST7735(0x8D);
sendDataST7735(0xEE);
//--- End ST7735S Power Sequence
sendCommandST7735(0xC5); //VCOM
sendDataST7735(0x12);
//--- ST7735S Gamma Sequence
sendCommandST7735(0xE0);
sendDataST7735(0x04);
sendDataST7735(0x22);
sendDataST7735(0x07);
sendDataST7735(0x0A);
sendDataST7735(0x2E);
sendDataST7735(0x30);
sendDataST7735(0x25);
sendDataST7735(0x2A);
sendDataST7735(0x28);
sendDataST7735(0x26);
sendDataST7735(0x2E);
sendDataST7735(0x3A);
sendDataST7735(0x00);
sendDataST7735(0x01);
sendDataST7735(0x03);
sendDataST7735(0x13);
sendCommandST7735(0xE1);
sendDataST7735(0x04);
sendDataST7735(0x16);
sendDataST7735(0x06);
sendDataST7735(0x0D);
sendDataST7735(0x2D);
sendDataST7735(0x26);
sendDataST7735(0x23);
sendDataST7735(0x27);
sendDataST7735(0x27);
sendDataST7735(0x25);
sendDataST7735(0x2D);
sendDataST7735(0x3B);
sendDataST7735(0x00);
sendDataST7735(0x01);
sendDataST7735(0x04);
sendDataST7735(0x13);
//--- End ST7735S Gamma Sequence
sendCommandST7735(ST7735_COLMOD);
sendDataST7735(ST7735_RGB565);
setMemoryWriteModeST7735(ST7735_MADCTL_RGB); // ST7735_MADCTL
unsigned char i=0;
sendCommandST7735(ST7735_RGBSET); //Look up table
for(i=0;i<32;i++)
sendDataST7735(2*i); //Red
for(i=0;i<64;i++)
sendDataST7735(1*i); //Green
for(i=0;i<32;i++)
sendDataST7735(2*i); //Blue
}Re: stm32f0 spi режим GPIO
GoldenAndy, спасибо. Ушел изучать.





