[libmaple] sdio

Стивестронг
Солнце 18 июня 2017 г., 17:20
Всем привет,

Наконец -то мне удалось принести файлы SDIO в приемлемой форме, которая будет опубликована.

Он работает с шириной 24 МГц и шиной 4 бит и протестированным Только для общей платы F407VET6.

Я совершил 2 файла в Core Directory Libmaple и 2 файла в новый SDIO LIB в рамках STM32F4/Libraries.

Использование:
- получить мастер -филиал от моего репо
- получить https: // github.com/greiman/sdfat
- вставить в Линия 164 SdfatConfig: #elif defined(__STM32F4__) #define ENABLE_SDIO_CLASS 1

Rogerclark
Солнце 18 июня 2017 г. 9:31 вечера
Спасибо

Когда у меня будет достаточно времени, я притяну вам изменения F4

Акронис
Пн 19 июня 2017 г. 8:24
Привет. Будет ли это работать на версии 1.8.2 или 1.8.3 ?

Стивестронг
Пн 19 июня 2017 г. 8:26 утра
Я проверил это с 1.6.12 - Я сохранил эту версию на основе «Никогда не менять систему бега» - но я предполагаю, что она должна работать и с последними версиями.
Если нет, пожалуйста, опубликуйте здесь какие -нибудь проблемы.

Акронис
Пн 19 июня 2017 г. 8:29 утра
ХОРОШО.
Большое спасибо за вашу работу !

Стивестронг
Пн 19 июня 2017 г. 9:13 утра
[Rogerclark - Солнце 18 июня 2017 г. 9:31 вечера] - Спасибо

Когда у меня будет достаточно времени, я притяну вам изменения F4
Я должен сначала объединить последние коммиты от вашего хозяина до моего филиала, я надеюсь, что я справился с этим сегодня вечером.
Я дам тебе знать.

Rogerclark
Пн 19 июня 2017 г. 10:37 утра
[Стивестронг - Пн 19 июня 2017 г. 9:13] -
[Rogerclark - Солнце 18 июня 2017 г. 9:31 вечера] - Спасибо

Когда у меня будет достаточно времени, я притяну вам изменения F4
Я должен сначала объединить последние коммиты от вашего хозяина до моего филиала, я надеюсь, что я справился с этим сегодня вечером.
Я дам тебе знать.
ХОРОШО

Я думаю, что это может быть нормально, не делая этого.

Но не спешите, у меня так много других вещей, которые мне нужно сделать.

Стивестронг
Пн 19 июня 2017 г., 17:50
Я протестировал набросок для чтения/письма/CRC от Daniel (файл тестирования 102.4 МБ), и это результат: Use a freshly formatted SD for best performance. Type any character to start ################################################# Opening the read file.. Opening the write file.. Reading and Writing.. ************************************************* Done in 24063 msecs ************************************************* Running CRC calculations... File in CRC: 22BCDBEC File out CRC: 22BCDBEC ************************************************* Done in 70620 msecs Type any character to start ################################################# Opening the read file.. Opening the write file.. Reading and Writing.. ************************************************* Done in 34167 msecs ************************************************* Running CRC calculations... File in CRC: 22BCDBEC File out CRC: 22BCDBEC ************************************************* Done in 70937 msecs Type any character to start ################################################# Opening the read file.. Opening the write file.. Reading and Writing.. ************************************************* Done in 37755 msecs ************************************************* Running CRC calculations... File in CRC: 22BCDBEC File out CRC: 22BCDBEC ************************************************* Done in 70910 msecs Type any character to start ################################################# Opening the read file.. Opening the write file.. Reading and Writing.. ************************************************* Done in 36741 msecs ************************************************* Running CRC calculations... File in CRC: 22BCDBEC File out CRC: 22BCDBEC ************************************************* Done in 70734 msecs Type any character to start

Даниэфф
Ср 21 июня 2017 г. 5:03
100 МБ F407
Я получаю со своим:
Use a freshly formatted SD for best performance. Type any character to start ************************************************* Opening the read file.. Opening the write file.. Reading and Writing.. ************************************************* Done in 61039 msecs ************************************************* Running CRC calculations... File in CRC: DE9D6BE7 File out CRC: DE9D6BE7 ************************************************* Done in 71259 msecsType any character to start ************************************************* Opening the read file.. Opening the write file.. Reading and Writing.. ************************************************* Done in 60230 msecs ************************************************* Running CRC calculations... File in CRC: DE9D6BE7 File out CRC: DE9D6BE7 ************************************************* Done in 71251 msecsType any character to start ************************************************* Opening the read file.. Opening the write file.. Reading and Writing..

Стивестронг
Ср 21 июня 2017 г. 6:49
Хорошо, так что вы можете воспроизвести мою проблему.
Для ядра Libmaple первое чтение и запись занимает гораздо меньше времени (34231 MSEC), чем записывает следующее чтение (58237 MSECS).
Ваше ядро, кажется, не показывает эту проблему.

Хм.

Пито
Ср 21 июня 2017 г. 7:11
Что различия связаны с задержкой записи..
SDCARD - это не рамдиск, он живет своей жизнью. Когда рука (или ускоренная 8051) внутри SDCARD решает сделать какое -то домашнее хозяйство, ваше время записи будет длиннее.

Стивестронг
Ср 21 июня 2017 г., 19:02
Когда я активировал выходной сигнал отладки, я увидел, что первый прогон включает в себя гораздо меньше блоков, чем следующие, которые снова сопоставимы.

Так что это не разные задержки записи.

vitor_boss
Чт 22 июня 2017 г. 16:39
[Даниэфф - Ср 21 июня 2017 г. 5:03] - 100 МБ F407
Я получаю со своим:
Use a freshly formatted SD for best performance. Type any character to start ************************************************* Opening the read file.. Opening the write file.. Reading and Writing.. ************************************************* Done in 61039 msecs ************************************************* Running CRC calculations... File in CRC: DE9D6BE7 File out CRC: DE9D6BE7 ************************************************* Done in 71259 msecsType any character to start ************************************************* Opening the read file.. Opening the write file.. Reading and Writing.. ************************************************* Done in 60230 msecs ************************************************* Running CRC calculations... File in CRC: DE9D6BE7 File out CRC: DE9D6BE7 ************************************************* Done in 71251 msecsType any character to start ************************************************* Opening the read file.. Opening the write file.. Reading and Writing..

Стивестронг
Чт 22 июня 2017 г., 17:49
Витор,
это SDIO, а не SPI.
И более высокие частоты, чем 37 МГц для SDIO (проверено PITO) больше не работают надежно. Это ограничение HW чипа F4.

