hd44780 0 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба Да не заметил. Я думаю под себя перепишите. Пример. Спасибо. Попробую, отпишусь. P.S. Да первый модуль который я разбираю и столько граблей, то ли нужно глубже вникать, то ли сыроват еще. Родственные сомнения.. Рано ещё этот проц в какие-то серъёзные вещи ставить имхо ... Так, чисто поизучать, поиграться. F1/F4, помню, с полпинка заводилось всё. С SDRAM и LTDC на F439, помню, года 4 назад промучился, но во всём оказалась виновата хреновая разводка платы. Сделали другую - все мгновенно заработало как надо. Тут на форуме даже тема моя есть про "неработающий" LTDC :biggrin: У меня есть свободная QSPI флэшка, думаю, следующими блоками на изучение будут QSPI и уарты :rolleyes: Ну и USB c сетевухой, раз уж они есть на NUCLEO. Не пропадать же добру :biggrin: С сетью и lwIP на МК я вообще никогда не работал. Ну всякие там ESP8266 не в счёт конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MasterElectric 0 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба У меня план ковыряний примерно такой же, QSPI давно хотел попробовать. Доделаю ДМА и начну USART (вроде как в F7 1 в 1, так что не сложно), с ДМА пришла в голову мысль (раз уж каналы стали полностью идентичные) динамически раздавать каналы по запросу периферии, все-равно запуск от полной инициализации отличаеться не сильно по размеру, но страдаю с общими регистрами (RCC, и общие ДМА, особенно с ДМА, совсем не красиво). Пока в голову пришли одни таблицы, зависимостей не видать совсем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба MasterElectric, удачи. Мои эксприменты, похоже, откладываются - см. вложение. При простом подключении всё прекрасно читает. Ошибка только после Erase. Atollic True Studio тож ругается "flash error". Хз, чё с ней стряслось. Пытался +5в со своего БП подавать, другой программатор подключал - без разницы. Прошивается и работает не знаю с какого раза. 2 недели всего проработала :crying: Если оно всё же будет работать, я тоже буду продолжать изучение всего вышесказанного. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MasterElectric 0 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба Печалька, а где вы ее кстати покупали, в китае? у нас поискал еще нет в продаже. Может полетел встроенный стабилизатор (на 400 тоже не стабильно подключался поэтому сижу на HSI, но я настраивал по мануалу режим стабилизатора установил, память настроил, делители, PLL и то стремно пока что), иногда во время экспериментов неудачных, проц попав видимо в исключение не реагирует на отладчик, помогает только ресет подключить от программатора. Попробуйте загнать его в заводской бут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба Печалька, а где вы ее кстати покупали, в китае? у нас поискал еще нет в продаже. Может полетел встроенный стабилизатор (на 400 тоже не стабильно подключался поэтому сижу на HSI, но я настраивал по мануалу режим стабилизатора установил, память настроил, делители, PLL и то стремно пока что), иногда во время экспериментов неудачных, проц попав видимо в исключение не реагирует на отладчик, помогает только ресет подключить от программатора. Попробуйте загнать его в заводской бут. Покупал не я, а знакомый. Говорил, вроде где-то в США... Кстати, мы с ним тоже подумали на хреновое питание +3.3в. Я ж подавал на неё 5 вольт, т.е. конечный 3в стабилизатор всё равно работал родной. Стабилизатор завтра осциллом потыкаю, отпишусь. Готовых внешних 3.3в у меня щас нету, спаять внешний стаб смогу только на выходных, т.к. у меня это хобби, в рабочее время я паять не шибко могу. Атоллик после ругани на флэш всё-таки заходит в отладку, но ещё во время блужданий по стартовому коду попадает в DefaultHandler. Т.е. до активации PLL и HSE там дело не доходит. Там действительно что-то странное. Добавил в ту же тестовую прошивку с SPI мигание светодиодиком, залил ST-Link utility - замигал нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MasterElectric 0 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба ну скорее всего ошибка в коде и он уходит в стоп режим. Я бы пока малоизучена система тактирования не разгонял бы его. Я имел в виду стабилизатор что в чипе, но раз признаки жизни подает значит живой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба Осциллом 3.3 платы посмотрел - чисто. Может иголки какие, хз, моим хилым UT-81B их фиг найдёшь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 29 июля, 2018 Опубликовано 29 июля, 2018 · Жалоба Вот так нормально работает опросом: // Чтение/запись байта 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 29 июля, 2018 Опубликовано 29 июля, 2018 · Жалоба Датчик успешно переехал на SPI3 :) . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 5 августа, 2018 Опубликовано 5 августа, 2018 · Жалоба Небольшой оффтоп в теме про SPI: Покопался ещё на предмет флэша. Пустышка вида 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 18 августа, 2018 Опубликовано 18 августа, 2018 · Жалоба Всё-таки это косяки в либах атоллика (я про sprintf). Та же самая пустышка в STM32 SystemWorkbench завелась с полпинка. Правда пришлось разобраться, как включить в нём поддержку float output в spintf. По умолчанию она отключена, %f полностью игнорится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 6 18 августа, 2018 Опубликовано 18 августа, 2018 (изменено) · Жалоба Всё-таки это косяки в либах атоллика (я про sprintf). Та же самая пустышка в STM32 SystemWorkbench завелась с полпинка. Правда пришлось разобраться, как включить в нём поддержку float output в spintf. По умолчанию она отключена, %f полностью игнорится. никогда не использую sprintf() , использую набор минимальных самописных функций, отдельно для числовых данных, отдельно для строк etc... Изменено 18 августа, 2018 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться