SPI на STM32F4

Martinayotte
Сб 30 мая 2015 г., 2:01
Желаю этого, чтобы иметь ethercard_stm на моем netduino2plus, я решил начать с более низкой цели: sdcard ...
К сожалению, я застрял на более низком уровне, SPI ... :(
Libmaple SPI низкого уровня.C/SPI.H of4 довольно устарели по сравнению с F1, поэтому просто копия SPI для F4 не работает.
Я не знаю, в каком направлении двигаться: ожидание слияния F1/F4, или я должен исследовать, если выбросить Libmaple SPI низкого уровня.C/SPI.H от F4 и замена его на F1 должен выполнять работу ?
Я не хочу тратить время ни за что ... Любой намек будет оценен ...

victor_pv
Сб 30 мая 2015 г., 22:24
Martinayotte написал:Желаю этого, чтобы иметь ethercard_stm на моем netduino2plus, я решил начать с более низкой цели: sdcard ...
К сожалению, я застрял на более низком уровне, SPI ... :(
Libmaple SPI низкого уровня.C/SPI.H of4 довольно устарели по сравнению с F1, поэтому просто копия SPI для F4 не работает.
Я не знаю, в каком направлении двигаться: ожидание слияния F1/F4, или я должен исследовать, если выбросить Libmaple SPI низкого уровня.C/SPI.H от F4 и замена его на F1 должен выполнять работу ?
Я не хочу тратить время ни за что ... Любой намек будет оценен ...

Rogerclark
Солнце 31 мая 2015 12:02
Аппаратные регистрации на F4 значительно отличаются от F1

У STM есть несколько гидов о преобразовании между различными процессорами, но я не могу вспомнить, есть ли от F1 в F4.

Слияние F1 и F4 - долгосрочная цель, но все еще есть проблемы, которые необходимо решить на F1.

Я не смотрел код SPI на F4, но я удивлен, если он был в нескольких милях от кода F1.
Я сделал некоторую рефакторинг F1 SPI, чтобы в основном обновлена, и я помню, как Тим (на форуме Arduino) также внес некоторые изменения, но ничего радикального.

Я почти уверен, что только что скопировал последний код Aeroquad в свою репо, но я не знаю, когда команда Aeroquad взяла свою копию Libmaple и сделал ли Leaflabs много с SPI в 2012 или 2013 годах
Однако вы, вероятно, можете посмотреть на даты на репо с аэроквадкой GitHub и Leaflabs Libmaple Repo и выполните некоторую детективную работу.

Вы также можете посмотреть, что Авик де сделал для своего SPI в его репо -кодуино, но он использует HAL, чтобы код был совершенно другим (но вы можете посмотреть на исходные файлы HAL)

Sheepdoll
Солнце 31 мая 2015 г., 17:23
Mubase2 написал:Hiya. Я также пытаюсь использовать SPI1 на моем открытии F4. Я хочу общаться с акселерометром...

Rogerclark
Солнце 31 мая 2015 г., 22:14
Afik @mubase имеет открытие F407, как и я.

Сегодня утром я буду быстро взглянуть на код SPI, если у меня появится шанс, просто чтобы увидеть масштаб проблемы ;-)

Редактировать.

Похоже, парням Aeroquad не нуждается в SPI. Я вообще не вижу в их репо :-(

Похоже, есть код низкого уровня для SPI в репо, но у меня не было возможности отличить его против кода F1.
Одна разница в рассказе - это базовый адрес для банка SPI Register. Если кто -то обновил это, то это показывает, что кто -то смотрел на портирование на F4 (хотя не означает, что он закончил портирование)

Rogerclark
Солнце 31 мая 2015 г. 11:14
Я только что посмотрел на руководство по программированию для F1 и F4 и я ошибались.

Базовый адрес регистров SPI кажется одинаковым на обоих устройствах, так что это не является руководством по поводу того, были ли файлы перенесены Aeroquad


Я не уверен, что это правильно, но я понимаю, что F2 и F4 были похожи. Если так, то есть руководство по миграции от F1 на F2
(Не ребята из Aeroquad используют папки F2, что предполагает, что F2 является близким по сравнению с F4. Лично я бы переименовал папки ;-) )

Я также нашел это на форуме сообщества ST

https: // my.ул.com/public/ste2ecommuniti ... TVIEWS = 162

http: // www.ул.com/web/en/resource/techn ... 033267.PDF


Таким образом, в основном, похоже, что F2 и F4 достаточно похожи, чтобы предположить, что код для F2 обычно работает на F4.


Также. Пока я помню.

Я думал, что @mubase, если бы i2 работал над его F407, что странно, так как i2s на самом деле является улучшенной версией SPI (и не имеет ничего общего с I2C, хотя его имя звучит очень похоже)

В этом случае... Возможно, мы ближе к тому, чтобы заставить SPI работать над F4, который кажется.

и...

Еще один вариант. Кто -то может быть дерзким и опубликовать проблему на Aeroquad Repo, скажите, что вы хотели бы использовать SPI с их репо, и посмотреть, какой ответ вы получаете. Как технически мы используем их порт, хотя и производная.

Martinayotte
Пн июня 01, 2015, 2:32
Просто чтобы вы знали о моих работах: я заменил SPI.H/SPI.C в F4 с тем, что от F1 (я различаю их и да, как сказал Роджер, они смотрят симум).
Я также скопировал библиотеку SPI от F1 до F4, настраивайте ее, пока она не составлена. Затем я добавлю библиотеку SD из Sparkfun, после некоторой настройки, я также собрал ее также.
Но, как уж и во время выполнения, процессор висит во время карты.init () ... :(
Мне придется копать больше, но у меня нет GDB, чтобы помочь мне в среде netduino2plus, поэтому Printfs все еще останутся моими друзьями ... :?

Rogerclark
Пн июня 01, 2015, 3:29 утра
Мартин,

Можете ли вы совершить изменения в своем репо и прислать мне запрос на привлечение

Re: SD -карта

Это может быть другая проблема. Я знаю, что Victor PV работает с парнем, который поддерживает SD Card Lib, и я думаю, что может быть новая кросс -платформная версия.

Возможно, вы сможете PM Victor, так как я не уверен, что он прочитал эту ветку, так как у него нет доски F4

Мубас
Пн июня 01, 2015 10:34
Какое открытие у вас есть? Я считаю, что F429i - это реальная проблема, чтобы понять все варианты. Это открытие STM32F4. Я получил его для его возможностей аудио и DSP.. У меня есть i2s и кодек, работающие с репо.. У меня был STM32F429 с TFT, но продал его на .... Я отдал свой STM32F4Discovery, думая, что это CoreTex M0. Проклятие!

Martinayotte
Пн июня 01, 2015, 14:51
@Roger, я PM Victor об этом.
Кроме того, мне нужно дальнейшее расследование, прежде чем совершать коммит, во -первых, из -за тонн #ifdef я даже не уверен, что SPI инициализируется с помощью Hardwarespi, так что, возможно, он проходит через код Softspi, у которого, возможно, все еще есть некоторые регистры AVR манипуляции. : o
Кроме того, библиотека SD, которую я использую, может быть, не достаточна, как вы упомянули.

victor_pv
Пн июня 01, 2015, 15:30
У меня есть доска Nucleo F411. Кто -нибудь собирал и загрузил на эту доску успешно все, что угодно?
Если это так, я могу попробовать тестировать SPI на этой доске.
Теперь, если мне нужно изменить много вещей, чтобы просто получить мигание, я, вероятно, скоро не могу проверить SPI, поэтому я спрашиваю, кто -нибудь что -то проверял в этом MCU уже.

Martinayotte
Пн июня 01, 2015, 16:16
Привет, Виктор,
Я не знаю о F411, но было довольно просто, чтобы получить простой мигань на моих 2 досках с F405.

victor_pv
Пн июня 01, 2015, 16:47
Вам нужно было что -то изменить в файлах основных файлов F4?
Если это так, если бы вы могли опубликовать свои изменения, я могу применить их к местной копии и перейти оттуда.

Martinayotte
Пн июня 01, 2015, 17:50
@Victor, для Blinker, он не изменил ничего особенного, за исключением загрузки, используя dfu-util.
Я только что попробую ваш SDFAT, и, похоже, он также застрял во время инициирования, как и в случае с предыдущей SD LIB, поэтому я предполагаю, что это то, что я не преуспел в портировании/копировании файлов SPI из F1 в F4.
@Roger, так что, так как я не хочу загрязнять свой GitHub незаконченной работой (с большим количеством взломов, чтобы получить его как можно скорее, такой избыточный #include/ #define добавлен), мне лучше просто загрузить zip -файл корень моего GitHub, https: // github.com/martinayotte/arduino ... п?RAW = TRUE.
(Кстати, как вы предупредили меня раньше, мне пришлось перенести F1 немного потока/печати в F4)
Заранее спасибо за любую помощь,

Sheepdoll
Вт, 02 июня 2015 г., 12:12 утра
Я провел большую часть дня, создавая вариант для ядра F401. Попытка обезьяна.

Это больше, чем изменение номеров PIN -код на макросах.

Используя Cubemx, мне удалось отобразить штифты ядров и выяснить, что отображение альтернативной функции несколько отличается от. Я нашел таблицу 9 в таблице данных F104, но не в каком -либо данных F103. Я искал, чтобы найти 9.4.2 AFIO_MAPR Эквивалент в ссылках F401.

Поиск имен макросов в арекваде они просто кодируют номера. В папке F103 в папке F103 ядро. Все они жестко закодированы для F103. Мой план - определить имена макросов F104 в плате.H файл, как другие, просто будут проигнорированы, если они не используются.

HAL генерирует материал из куба не является человеком читаемой.

Это работающий F103 Nucleo init void boardInit(void) { afio_cfg_debug_ports(AFIO_DEBUG_SW_ONLY); // relase PC3 and PC5 on nucleo afio_remap(AFIO_REMAP_USART3_PARTIAL); // remap Serial2(USART3)PB10/PB11 // to PC10/PC11 -> don't forget to insert into gpio.h: // AFIO_REMAP_USART3_PARTIAL = AFIO_MAPR_USART3_REMAP_PARTIAL afio_remap(AFIO_REMAP_TIM2_FULL); // better PWM compatibility afio_remap(AFIO_REMAP_TIM3_PARTIAL);// better PWM compatibility }

Rogerclark
Вт, 02 июня 2015 г., 12:30 утра
Я не уверен, нужно ли вам использовать Afremap, но это возможно

В любом случае на 103, если вы посмотрите на доску/доску.CPP (в любом из вариантов)

У них есть перечисление для обработки номеров порта / выводов
/* Pin aliases: these give the GPIO port/bit for each pin as an * enum. These are optional, but recommended. They make it easier to * write code using low-level GPIO functionality. */ enum { PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15, PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15, PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15, PD0,PD1,PD2 };/* Note PB2 is skipped as this is Boot1 and is not going to be much use as its likely to be pulled permanently low */

Sheepdoll
Вт, 02 июня 2015 г., 8:09
Rogerclark написал:Я не уверен, нужно ли вам использовать Afremap, но это возможно

Rogerclark
Вт, 02 июня 2015 г., 8:20 утра
Теоретически, ядры выглядят хорошо, так как Arduino PIN -код совместимы, а Stlink дает виртуальный последовательный, а также загрузки Stlink

Однако, глядя на количество хлопот, которые Матиас испытывал со своим ядром F103RB, и вы, кажется, испытываете с вашим ядром F4, это делает мое открытие F407 выглядеть как Childsplay ;-)

Я хотел бы проводить больше времени на F4, но у нас все еще есть некоторые основные проблемы с такими векторными таблицами прерываний :-(

Но я думаю, что в конце концов я дойду до этого.

Martinayotte
Солнце 07 июня 2015 г., 15:26
Поскольку мои попытки заставить Libs SD или SDFAT работать с моим NetDuino2plus, я решил исследовать саму SPI LIB. Вместо того, чтобы пытаться сделать работу на карте MicroSD, подкрепленной на SPI3, я попытался инициализировать SPI2, который доступен на заголовках, и я подключил к нему свою плату логики FX2: SPI2 вообще не имеет никакой деятельности (кроме пинков. инициализированный) ! :(
Итак, Spi lib на самом деле, где я должен продолжить расследование ... :?

РЕДАКТИРОВАТЬ: вместо этого я пытаюсь использовать Hardwarespi в Libmaple как автономный с логическим захватом FX2, и он работает ! :)
Итак, я должен выяснить различия между обеими LIBS (или пытаться заставить SD работать с этим Hardwarespi) ...

Rogerclark
Солнце 07 июня 2015 8:56 вечера
Из того, что я помню, все, что я сделал, это взял Hardwarespi и переименован в Spiclass.

Но это аппаратный SPI для F1, и могут быть различия между F1 и F4

Ваш лучший вариант может быть в том, что я сделал, и просто перепрофилировать / переименовать класс Adplaware SPI (но с помощью версии F4)

Ахулл
Солнце 07 июня 2015 11:43
Па написал:Иисус ... Кто -нибудь из вас когда -либо делал реальное кодирование ?

Все, что вы когда -либо узнали с Arduino, это копия вставки, не под вами, ребята, полностью в темноте ... Просто прочитайте проклятую Atasheet STMF4 !

Mrburnette
Пн июня 08, 2015 12:20 утра
Кто такой "Пау" ? не найдено в списке участников.

Это новый вид спама... Они бегают, говорят вам, что вы не можете кодировать, бросают таблицу и убегают!

Роджер, похоже, в проводе экрана есть отверстие.
... Кто -нибудь из вас когда -либо делал... Покончил английский язык... Даже трансляция Google не допустит этой ошибки.

Может быть, новые участники только по приглашению? Да, глупо, я знаю... Я думаю, именно поэтому у машин есть рога, чтобы вы могли привлечь внимание водителя, когда махаете средней цифрой.


Луча

администратор
Пн июня 08, 2015 12:28
Я не уверен, что происходит.

Я расследуюсь

администратор
Пн июня 08, 2015 12:31
Это проблема настроек

Похоже, это возможно публиковать без регистрации, просто ответив на вопрос.

Это кажется большим недостатком в PHPBB, который я удивляю, - это установка по умолчанию !

Мне определенно нужно отключить его.

Mrburnette
Пн июня 08, 2015 12:36 утра
Это кажется большим недостатком в PHPBB, который я удивляю, - это установка по умолчанию ! Ах, это ты.С. Настройка безопасности правительства по умолчанию ... : D

Луча

Martinayotte
Пн июня 08, 2015 12:47
@Pau, я думаю, ты просто угнал мою собственную ветку ! Если у вас уже есть библиотека SD -карт, работающую на F4 в соответствии с Adruidno IDE, просто предоставьте свои источники (и убедитесь, что она работает для нас в соответствии с STM32Duino) !!! :зло:

@Roger, у меня есть Hardwarespi, скомпилированный с Plain SD, но, к сожалению, мне не повезло в наши дни: он снова выйдет из строя в CardCommand (cmd0) ! :(
(Кстати, глядя, есть ли различия для Hardwarespi между F1 и F4, я вижу, что в F1 нет такого, так что это немного сложно сравнить ...

У меня не так много подсказок: я думаю, что мне придется попробовать это под моим Maplemini, снова подключите свою логику FX2 и сравнить его с F4 ... :(

Rogerclark
Пн июня 08, 2015 1:02
Re: pau


ХОРОШО. Я думаю, что исправил эту проблему.

Я не совсем уверен, как, но я установил форум, поэтому некоторые разделы (в подразделе под разделом досок) назначили «стандартный доступ» гостям.
Что означало, что они могли опубликовать.
Я не уверен, когда это произошло, вероятно, некоторое время назад, как я помню, заметил, что кнопка «Ответ» была видна, когда я не вошел в систему, но в то время я был занят и игнорировал и проигнорировал.

Так что я не думаю, что это был на самом деле взлом.

В любом случае, Пау был гостем, который, очевидно, знает, как ответить на вопросы об arduino.

Я посмотрю, смогу ли я получить IP -адрес PAU и получить их местоположение.

Rogerclark
Пн июня 08, 2015 1:20
ХОРОШО

Я скачал веб -журналы, и я изолировал весь IP -адрес любого, кто разместил в этой ветке.

Мне просто нужно пересечь ссылку на известных пользователей, а затем у нас есть IP -адрес PAU, а также много отличной информации, которую их браузер поделился на сервере ;-)

Rogerclark
Пн июня 08, 2015 1:24
ХОРОШО

Я думаю, что я изолировал IP -адрес, который опубликовал.

Пожалуйста, напишите мне, если хотите.

Rogerclark
Пн июня 08, 2015, 3:17
Мартин,

Вы можете получить оригинальный аппаратный файл SPI из моего репо, просмотрев второй коммит, когда я изначально добавил файлы.

КСТАТИ. Я не уверен, что это проблема, которая у вас возникает, но она выглядит так, что NSS (выбор аппаратного чипа) не работает, и что хуже, так это то, что он, кажется, переопределяет конфигурацию GPIO для PA4 (на F103) для использования, как Чип выберите)

Я помню, что это известная проблема, что NSS не работала с Libmaple, но большинству людей было все равно, поскольку они не хотели ограничивать использование PA4 в качестве SS (он же CS).
В AVR нет эквивалента NSS, и CS всегда выполняется с использованием GPIO от LIB, его не обрабатывают Spi Lib, это обычно обрабатывается LIBS, которые используют SPI (или иногда он только что обрабатывается эскизом).

В любом случае, если вы используете PA4 (или эквивалентный штифт на F4, - я не уверен, какой штифт NSS на F4), вы можете попробовать просто натянуть CS навсегда или использовать другой PIN -код.

Я обнаружил, что SD Lib работает нормально, когда я переместил булавку (и когда я навсегда тяну ее навсегда)

Martinayotte
Пн июня 08, 2015, 22:02
Привет, Роджер,
Вот и все, хотя я не совсем понимаю проблему NSS.
Я думал, что NSS и CS были тем же пиндом, поэтому чтение другого потока и ваш ответ выше, я решил изменить #Define Board_spi3b_nss_pin в Discovery_f4.H к другому PIN -коду, чем фактический CS на NetDuino, и SD Lib начинает работать с тех пор, как я сам инициализировал PIN -код CS.
Итак, теперь это шаг вперед ! :)
Следующая задача состоит в том, чтобы попробовать ENC28J60 с тем же методом и попытаться выполнить сеть. ;)

Rogerclark
Пн июня 08, 2015, 22:32
Мартин

Это звучит как одна и та же ошибка на обоих процессорах

Я разберусь на F1 и сообщу вам, что нужно изменить на F4

Martinayotte
Пн июня 08, 2015, 23:10
Привет, Роджер,
Я предполагаю, что реальное исправление должно быть сделано на самом низком уровне, чтобы избежать необходимости выполнять pinmode () на всех библиотеках, которые вызывают Begin ().
Итак, может быть, это должно быть сделано в самом начале () ?

Rogerclark
Пн, 08 июня 2015 11:39
Мартин

Да. Я намеревался поместить исправление в SPI.начинать()

На самом деле я мог бы поместить его в функции низкого уровня SPI init, называемые Begin (), но мне нужно выработать лучшее место, чтобы поместить это, чтобы он не продолжал вызывать несколько раз в процессе настройки

Некоторые обновления для F4

F407Vet6 & f407zet6