vitor_boss
Пт 23 июня 2017 г. 14:20
[Стивестронг - Чт 22 июня 2017 г., 17:49] - Витор,
это SDIO, а не SPI.
И более высокие частоты, чем 37 МГц для SDIO (проверено PITO) больше не работают надежно. Это ограничение HW чипа F4.
while ( i-- ) { // do 8 byte copies, is much faster than single byte copy *dst++ = *src++; *dst++ = *src++; *dst++ = *src++; *dst++ = *src++; *dst++ = *src++; *dst++ = *src++; *dst++ = *src++; *dst++ = *src++; }

Стивестронг
Пт 23 июня 2017 г. 15:37
[vitor_boss - Пт 23 июня 2017 г. 14:20] - Не возможно работать с полным регистром (32 бит) на этих линиях?
Не в этом случае.
Копирование по байтовому выполняется, когда пропущенный буферный адрес не выровнен Word (UINT32_T).

Акронис
Пт 30 июня 2017 г., 7:28 утра
#include #include #include "SdioF4.h" SdFile myFile; SdFat sd; void setup(void) { Serial.begin(115200); //while ( !Serial.isConnected() ) ; if (!myFile.open("test.txt", O_RDWR | O_CREAT | O_AT_END)) { sd.errorHalt("Error open file !"); } else { myFile.print("TEST"); myFile.close(); } } void loop(void) { // }

Стивестронг
Пт 30 июня 2017 г. 7:56 утра
Это пример наброска для тестирования STM32F4 SDIO.

Вам все еще нужно вставить в Линия 164 SdfatConfig: #elif defined(__STM32F4__) #define ENABLE_SDIO_CLASS 1

Акронис
Пт 30 июня 2017 г. 8:28 утра
SdfatConfig.час
(7.03 KIB) скачано 174 раза

Акронис
Пт 30 июня 2017 г. 9:14
Это сработало.
Спасибо

ZMEMW16
Сб, 1 июля 2017 г. 14:59
i7 Джесси 8.8, официальный Arduino 1.8.3 64 -битный, последний generic_f4, Directory SDIO существует : D
Использование демонстрационного кода, говорится "/home/stephen/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++" -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_f407v -DVECT_TAB_BASE -DERROR_LED_PORT=GPIOA -DERROR_LED_PIN=7 -w -x c++ -E -CC -mcpu=cortex-m4 -DF_CPU=168000000L -DARDUINO=10803 -DARDUINO_STM32GenericF407VET6 -DARDUINO_ARCH_STM32F4 -mthumb -DSTM32_HIGH_DENSITY -DSTM32F4 -DBOARD_generic_f407v -DUSB_NC -mthumb -D__STM32F4__ "-I/home/stephen/sketchbook/hardware/ss-Arduino_STM32/STM32F4/system/libmaple" "-I/home/stephen/sketchbook/hardware/ss-Arduino_STM32/STM32F4/cores/maple/libmaple/usbF4" "-I/home/stephen/sketchbook/hardware/ss-Arduino_STM32/STM32F4/cores/maple" "-I/home/stephen/sketchbook/hardware/ss-Arduino_STM32/STM32F4/variants/generic_f407v" "-I/home/stephen/sketchbook/hardware/ss-Arduino_STM32/STM32F4/libraries/SDIO" "-I/home/stephen/sketchbook/libraries/SdFat/src" "-I/home/stephen/sketchbook/hardware/ss-Arduino_STM32/STM32F4/libraries/SPI/src" "/home/stephen/sketchbook/hardware/ss-Arduino_STM32/STM32F4/libraries/SDIO/SdioF4.cpp" -o "/tmp/arduino_build_711891/preproc/ctags_target_for_gcc_minus_e.cpp" /home/stephen/sketchbook/hardware/ss-Arduino_STM32/STM32F4/libraries/SDIO/SdioF4.cpp:22:27: fatal error: libmaple\sdio.h: No such file or directory #include

Стивестронг
Солнце 2 июля 2017 г. 6:58 утра
Я думаю, что в компиляторе отсутствует файл "sdio.H "под \ core \ maple \ libmaple \.
https: // github.com/stevstrong/arduino_s ... E/Libmaple
Убедитесь, что у вас есть эта папка и файлы.

ZMEMW16
Солнце 2 июля 2017 г. 9:55 утра
Я знаю, что сожалею об этом, ss -arduino_stm32 -это 'ln -s'
Я думаю, что это не должно иметь никакого значения.
Я все равно изменил это, теперь это каталог.
~/sketchbook/hardware/ss-Arduino_STM32/STM32F4/cores/maple/libmaple$ ll sdi* -rw-r--r-- 1 stephen stephen 5384 Jun 20 20:03 sdio.c -rw-r--r-- 1 stephen stephen 13451 Jun 20 20:03 sdio.h

Стивестронг
Солнце 2 июля 2017 г. 10:17 утра
HM, вы на Linux, и я не могу вам там помочь (я работаю исключительно на Win Machines).

Поскольку путь «/cores/maple» включен в процесс компиляции/сборки, теоретически он сможет включить любой файл из подкаталории "/libmaple/", когда имеется абсолютная ссылка на них...

Это может быть "/" против. "\" проблема?

ZMEMW16
Солнце 2 июля 2017 г. 10:52 утра
while (1) {find_wall; bash_head;} : шок:

Другой, с которым я развлекаюсь, - это i2cscanner, (но это сработало).H не найден
Только что попробовал с вашим как единственный каталог arduino_stm, все же то же самое
Свежая копия подходит

Любопытно, что только файлы sdio имеют обратную черту, другие библиотеки.
30 минут спустя, есть много файлов, связанных с USB, полными маленьких блинчиков

######################################################################## вместе #########
слегка сходил с ума от рекурсивной находки/замены *.CPP, *.c, *.h, *.html, makefile, doxyfile
Только действительно видел, как ваш режиме SDIO изменился.

Кто -нибудь, я обнаружил, что в Chisricro Repo, Board as Black F407V.Ино

оно работает : D : D

Стивен

Пито
Солнце 2 июля 2017 г. 11:16 утра
SDIO.CPP ?

ZMEMW16
Солнце 2 июля 2017 г. 13:02
Да, это
Libmaple/Sdio.час
Libmaple/DMA.час

Я думаю, что я был удивлен, я думаю, в каталоге ядра Libmaple ничего не

Наконец он собирает и ссылки, это мой эскиз Blink_millis
I2cscanner по -прежнему не может найти проволоку.час

SRP

Стивестронг
Солнце 2 июля 2017 г. 13:14
Я не уверен, что Wire LIB реализован вообще для F4, по крайней мере, в моей общей ветви F4, я не могу его найти.
Вы можете скопировать/вставить из F1 Lib Directory и тест, возможно, это работает из коробки : шок:
Если он не работает, откройте отдельный поток для этого.

ZMEMW16
Солнце 2 июля 2017 г. 13:21
Я вполне могу подумать о другой коробке (HAL), CM, скорее всего, является

не реализовано, безусловно, будет объяснением. :(
Стивен

ZMEMW16
Солнце 2 июля 2017 г. 14:13
Был бы вариант для вас ? прикрепил
ss-arduino_stm32-моя версия отредактированного Backslash.

Стивен

Стивестронг
Солнце 2 июля 2017 г. 14:59
Стивен, спасибо, я могу просматривать все обратные склады с помощью NP++.
Замена обратной сшивки в «SDIOF4.CPP "Решите вашу проблему?
Имеет смысл заменить все остальные включать в себя обратную черту пути в репо?

ZMEMW16
Солнце 2 июля 2017 г. 15:20
Частично он затем упал практически на все связанные с USB, включающие
Этой различия должно быть достаточно, чтобы дать всем, что я изменил; Вполне может быть больше.
В режиме Libmaple я думаю, Sdio.[cpp | h] это было.

Имеет ли это смысл или нет, на самом деле зависит от того, как Windows ведет себя с перепродажными чертами.
Как показали большинство линий Grep'd '#include', это может быть гораздо более терпимым, чем Linux !
Не часто есть такой позитив для Windows.

Стивен

Стивестронг
Втюж 04 июля 2017 г. 8:34 утра
Я заменяю все оставшиеся бэк -хлеб, когда у меня будет время.

Стивестронг
Втюж 04 июля 2017 г., 17:34
Я сделал исправление, где все обратные склады заменяются чертами. Я думаю, что теперь он должен компилировать на Linux.
Пожалуйста, возьмите главную филиал, общий больше не существует.

Теперь я знаю, почему я включил Backslashes: потому что GitHub для Windows также использует его:
github_backslashes.jpg
github_backslashes.JPG (115.64 киб) просмотрено 280 раз

ZMEMW16
Вт, 04 июля 2017 г. 8:08 вечера
Пожалуйста, возьмите главную филиал, общий больше не существует. да, заметил, что : D
Потягивая это сейчас

Я использую черный F407VE и объявляю generic_f407v как тип платы.

Все наброски, которые я пробовал (Sdiodemo один), сообщают о SDFAT.H не найден.
Я упоминаю об этом, так как это единственный, кто явно объявил SDIOF4 //#include #include

Стивестронг
Вт, 04 июля 2017 г., 21:08
Самый первый пост содержит все детали, пожалуйста, проверьте это еще раз.

Я не знаю, под Linux, как Arduino IDE обрабатывает пути, папка /библиотеки должна быть включена там, так что SDFAT.H найдено.

Пример наброска находится в конце страницы 2.

ZMEMW16
Вт
Nb The Fine Manual для SDFAT-бета, в частности, где скопировать каталог SDFAT.

Теперь компилируется, я отредактировал, чтобы использовать Serialdev из определения, легче изменить только один
Запуск со сцеплением я попробовал с Serial, Serial1, но только с Serialusb я получил любой выход.
Очевидно, это также не нравится мой Kingston SDC4/4GB SDCARD size,write,read bytes,KB/sec,KB/sec 512,145.39,680.11 1024,227.14,839.41 2048,344.94,1623.80 4096,file.write returned: 4294967295 error: write failed SD errorCode: 0X60,0X0

Стивестронг
Ср. 5 июля 2017 г. 9:03 утра
Каждый запуск заканчивается с одним и тем же сообщением об ошибке каждый раз при одном и том же размере буфера?
Если это так, то это может быть проблема с картой, возможно, она не поддерживает объем передачи данных сразу.

Пито
Ср. 5 июля 2017 г. 9:11
Попробуйте часы SDIO 12 МГц с картой CL4..
Pll_q установлен на 14. Вам понадобится serial1, так как USB перестанет работать.

Стивестронг
Ср. 5 июля 2017 г. 9:26 утра
[Пито - Ср. 5 июля 2017 г. 9:11]] - Попробуйте часы SDIO 12 МГц с картой CL4..
Pll_q установлен на 14. Вам понадобится serial1, так как USB перестанет работать.
Прежде чем сделать это, я должен быть уверен, что это действительно частота, которая вызывает проблему, а не какую-либо другую связанную с картой.
Если буфер 2KB работает OK в 24 мГц, почему буферный буфер 4 КБ тоже тоже не должен работать?

Пито
Ср. 5 июля 2017 г. 9:32
Если буфер 2KB работает OK в 24 мГц, почему буферный буфер 4 КБ тоже тоже не должен работать? Кто говорит, что?
Также не используйте SDFAT-бета, но последний мастер SDFAT https: // github.com/greiman/sdfat
Возможно, есть исправление (см. Мой пост), уже реализованного как у SDFAT проблемы с файлом.написать () с размерами буфера выше 128 КБ.

Стивестронг
Ср. 5 июля 2017 г. 9:52 утра
Пито, как вы можете видеть в моем первом посте, я имею в виду SDFAT LIB.

Вы предложили уменьшить частоту SDIO для карт CL4. И я не вижу (пока) ни одной причины для этого, потому что из журнала Стивена, очевидно, буфер 2KB работает хорошо при 24 МГц, он генерирует ошибку 0x60 (SD_CARD_ERROR_DMA) при использовании буфера 4 КБ. Вот почему я попросил дополнительную информацию от Стивена, чтобы понять и локализовать проблему.

Пито
Ср. 5 июля 2017 г. 9:57
Ах, хорошо, как я не смог найти никакой информации о выпуске размера буфера 2K/4K в приведенных выше сообщениях.. :?
Итак, вы ссылаетесь на это, правильно? 2048,344.94,1623.80 4096,file.write returned: 4294967295 error: write failed SD errorCode: 0X60,0X0

ZMEMW16
Ср. 5 июля 2017 г. 11:20 утра
я думаю, что сон вмешался около 0400

Стив - О, спасибо за это и кого -нибудь еще

Какая дополнительная информация вы хотите от меня ?
Изменил карту с от 4 ГБ на 8 ГБ, помеченной Ultra, 2 Color, Red & серебро, с 1 внутри u
Как высоко ты хочешь пойти, попробуй 16G, 32G ? пара или три из них.
sdformat - если это официальный, я не думаю, что это порт Linux, dd +fdisk +mkfs.VFAT - лучшее, что у меня есть.
Типичный, Win+Mac
Я пойду искать, хотя.
Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,321.57,1078.55 1024,738.05,2124.35 2048,1250.39,3516.35 4096,2070.08,5286.28 8192,2439.10,5278.28 16384,2424.50,5270.61 32768,2356.58,5282.14 totalMicros 79140057 yieldMicros 46090617 yieldCalls 67753 yieldMaxUsec 193440 kHzSdClk 24000 Done

Стивестронг
Ср. 5 июля 2017 г. 11:47
@Стивен,
Я хотел знать, будет ли последовательный тест с той же картой, которая показала ошибку, также покажет аналогичную/идентичную ошибку на следующем тесте.
[ZMEMW16 - Ср. 5 июля 2017 г. 11:20] - в FSMC.H я вижу ../Примечания/FSMC.TXT для получения дополнительной информации '
Это подвига из оригинальных источников или ваших ?
Это только часть оригинального источника.
Дополнительные поддерживаемые функции и состояние разработки можно найти здесь: ViewTopic.PHP?F = 39&T = 1976
(Да, FSMC для 16 -битной параллельной ЖКД уже работает ;) )

Официальный (Роджер) репо также почти обновлен с моим единственным.

@Pito
[Пито - Ср. 05 июля 2017 г. 9:57 AM] - и также установите силу выходного драйвера SDIO GPIO на средний!
Нет, этот либмапл Sdio Lib Works (по крайней мере, для моей карты CL10 на общей черной плате F407VET) @24 МГц, только если выводы SDIO установлены на вывод PP + PU на высокой (50 МГц) частоте.
Я попробовал со средней силой и получил ошибки на самом первом доступе к карте после переключения SDIO CLK с 400 кГц на 24 МГц... Пито написал:Также Serial1 - это то, что вам понадобится, определенно..

Пито
Ср. 5 июля 2017 г. 13:15
Нет, этот либмапл Sdio Lib Works (по крайней мере, для моей карты CL10 на общей черной плате F407VET) @24 МГц, только если выводы SDIO установлены на вывод PP + PU на высокой (50 МГц) частоте. Интересно, что все мои карты CL10 работают 24-44 МГц SDIO только со средним (Black 407Zet, STM32GENERIER) : D
Так что, возможно, где -то в ядрах есть тонкая разница в ядрах Card :)

Стивестронг
Ср. 5 июля 2017 г. 13:23
[Пито - Ср. 5 июля 2017 г. 13:15] - Так что, возможно, где -то в ядрах есть тонкая разница в ядрах Card :)
Я бы предпочел подумать о любой разнице в настройках регистра F4 или в любой аппаратной проблеме, развязка источника питания.
Получит ли дамп регистрации, чтобы выяснить различия? Есть ли в наличии какого-либо регенерального эскиза?

