реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> STM32H743 SPI, Не работает
hd44780
сообщение Jul 26 2018, 04:28
Сообщение #46


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(MasterElectric @ Jul 25 2018, 23:11) *
Да не заметил.

Я думаю под себя перепишите. Пример.

Спасибо. Попробую, отпишусь.

Цитата(MasterElectric @ Jul 25 2018, 23:11) *
P.S. Да первый модуль который я разбираю и столько граблей, то ли нужно глубже вникать, то ли сыроват еще.

Родственные сомнения..
Рано ещё этот проц в какие-то серъёзные вещи ставить имхо ... Так, чисто поизучать, поиграться.
F1/F4, помню, с полпинка заводилось всё. С SDRAM и LTDC на F439, помню, года 4 назад промучился, но во всём оказалась виновата хреновая разводка платы. Сделали другую - все мгновенно заработало как надо.
Тут на форуме даже тема моя есть про "неработающий" LTDC biggrin.gif

У меня есть свободная QSPI флэшка, думаю, следующими блоками на изучение будут QSPI и уарты rolleyes.gif
Ну и USB c сетевухой, раз уж они есть на NUCLEO. Не пропадать же добру biggrin.gif С сетью и lwIP на МК я вообще никогда не работал. Ну всякие там ESP8266 не в счёт конечно.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
MasterElectric
сообщение Jul 26 2018, 15:23
Сообщение #47


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 19-07-18
Пользователь №: 106 151



У меня план ковыряний примерно такой же, QSPI давно хотел попробовать. Доделаю ДМА и начну USART (вроде как в F7 1 в 1, так что не сложно), с ДМА пришла в голову мысль (раз уж каналы стали полностью идентичные) динамически раздавать каналы по запросу периферии, все-равно запуск от полной инициализации отличаеться не сильно по размеру, но страдаю с общими регистрами (RCC, и общие ДМА, особенно с ДМА, совсем не красиво). Пока в голову пришли одни таблицы, зависимостей не видать совсем.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 26 2018, 16:43
Сообщение #48


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



MasterElectric, удачи. Мои эксприменты, похоже, откладываются - см. вложение. При простом подключении всё прекрасно читает. Ошибка только после Erase.

Atollic True Studio тож ругается "flash error". Хз, чё с ней стряслось. Пытался +5в со своего БП подавать, другой программатор подключал - без разницы.
Прошивается и работает не знаю с какого раза.

2 недели всего проработала crying.gif

Если оно всё же будет работать, я тоже буду продолжать изучение всего вышесказанного.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
MasterElectric
сообщение Jul 26 2018, 17:35
Сообщение #49


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 19-07-18
Пользователь №: 106 151



Печалька, а где вы ее кстати покупали, в китае? у нас поискал еще нет в продаже. Может полетел встроенный стабилизатор (на 400 тоже не стабильно подключался поэтому сижу на HSI, но я настраивал по мануалу режим стабилизатора установил, память настроил, делители, PLL и то стремно пока что), иногда во время экспериментов неудачных, проц попав видимо в исключение не реагирует на отладчик, помогает только ресет подключить от программатора. Попробуйте загнать его в заводской бут.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 26 2018, 18:01
Сообщение #50


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(MasterElectric @ Jul 26 2018, 20:35) *
Печалька, а где вы ее кстати покупали, в китае? у нас поискал еще нет в продаже. Может полетел встроенный стабилизатор (на 400 тоже не стабильно подключался поэтому сижу на HSI, но я настраивал по мануалу режим стабилизатора установил, память настроил, делители, PLL и то стремно пока что), иногда во время экспериментов неудачных, проц попав видимо в исключение не реагирует на отладчик, помогает только ресет подключить от программатора. Попробуйте загнать его в заводской бут.


Покупал не я, а знакомый. Говорил, вроде где-то в США... Кстати, мы с ним тоже подумали на хреновое питание +3.3в. Я ж подавал на неё 5 вольт, т.е. конечный 3в стабилизатор всё равно работал родной.
Стабилизатор завтра осциллом потыкаю, отпишусь.
Готовых внешних 3.3в у меня щас нету, спаять внешний стаб смогу только на выходных, т.к. у меня это хобби, в рабочее время я паять не шибко могу.

Атоллик после ругани на флэш всё-таки заходит в отладку, но ещё во время блужданий по стартовому коду попадает в DefaultHandler. Т.е. до активации PLL и HSE там дело не доходит.

Там действительно что-то странное. Добавил в ту же тестовую прошивку с SPI мигание светодиодиком, залил ST-Link utility - замигал нормально.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
MasterElectric
сообщение Jul 26 2018, 18:06
Сообщение #51


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 19-07-18
Пользователь №: 106 151



ну скорее всего ошибка в коде и он уходит в стоп режим. Я бы пока малоизучена система тактирования не разгонял бы его. Я имел в виду стабилизатор что в чипе, но раз признаки жизни подает значит живой.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 27 2018, 13:33
Сообщение #52


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Осциллом 3.3 платы посмотрел - чисто. Может иголки какие, хз, моим хилым UT-81B их фиг найдёшь.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 29 2018, 12:27
Сообщение #53


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Вот так нормально работает опросом:

Код
// Чтение/запись байта SPI
uint8_t spi1_sendByte ( uint8_t data_out )
{
    uint8_t data_in = 0;

    // старт передаем неопределенное кол-во байт
    // Disable SPI
    SPI_PORT->CR1 &= ~SPI_CR1_SPE;
    SPI_PORT->CR2 = 0;
    // Enable SPI
    SPI_PORT->CR1 |= SPI_CR1_SPE;
    SPI_PORT->CR1 |= SPI_CR1_CSTART;

    while (!(SPI_PORT->SR & SPI_SR_TXP));
    *((__IO uint8_t *)&SPI_PORT->TXDR) = data_out;

    // Ждать завершения приёма
    while(!(SPI_PORT->SR & SPI_SR_RXP));
    data_in = *(volatile uint8_t *) &(SPI_PORT->RXDR);
    return data_in;
} // SPI_sendByte


Попробую ещё перенести это на другой SPI.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 29 2018, 15:27
Сообщение #54


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Датчик успешно переехал на SPI3 sm.gif .


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
hd44780
сообщение Aug 5 2018, 15:02
Сообщение #55


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Небольшой оффтоп в теме про SPI:

Покопался ещё на предмет флэша.
Пустышка вида

CODE
char sBuffer[256];

int main(void)
{
float temp = 656.89F;
int i = 78;

sprintf ( sBuffer, "%d; %.02fv", i, temp );
while ( 1 )
{
} // while
} // main


При использовании newlib standard даёт размер кода:

Код
Print size information
   text      data       bss       dec       hex   filename
  17644      1660     10772     30076      757c   STM32H7_ILI9163.elf


Ошибка записи во флэш есть.
Если эту же программу перекомпилить с newlib nano, то получаю:
Код
Print size information
   text      data       bss       dec       hex   filename
   5180       112     10720     16012      3e8c   STM32H7_ILI9163.elf


Ошибки флэша нет, всё гуд. Но в sBuffer я вижу: "78; v", т.е. видно, что sprintf не поддерживает плавающую точку, что меня лично меня категорически не устраивает.

Чтобы отсечь вопрос о "битости" некоторых участков флэша проца приведу следующий пример:
Прошивка размером

Код
Print size information
   text      data       bss       dec       hex   filename
  18480        36     10876     29392      72d0   STM32H7_ILI9163.elf



без sprintf шьётся, отлаживается и работает совершенно нормально.

Стек в обоих случаях одинаковый:

Код
/* 0x2800 == 10K */
_Min_Stack_Size = 0x2800;




Какие соображения, товарищи? И чем можно заменить sprintf? Я нашёл только это - https://github.com/torvalds/linux/blob/master/lib/vsprintf.c , но пока не пытался затащить её в проц.
Увеличение размера прошивки меня совершенно не волнует. Кто-то делал что-либо подобное?

Штуки типа itoa, ltoa я знаю, они нормально работают, но результирующие строки надо дополнительно склеивать, но самое главное, чего-то родственного для плавающей точки я не знаю.
Писать самому?

Что касается периферии - запустил UART - отправка опросом, приём прерыванием в буфер. Перешёл к USB.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
hd44780
сообщение Aug 18 2018, 07:00
Сообщение #56


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Всё-таки это косяки в либах атоллика (я про sprintf).

Та же самая пустышка в STM32 SystemWorkbench завелась с полпинка.
Правда пришлось разобраться, как включить в нём поддержку float output в spintf. По умолчанию она отключена, %f полностью игнорится.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Aug 18 2018, 11:04
Сообщение #57


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(hd44780 @ Aug 18 2018, 12:00) *
Всё-таки это косяки в либах атоллика (я про sprintf).

Та же самая пустышка в STM32 SystemWorkbench завелась с полпинка.
Правда пришлось разобраться, как включить в нём поддержку float output в spintf. По умолчанию она отключена, %f полностью игнорится.


никогда не использую sprintf() , использую набор минимальных самописных функций, отдельно для числовых данных, отдельно для строк etc...

Сообщение отредактировал nanorobot - Aug 18 2018, 11:04
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th August 2025 - 03:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01434 секунд с 7
ELECTRONIX ©2004-2016