ZMEMW16
Ср. 5 июля 2017 г. 13:25
Я вернулся на карту 4 ГБ, после каждого из сборов, на удивление, есть сброс прессы, на удивление, кажется, работает после разминки : o Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,149.78,695.32 1024,227.49,840.88 2048,348.16,1633.62 4096,file.write returned: 4294967295 Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,145.10,678.64 1024,224.82,847.31 2048,352.94,1664.60 4096,file.write returned: 4294967295 Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,147.60,695.28 1024,231.63,872.22 2048,369.86,1719.74 4096,511.46,3556.26 8192,504.41,3560.83 16384,504.36,3562.77 32768,504.39,3569.58 totalMicros 218005614 yieldMicros 197107630 yieldCalls 60881 yieldMaxUsec 138343 kHzSdClk 24000 Done Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,147.33,695.80 1024,231.72,866.54 2048,369.51,1732.84 4096,511.83,3561.75 8192,504.74,3565.14 16384,504.56,3563.90 32768,504.45,3560.40 totalMicros 218100065 yieldMicros 200466135 yieldCalls 60934 yieldMaxUsec 146788 kHzSdClk 24000 Done Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,147.35,694.99 1024,231.79,867.61 2048,369.98,1727.27 4096,512.14,3564.36 8192,504.50,3568.53 16384,504.86,3557.19 32768,504.43,3563.17 totalMicros 218056619 yieldMicros 200422778 yieldCalls 60902 yieldMaxUsec 136086 kHzSdClk 24000 Done Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,147.39,695.88 1024,231.84,865.06 2048,369.89,1729.93 4096,512.36,3560.81 8192,504.73,3560.76 16384,504.18,3524.25 32768,504.84,3522.68 totalMicros 218097836 yieldMicros 200400149 yieldCalls 60909 yieldMaxUsec 145093 kHzSdClk 24000 Done

Пито
Ср. 5 июля 2017 г. 13:40
[Стивестронг - Ср. 5 июля 2017 г. 13:23] -
[Пито - Ср. 5 июля 2017 г. 13:15] - Так что, возможно, где -то в ядрах есть тонкая разница в ядрах Card :)
Я бы предпочел подумать о любой разнице в настройках регистра F4 или в любой аппаратной проблеме, развязка источника питания.
Получит ли дамп регистрации, чтобы выяснить различия? Есть ли в наличии какого-либо регенерального эскиза?
Я думаю, что доски Black 407Vet и 407Zet от The HW Point почти идентичны, на моей плате я заменил 100 -нф -карт, развязывающий конденсатор, на керамическом многослое 2x10U без видимого удара.
Регистры F4 устанавливаются SDCARD Inits (), поэтому DIFF должен быть где -то в источниках.. Или вы имеете в виду, что есть разница в F4VET VS. F4Zet Silicon ?

@stephen: За исключением вашей температурной зависимости, мне кажется, что ваша скорость записи подозрительно низкая - должна быть близка к скорости чтения.

Стивестронг
Ср. 5 июля 2017 г. 13:49
[ZMEMW16 - Ср. 5 июля 2017 г. 13:25] - Я вернулся на карту 4 ГБ, после каждого из сборов, на удивление, есть сброс прессы, на удивление, кажется, работает после разминки : o
Это может быть проблема стабильности питания?
Я питаю свою доску над USB, через USB-хаб, я иногда использую для USB-хаба. Дополнительный адаптер питания.
Пито написал:Регистры F4 устанавливаются SDCARD Inits (), поэтому DIFF должен быть где -то в источниках..

Пито
Ср. 05 июля 2017 г. 14:01
Но это также может быть разницей между досками, так как ваша доска не является «общим черным F4VET». Разница только в чипе или есть другие различия? Единственная разница- это чип и, возможно, +/- 1-3 см в длине сигнальных проводов SDIO.
Тот же поставщик, похожий макет..
Моя доска: http: // www.STM32duino.com/viewtopic.PHP ... = 30#p22456

PS: Почему скорость записи в вышеупомянутом тесте составляет 1/7 скорости чтения? 4096,512.36,3560.81 8192,504.73,3560.76 16384,504.18,3524.25 32768,504.84,3522.68

Стивестронг
Ср. 05 июля 2017 г. 14:21
[Пито - Ср. 5 июля 2017 г. 14:01] - PS: Почему скорость записи в вышеупомянутом тесте составляет 1/7 скорости чтения? 4096,512.36,3560.81 8192,504.73,3560.76 16384,504.18,3524.25 32768,504.84,3522.68

ZMEMW16
Ср. 5 июля 2017 г. 15:33
На моем центре я заменил Wimpy, поставляемый Walwart на 5V 4A, способный один
Хотя почти все свисает с концентратора, OLS, 2x USB -сериал, Stlink и Poard.

Стивен

Стивестронг
Ср. 5 июля 2017 г. 15:48
Я обновил первый пост с двумя вложениями, одним примером INO и соответствующим файлом bin.
Результаты сегодня аналогичны тому, что я измерил это время (карта Sandisk Ultra 16 ГБ CL10) Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,352.13,1855.96 1024,615.75,2573.66 2048,1273.42,3993.01 4096,3232.87,6568.02 8192,5171.66,8589.67 16384,6754.45,9880.24 32768,8231.03,10657.71 totalMicros 64281101 yieldMicros 44535132 yieldCalls 53279 yieldMaxUsec 134928 kHzSdClk 24000 Done Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,430.66,2197.68 1024,684.68,2444.70 2048,1424.19,4174.99 4096,3339.52,6118.28 8192,5012.46,8629.27 16384,6870.03,9874.56 32768,8144.14,10624.18 totalMicros 57296702 yieldMicros 38051319 yieldCalls 51383 yieldMaxUsec 116471 kHzSdClk 24000 Done

Пито
Ср. 5 июля 2017 г., 17:36
Я решил рискнуть :) И я попробовал с вашим двоичным знаком на Black F407Zet6 (карты не отформатированы до теста):
Samsung Evo CL10 8GB SdFatSdio uses a traditional DMA SDIO implementation. Type any character to start. size,write,read bytes,KB/sec,KB/sec 512,268.75,1186.61 1024,578.31,2013.27 2048,902.17,3499.82 4096,2799.68,5325.05 8192,4729.74,7705.77 16384,7165.14,9325.13 32768,8636.38,10346.14 totalMicros 79935842 yieldMicros 56356622 yieldCalls 114859 yieldMaxUsec 199834 kHzSdClk 24000 Done Type any character to start.

Стивестронг
Ср. 5 июля 2017 г. 22:39
Я обновил первый пост с новыми файлами bin и ino, для карт CL4 необходимо было работать с буферами с большими или равными 4 КБ.
Кроме того.
И, как требовалось, пользователя предупреждают о времени, чтобы подождать.

Пито
Ср. 5 июля 2017 г., 22:50
Kingston CL4 4GB (форматирован) ###################################################### This sketch demonstrates STM32F4 SDIO (DMA) implementation. ###################################################### init time: 7 ms Card type: SDHC Manufacturer ID: 2 OEM ID: TM Product: SA04G Version: 0.6 Serial number: 289b4188 Manufacturing date: 3/2011 cardSize: 3951.03 MB (MB = 1,000,000 bytes) flashEraseSize: 128 blocks eraseSingleBlock: true OCR: c0ff8000 Volume is FAT32 blocksPerCluster: 64 clusterCount: 120320 freeClusters: 120193 freeSpace: 3938.48 MB (MB = 1,000,000 bytes) fatStartBlock: 14502 fatCount: 2 blocksPerFat: 941 rootDirStart: 2 dataStartBlock: 16384 FreeStack: 84095 ###################################################### Type any character to start Test started - please wait, it may take up to 3 minutes size, write, read bytes, KB/sec, KB/sec 512,

Стивестронг
Ср. 5 июля 2017 г., 22:55
@Pito, ты ждал 3 минуты?

Пито
Ср. 5 июля 2017 г. 22:59
Нет, я начал паниковать.. Я попробую еще раз..

Kingston CL4 4GB Test started - please wait, it may take up to 3 minutes :) size, write, read bytes, KB/sec, KB/sec 512, 45.45, 482.42 in T=00:03:15 1024, 24.92, 693.02 in T=00:06:05 2048, 25.21, 1286.25 in T=00:15:00 4096, 1337.13, 2271.51 8192, 1702.51, 3916.33 16384, 3012.27, 5492.42 32768, 3638.46, 7413.43 in T=00:15:20 totalMicros 914714129 => 15.5minutes yieldMicros 867872714 yieldCalls 84774 yieldMaxUsec 150782 kHzSdClk 24000 Done Type any character to start

Стивестронг
Ср. 5 июля 2017 г. 11:01
Я, возможно, не прикреплял самую последнюю корзину ранее, поэтому я снова обновил первый пост. ###################################################### Demo sketch of STM32F4 SDIO (DMA) implementation. ###################################################### init time: 8 ms Card type: SD2 Manufacturer ID: 27 OEM ID: PH Product: SD02G Version: 3.0 Serial number: 97bdbf7c Manufacturing date: 8/2011 cardSize: 1969.23 MB (MB = 1,000,000 bytes) flashEraseSize: 128 blocks eraseSingleBlock: true OCR: 80ff8000 Volume is FAT16 blocksPerCluster: 64 clusterCount: 60086 freeClusters: 59578 freeSpace: 1952.25 MB (MB = 1,000,000 bytes) fatStartBlock: 138 fatCount: 2 blocksPerFat: 235 rootDirStart: 608 dataStartBlock: 640 FreeStack: 84095 ###################################################### Type any character to start Test started - please wait, it may take up to 3 minutes size, write, read bytes, KB/sec, KB/sec 512, 191.49, 872.32 1024, 359.56, 1059.29 2048, 661.10, 2100.89 4096, 1133.47, 4102.19 8192, 1612.33, 5705.51 16384, 1965.11, 7776.31 32768, 2231.90, 9110.85 totalMicros 127501398 yieldMicros 94566913 yieldCalls 87120 yieldMaxUsec 151458 kHzSdClk 24000 Done Type any character to start

Пито
Ср. 5 июля 2017 г. 11:36
Попробовал снова с последним корзином, но получил первый результат примерно через 6 минут
Kingston CL4 4GB size, write, read bytes, KB/sec, KB/sec 512, 24.00, 485.60 1024,

Стивестронг
Ср. 05 июля 2017 г. 11:53
[Пито - Ср. 5 июля 2017 г. 11:36 вечера] - Что-то не так с 512-2048b размерами буферов?
Я не знаю, и я не могу понять, потому что у меня нет такой карты.
Для моих карт, а также для других ваших карт, кажется, хорошо работает.
Пито написал:Почему вы не используете sdfatex?

Акронис
Ср. 02 августа 2017 г. 8:37
Привет.

Если вы #include <Maplefreertos900.час> SD -карта (SDIO) появляется ошибка. #include #include #include "SdioF4.h" SdFatSdio sd; File file; In file included from C:\Users\Admin\Documents\Arduino\libraries\SdFat\src/BlockDriver.h:27:0, from C:\Users\Admin\Documents\Arduino\libraries\SdFat\src/SdFat.h:27, from C:\Users\Admin\Documents\Arduino\hardware\Arduino_STM32-master\STM32F4\libraries\SDIO/SdioF4.h:5, from C:\Users\Admin\Desktop\STM32F4\RFIDRTOS\RFIDRTOS.ino:12: C:\Users\Admin\Documents\Arduino\libraries\SdFat\src/SdCard/SdSpiCard.h:264:51: error: macro "writeData" passed 2 arguments, but takes just 1

Стивестронг
Ср. 02 августа 2017 г. 8:42
Если вы смотрите более тщательно, вы видите, что это не ошибка SDIO, а что -то не так с макросом в вашем эскизе и SDSpicard.час: SdSpiCard.h:264:51: error: macro "writeData" passed 2 arguments, but takes just 1

Акронис
Ср. 02 августа 2017 г. 8:47
Спасибо.

victor_pv
Ср. 02 августа 2017 13:28
Стив,

Вы переносите эту библиотеку в Libmaple F1? Я читал документы по портированию F1 -F4 от STM и сказал, что периферийное устройство почти одинаково для обоих, за исключением некоторых ошибок (только ошибки, которые я мог найти для SDIO в F1, - это использование некоторых последовательных портов и таймеров в одних и тех же штифтах. ничего большого).
Базовый адрес отличается, но регистры и т. Д.

Стивестронг
Ср. 02 августа 2017 13:32
Привет, Виктор,
Поскольку у меня нет никакой платы F1, которая поддержит SDIO, я не могу проверить его, поэтому я не могу оказать никакой поддержки в этом, поэтому не будет его переносить.
Но любой может это сделать.

victor_pv
Ср. 02 августа 2017 г. 16:46
[Стивестронг - Ср. 02 августа 2017 г. 13:32] - Привет, Виктор,
Поскольку у меня нет никакой платы F1, которая поддержит SDIO, я не могу проверить его, поэтому я не могу оказать никакой поддержки в этом, поэтому не будет его переносить.
Но любой может это сделать.
У меня есть несколько досок, которые поддерживают это, так что могут попробовать.
Кажется, теперь стабильно? или вы планируете изменения в коде?

Стивестронг
Ср. 02 августа 2017 г., 17:20
Никаких изменений не запланировано, это, кажется, работает стабильно, но это не означает, что это не свободно с ошибками : P
Так что вы готовы идти.

Акронис
Чт, 3 августа 2017 г. 2:10
Привет, Victor_pv.

Видел ваше сообщение в желании портирования Freertos на микроконтроллере STM32F4.
У вас есть такие планы? Пример из библиотеки работает нормально, но я не смог запустить свою программу с Ethernet.
Компилятор дал ошибку, которую я написал.
У вас есть возможность понять и помочь мне ?

victor_pv
Чт, 3 августа 2017 г., 3:42
[Акронис - Четверг 03 августа 2017 2:10] - Привет, Victor_pv.

Видел ваше сообщение в желании портирования Freertos на микроконтроллере STM32F4.
У вас есть такие планы? Пример из библиотеки работает нормально, но я не смог запустить свою программу с Ethernet.
Компилятор дал ошибку, которую я написал.
У вас есть возможность понять и помочь мне ?
Вы разместили эту ошибку в отдельном потоке? Это, кажется, посвящено только SDIO, поэтому я не хочу его захватывать, это затруднит следовать тем, что происходит.
Пожалуйста, пришлите мне ссылку на ветку, в которой вы разместили об этой ошибке.

victor_pv
Чт, 3 августа 2017 г., 3:44
[Стивестронг - Ср. 02 августа 2017 г., 17:20] - Никаких изменений не запланировано, это, кажется, работает стабильно, но это не означает, что это не свободно с ошибками : P
Так что вы готовы идти.
Стив, только что сравнил периферийные устройства SDIO в справочном руководстве рядом между F1 и F4, они являются дательными с буквой, за исключением автобуса, к которой они подключены, и несколько косметических изменений в некоторых линиях.

Базовые адреса разные, отдых должен быть одинаковым, поэтому я посмотрю, смогу ли я найти доску в своей куче с SDCARD и протестировать ее.

Если это так, как и ожидалось, все, что изменится, - это базовый адрес в файле заголовка. Если это так, даже если вы внесете серьезные изменения в код, все равно должны работать в F1.

Акронис
Чт, 3 августа 2017 г., 4:10
[victor_pv - Четверг, 3 августа 2017 г., 3:42 утра] -
Вы разместили эту ошибку в отдельном потоке? Это, кажется, посвящено только SDIO, поэтому я не хочу его захватывать, это затруднит следовать тем, что происходит.
Пожалуйста, пришлите мне ссылку на ветку, в которой вы разместили об этой ошибке.
http: // www.STM32duino.com/viewtopic.PHP ... = 60#p32263

victor_pv
Чт, 3 августа 2017 г., 16:54
[Акронис - Четверг. 03 августа 2017 г. 4:10] -
[victor_pv - Четверг, 3 августа 2017 г., 3:42 утра] -
Вы разместили эту ошибку в отдельном потоке? Это, кажется, посвящено только SDIO, поэтому я не хочу его захватывать, это затруднит следовать тем, что происходит.
Пожалуйста, пришлите мне ссылку на ветку, в которой вы разместили об этой ошибке.
http: // www.STM32duino.com/viewtopic.PHP ... = 60#p32263
Можете ли вы опубликовать ссылку на версию SDFAT, которую вы используете? или еще лучше, вы можете опубликовать здесь линию, на которую ссылается ошибка?

victor_pv
Чт, 03 августа 2017 г., 17:00
[Акронис - Ср. 02 августа 2017 г. 8:37] - Привет.

Если вы #include <Maplefreertos900.час> SD -карта (SDIO) появляется ошибка. #include #include #include "SdioF4.h" SdFatSdio sd; File file; In file included from C:\Users\Admin\Documents\Arduino\libraries\SdFat\src/BlockDriver.h:27:0, from C:\Users\Admin\Documents\Arduino\libraries\SdFat\src/SdFat.h:27, from C:\Users\Admin\Documents\Arduino\hardware\Arduino_STM32-master\STM32F4\libraries\SDIO/SdioF4.h:5, from C:\Users\Admin\Desktop\STM32F4\RFIDRTOS\RFIDRTOS.ino:12: C:\Users\Admin\Documents\Arduino\libraries\SdFat\src/SdCard/SdSpiCard.h:264:51: error: macro "writeData" passed 2 arguments, but takes just 1

Акронис
Пт, 04 августа 2017 г., 2:42
Хм....
Сегодня я попытался сделать чистый проект, например, rtos_blink.
Подключите две библиотеки немедленно, вы получите эту ошибку.
Если вы оставите одну библиотеку, то все в порядке.

Библиотека https: // github.com/stevstrong/adafruit_ ... 6bit_stm32

Но вместе они дают ошибку.

Используйте стоимость STM32F407VET6 Black и https: // github.com/stevstrong/arduino_stm32/

#include #include // https://github.com/stevstrong/Adafruit_TFTLCD_16bit_STM32 #include #include "SdioF4.h" //http://stm32duino.com/viewtopic.php?f=39&t=2215 static void vLEDFlashTask(void *pvParameters) { for (;;) { vTaskDelay(1000); digitalWrite(BOARD_LED_PIN, HIGH); vTaskDelay(50); digitalWrite(BOARD_LED_PIN, LOW); } } void setup() { // initialize the digital pin as an output: pinMode(BOARD_LED_PIN, OUTPUT); xTaskCreate(vLEDFlashTask, "Task1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 2, NULL); vTaskStartScheduler(); } void loop() { // Insert background code here }

Акронис
Пт, 04 августа 2017 г. 2:55 утра
Оказалось, что проблема заключается в порядке соединения библиотек


В этом порядке работает
#включать <SPI.час>
#include "sdiof4.час"
#включать <Adafruit_tftlcd_16bit_stm32.час> // Библиотека, специфичная для оборудования



В этом порядке это дает ошибку

C: \ users \ admin \ documents \ arduino \ библиотеки \ sdfat \ src/sdcard/sdspicard.H: 264: 51: ошибка: макро "writedata" принял 2 аргумента, но занимает всего 1

bool wreatedata (uint8_t token, const uint8_t* src);

#включать <Adafruit_tftlcd_16bit_stm32.час> // Библиотека, специфичная для оборудования
#включать <SPI.час>
#include "sdiof4.час"
Библиотека Freertos не влияет на эту ошибку.
Код и без подключения Freertos дают ошибку, если вы подключите библиотеки в неправильном порядке.

Почему это происходит ?

victor_pv
Пт, 04 августа 2017 г. 3:20 утра
На данный момент я не использую это ядро ​​ни ардуино, поэтому я не могу проверить себя.
У меня были очень странные вещи с Arduino IDE, по -видимому, из -за ошибки в программном обеспечении, поскольку переход на более новую версию решит ее.
Иногда это связывается с разными версиями библиотеки, если у вас есть разные библиотеки с одинаковым именем для разных ядер, например, для AVR Arduinos, и один для STM32.

Некоторое время назад я перестал использовать Arduino IDE и начал использовать Eclipse, и я не планирую возвращаться.

Если Стив не сможет повторить одну и ту же проблему и дать несколько советов, мой единственный совет - убедиться, что вы загрузили последнюю версию его F4 Core и попробовать другую версию Arduino IDE.

Акронис
Пт, 04 августа 2017 г. 3:28 утра
Я понял тебя.

Я использую последнюю версию IDE и последние версии библиотек.

И Eclipse использует ту же библиотеку или есть ?

Стивестронг
Пт, 04 августа 2017 г., 7:14
Почему вы используете <SPI.час>?
Я не вижу причин для этого. SDIO не использует SPI, а 16 -битный LIB также не использует SPI.
Arduino Ide в порядке.
Кстати, я думаю, что проблема заключается в SDFAT LIB, он составляет файлы и функции, связанные с SPI, хотя требуется только SDIO.

Акронис
Пт, 04 августа 2017 г., 7:36 утра
Удал библиотеку SPI.Ошибка осталась. Если обмен - тогда все в порядке

Ошибка:

#включать <Adafruit_tftlcd_16bit_stm32.час> // Библиотека, специфичная для оборудования
#include "sdiof4.час"


Хорошо:

#include "sdiof4.час"
#включать <Adafruit_tftlcd_16bit_stm32.час> // Библиотека, специфичная для оборудования

Стивестронг
Пт, 04 августа 2017 г., 7:41
Хорошо, что работает таким образом. Держите это.

victor_pv
М
Стив, я начал работать над портом до F1.
Пока что у меня есть несколько вопросов к вам:
1.- Функция sdio_gpios_init () устанавливает выводы для режима 4 -бит. Не было бы полезно позволить библиотеке работать в 1 -битном режиме для тех, кто хочет сохранить несколько GPIS для чего -то другого, и в этом случае функция должна быть в состоянии установить контакты для режимов 4 -бит или 1 -бит?
Функция sdio_set_dbus_width () может вызвать этот параметр, чтобы установить необходимое количество контактов в правильный режим.


2.- Есть определение для: #define SDIOCLK

Стивестронг
Вторник 8 августа 2017 г. 7:51 утра
Виктор,
1. Насколько я знаю:
- Производительность SDIO 1 -битного режима RD/WR находится ниже производительности SPI.
- Количество контактов, необходимых для режима SDIO 1 -битного.
- SDIO доступен только для устройств High_line, где количество булавок достаточно большое.
Учитывая это, режим SDIO 1 -бит, он имеет смысл, только если на чипе не осталось свободного GPIO, и не осталось свободного порта SPI, что я не могу себе представить.
Тем не менее, вы можете реализовать его для линии F1, если хотите, для семьи F4, где есть много GPIOS, я бы не стал беспокоиться.

2. Я согласен, часы должны быть лучше всего рассчитаны по текущим настройкам PLL и часами.
- Но время, когда я это разработал, я подумал, что для F4 я все равно буду использовать только 168 МГц. В любом случае, не стесняйтесь добавлять желаемую функцию.

victor_pv
Вторник 8 августа 2017 г. 9:00 вечера
[Стивестронг - Вторник 8 августа 2017 г. 7:51]] - Виктор,
1. Насколько я знаю:
- Производительность SDIO 1 -битного режима RD/WR находится ниже производительности SPI.
Там нет особой необходимости сделать это. Я думал, что SDIO был более эффективным, чем режим SPI даже в 1 бит. Если нет, то общий SPI с отдельным CS - лучший способ сохранить булавки.
[Стивестронг - Вторник 8 августа 2017 г. 7:51]] - 2. Я согласен, часы должны быть лучше всего рассчитаны по текущим настройкам PLL и часами.
- Но время, когда я это разработал, я подумал, что для F4 я все равно буду использовать только 168 МГц. В любом случае, не стесняйтесь добавлять желаемую функцию.
Я посмотрю на это, в настоящее время я использую определение, как ты, но мне все еще нужно найти время, чтобы проверить его, затем попытается изменить это для F1, а затем, надеюсь, отправить вам пиар F4.

Акронис
Пт 18 августа 2017 г. 7:08
Привет, Стивестронг !

Можете ли вы сказать время, когда планируете добавить поддержку i2c ?

Стивестронг
Пт 18 августа 2017 г., 7:16 утра
Извините, нет, я не могу сказать, потому что в настоящее время у меня нет заявления на F4, которое будет включать i2c.

Мои приоритеты включают Black F4 на бортовой SPI Flash.
Затем я собираюсь проверить голубую доску F4. Я думаю, что эта доска включает в себя флэш -чип I2C, так что это вызовет ваш запрос.
В качестве дальнейшего шага максимальная арка семян нацелена на.

Между тем, кто -нибудь может внести свой вклад.

Или, если вы не можете ждать, попробуйте альтернативные ядра: generic, hal, stm32duino.

Акронис
Пт 18 августа 2017 г., 7:40
Мне очень нравится ваша библиотека, вы уже поняли, что я использую в своих проектах.
Требуется только поддержка i2c.
Мне очень нравится черная доска STM32F407VET6.
Я буду ждать вашей реализации !
Всего наилучшего вам !

michael_l
Ср 12 сентября 2018 г., 19:23
Попробуйте примеры SDIO с последним ядром Стива (Master Branch). Но я всегда получаю эту ошибку. Возможно, я что -то упускаю ? Должен ли параметр 'flags' быть установленным на какое -то значение по умолчанию, чтобы он компилировал ?
C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SdFat\src\SpiDriver\SdSpiSTM32.cpp: In member function 'uint8_t SdSpiAltDriver::receive(uint8_t*, size_t)': C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SdFat\src\SpiDriver\SdSpiSTM32.cpp:89:38: error: call of overloaded 'dmaTransfer(int, uint8_t*&, size_t&)' is ambiguous return m_spi->dmaTransfer(0, buf, n); ^ C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SdFat\src\SpiDriver\SdSpiSTM32.cpp:89:38: note: candidates are: In file included from C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SdFat\src\SpiDriver\SdSpiDriver.h:32:0, from C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SdFat\src\SpiDriver\SdSpiSTM32.cpp:26: C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SPI\src/SPI.h:303:10: note: void SPIClass::dmaTransfer(const void*, void*, uint16, uint16) void dmaTransfer(const void * transmitBuf, void * receiveBuf, uint16 length, uint16 flags = 0); ^ C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SPI\src/SPI.h:304:10: note: void SPIClass::dmaTransfer(uint16_t, void*, uint16, uint16) void dmaTransfer(const uint16_t tx_data, void * receiveBuf, uint16 length, uint16 flags = 0); ^ C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SdFat\src\SpiDriver\SdSpiSTM32.cpp:94:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ Using library SDIO in folder: C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SDIO (legacy) Using library SdFat at version 1.0.5 in folder: C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SdFat Using library SPI at version 1.0 in folder: C:\Users\michael\Documents\Arduino\hardware\Arduino_STM32_Steve\STM32F4\libraries\SPI exit status 1 Error compiling for board Generic STM32F407V mini series.

Мадиас
Ср 12 сентября 2018 г., 20:55
Я думаю, что Стив использует модифицированную (лучше: более реальную) ветвь библиотеки SDFAT, вы можете установить это:
https: // github.com/stevstrong/sdfat
Итак, вы можете увидеть изменения DMA:
https: // github.com/stevstrong/sdfat/blo ... ISTM32.CPP
Будьте осторожны, если ваша библиотека SDFAT является глобальной, что она может не работать с другими ядрами (я всегда стараюсь включать их не глобальные, но в /halpware /<ветвь>/<подпапка> -> Библиотеки для каждого ядра) Это известная проблема Arduino о приоритете библиотек...
Ветвь Стивса должна использоваться с осторожностью (в его кленовом Mini F1 сломана, вызванная новой структурой АЦП).

michael_l
Ср 12 сентября 2018 г., 21:09
[Мадиас - Ср 12 сентября 2018 г., 20:55] - Я думаю, что Стив использует модифицированную (лучше: более реальную) ветвь библиотеки SDFAT, вы можете установить это:
https: // github.com/stevstrong/sdfat
Итак, вы можете увидеть изменения DMA:
https: // github.com/stevstrong/sdfat/blo ... ISTM32.CPP
Будьте осторожны, если ваша библиотека SDFAT является глобальной, что она может не работать с другими ядрами (я всегда стараюсь включать их не глобальные, но в /halpware /<ветвь>/<подпапка> -> библиотеки для каждого ядра)
Ветвь Стивса должна использоваться с осторожностью (в его кленовом Mini F1 сломана, вызванная новой структурой АЦП).
Спасибо ! Я попробовал это, и это работает. У меня было впечатление, что SDFAT в рамках репо Стива F4 будет работать.

Стивестронг
Ср 12 сентября 2018 г., 21:16
Как сказал Матиас, используйте SDFAT Lib и Spi Lib из моего репо, я обновил их в последнее время именно из -за этой проблемы.
Что было вызвано потому, что я добавил версии передачи функции SPI DMA ().

Flyboy74
Чт 13 сентября 2018 г., 3:51 утра
[Стивестронг - Вторник 8 августа 2017 г. 7:51]] - Виктор,
1. Насколько я знаю:
- Производительность SDIO 1 -битного режима RD/WR находится ниже производительности SPI.
- Количество контактов, необходимых для режима SDIO 1 -битного.
- SDIO доступен только для устройств High_line, где количество булавок достаточно большое.
Учитывая это, режим SDIO 1 -бит, он имеет смысл, только если на чипе не осталось свободного GPIO, и не осталось свободного порта SPI, что я не могу себе представить.
Тем не менее, вы можете реализовать его для линии F1, если хотите, для семьи F4, где есть много GPIOS, я бы не стал беспокоиться.

2. Я согласен, часы должны быть лучше всего рассчитаны по текущим настройкам PLL и часами.
- Но время, когда я это разработал, я подумал, что для F4 я все равно буду использовать только 168 МГц. В любом случае, не стесняйтесь добавлять желаемую функцию.
Хорошо, как всегда, я ноду, но я все равно опубликую то, что у меня есть, и какой опыт, который у меня есть, и любой может исправить меня, если я ошибаюсь, так как это то, как я узнаю.

Я использовал SD в SPI, 1_LINE и 4_LINE разумный бит в микропитоне и немного на STM32F4 с Cube MX, HAL и FATFS.

У SPI есть преимущество в том, что если вам понадобится SPI для других вещей, вам все равно понадобятся линии MOSI, MISO и CLK, чтобы он просто использовал дополнительный PIN -код CS. Но, по моему опыту, он ограничен использованием SD -карты на максимуме 25 МГц, так как SPI находится на часах APB1 и не может работать в высокоскоростном режиме 50 МГц.

SD 1_LINE использует I LENE LINE, которая SPI, поскольку у него нет PIN -код CS, но может использоваться в высокоскоростном режиме 50 МГц, так как SDIO находится на APB2, поэтому, если вам не нужна шина SPI для чего -либо еще, он сохраняет линию I Line и возможно иметь вдвое превышающую скорость передачи, как SPI.

SD 4_LINE использует 2 линии больше, чем SPI, но имеет ширину 4 бита, а также может использоваться в режиме высокой скорости, поэтому можно получить трансфер в 8 раз превышающей скорость, чем SPI

Быстрый Google, я нашел это
Sd.jpg
сд.JPG (54.87 киб) просмотрено 273 раза

Стивестронг
Чт 13 сентября 2018 г., 6:39
SPI_1 работает с 42 МГц и используется.

SDIO не может работать с 42 МГц из -за выпуска HW, Чеха. По крайней мере, в режиме 4 -бит я не знаю в 1 -битном режиме.

Flyboy74
Чт 13 сентября 2018 г. 8:32 утра
[Стивестронг - Чт 13 сентября 2018 г. 6:39 утра] - SPI_1 работает с 42 МГц и используется.

SDIO не может работать с 42 МГц из -за выпуска HW, Чеха. По крайней мере, в режиме 4 -бит я не знаю в 1 -битном режиме.
Спасибо, Стивестронг.

Я только что сделал Google Doc и немного прочитал, но не понял, что он говорил, поэтому я не понимаю проблемы.

Док, кажется, также противоречит справочному руководству, которое цитирует это SDIO_CK - это часы для карты: один бит передается как по команде, так и на строках данных
с каждым тактовым циклом.
SDIO использует два сигнала часов:
• SDIO Adapter Clock Sdioclk до 50 МГц (48 МГц при использовании с USB)
• Автомобильные часы APB2 (PCLK2)
Тактовые частоты PCLK2 и SDIO_CK должны уважать следующее условие:
FUTCE (PCLK2) ≥ 3 ~ 8 × частота (SDIO_CK)

Стивестронг
Чт 13 сентября 2018 г. 8:36 утра
Который док?
Где противоречие?
[Flyboy74 - Чт 13 сентября 2018 г. 8:32 утра] - Я только что сделал Google Doc и немного прочитал, но Не понял, что это говорило, поэтому я не понимаю проблемы.
Ну, в этом случае я бы не копал глубже. 8-)

Flyboy74
Чт 13 сентября 2018 г. 9:07
[Стивестронг - Чт 13 сентября 2018 г. 8:36 утра] - Который док?
Где противоречие?
[Flyboy74 - Чт 13 сентября 2018 г. 8:32 утра] - Я только что сделал Google Doc и немного прочитал, но Не понял, что это говорило, поэтому я не понимаю проблемы.
Ну, в этом случае я бы не копал глубже. 8-)
Тогда я никогда не пойму. Мне нравится изучать новые вещи.

Это проблема, которую вы тоже ссылаетесь?? SDIO Clock Divider
Режим может работать должным образом
Если я понимаю это правильно, это означает, что вы не можете обойти делитель, чтобы это означает, что если вы не обходитесь (я.E обходной бит равен «0») и используйте значение MIN для разделителя, тогда максимальная скорость SDIO будет 42 МГц

Это проблема HW, о которой вы говорите???

Flyboy74
Чт 13 сентября 2018 г. 9:20 утра
Будет ли это работать, если вы настроите реестр управления часами SDI (SDIO_CLKCR), как это??
Бит 10 байпас = 0
Биты 7: 0 clkdiv = 0

где sdio_ck частота = sdioclk / [clkdiv + 2].
Это дает 82 МГц / [0 +2] = 42 МГц

С настройкой часов, подобной этой??
Часы
часы.JPG (49.74 киб) просмотрено 250 раз

Стивестронг
Чт 13 сентября 2018 г. 9:21 утра
Я имею в виду: 2.11.6 Нет обнаружения недостаточной передачи с неправильной передачей данных
Описание
В случае постоянной передачи данных от хоста SDIO на SD -карту и управление аппаратным потоком отключено (бит 14 из SDIO_CLKCR не установлена), если происходит условие недостаточно Неправильное слово данных) без обнаружения условия недостаточно
[3 x период (PCLK2) + 3 x период (SDIOCLK)]] >= (32 / (BusWidth)) x Период (SDIO_CK)
Обходной путь
Избегайте вышеупомянутых взаимосвязи тактовой частоты, путем:
• Увеличение частоты APB
• или уменьшение пропускной способности переноса
• или уменьшение частоты sdio_ck
В качестве обходного пути, есть только последний вариант, если мы хотим сохранить USB (48 МГц), и нет разгруппирования. Следующая доступная частота ниже 48 МГц - это половина, 24 МГц.

Flyboy74
Чт 13 сентября 2018 г. 9:32 утра
Хорошо, спасибо за объяснение. Я сейчас немного умнее 1 час назад.

Я вижу 2 варианта
1. SDIO 1_LINE работает на 42 МГц
2. SDIO 4_LINE работает на 24 МГц

Если оба этих параметра работают, то sdioi 1_line будет одинаковой скоростью на SPI, а SDIO 4_LINE будет вдвое больше, чем скорость SPI

Стивестронг
Чт 13 сентября 2018 г. 9:39 утра
Вот почему режим линии SDIO 1 не имеет слишком большого смысла.

Если на борту, подключенном к линиям SDIO, есть слот SD, используйте его в режиме SDIO_4.
В противном случае используйте SPI 1 (@42 МГц) для максимальной производительности.

Flyboy74
Чт 13 сентября 2018 г. 9:48 утра
Конечно, единственное преимущество заключается в том, что если вы не использовали какие -либо другие устройства SPI, то это сохранило бы u 1 PIN -код CS PIN.

[Libmaple] Generic F407VE Mini (VCC-GND версия)

STM32F4 Discovery

Ядро F401 ветвь на GitHub SheepDoll