Speffs на STM32

Martinayotte
Вт 21 июня 2016 г. 1:16
Привет, Роджер,

Вы, вероятно, помните наши дискуссии о Speffs ...

Кажется, что оригинальный автор, Питер Андерссон, сделал что -то под Stm32, но не с внутренней вспышкой, но с внешней вспышкой SPI, это все еще интересно.
На моих пользовательских платах STM32 у меня есть вспышка SPI, поэтому я посмотрю на это, но опять же «время - это недостающий ингредиент» ...

https: // github.com/pellepl/stm32_spiffs

Mrburnette
Вт 21 июня 2016 г. 12:00 вечера
Ну, это очень интересно. Я буду смотреть эту ветку, чтобы увидеть, как все это происходит. Реализация ESP8266 работает удивительно хорошо, поэтому STM32 с внешней вспышкой должен предоставить некоторые приятные дополнительные возможности файловой системы без мощности, связанных с SD-картой.

Луча

Martinayotte
Вт 21 июня 2016 г. 13:45
Mrburnette написал:Без последствий мощности, связанных с SD -картой.

Рекснанет
Вт 21 июня 2016 г., 17:00
Я тоже буду смотреть это :)

Я пытаюсь получить быстрые изображения на ILI9341, но SD-карты будут подняться только до 20-25 МГц SPI (v2.0. Поднимется до 104 МГц? на V3.01, но не знаю, поддержит ли STM32 эту версию...) пока я.эн. SST26VF064B поднимется до 104 МГц.
Идеальный сценарий - пробежать DMA непосредственно от одного SPI к другому :)

Но это может пригодиться.
Только недостаток - флэш -программирование. SD -карта более практична для копирования файлов с ПК.

Mrburnette
Вт 21 июня 2016 г. 18:15
Martinayotte написал: <...>
С какими «последствиями власти» вы столкнулись с SDCARD ?

Martinayotte
Вт 21 июня 2016 г., 19:31
Я никогда не сталкивался с такой проблемой, но вы правы в конденсаторе, я всегда ставил 4.7UF Керамика поблизости.

Rogerclark
Вт 21 июня 2016 г. 22:56
Немного не по теме, но Франческо в Arduino.CC сказал мне, что он работает над SDIO для Otto, поэтому мы должны быть в состоянии перенести его работу либо новой Core Hal MX, либо, возможно, даже на F103, используя мою библиотеку Hacky Hal.

Но это помогает только для больших MCU F103, которые имеют SDIO

Mrburnette
Ср 22 июня 2016 12:36
Хакки Хэл Ммммм...

часacky + hal = hhal

Рожден новая аббревиатура. :ржу не могу:

Рекснанет
Ср 22 июня 2016 г. 12:50 вечера
Martinayotte написал:Я никогда не сталкивался с такой проблемой, но вы правы в конденсаторе, я всегда ставил 4.7UF Керамика поблизости.

michael_l
Чт 15 декабря 2016 г. 10:29
Я работаю со Spiffs, чтобы он работал под Bluepill с STM32Duino со SPI Flash. Я использую 32 -мегабит Winbond SPI Flash, и кажется, что у меня есть предварительный код, работающий. Я могу монтировать файловую систему и читать/записать файлы..

У него есть функции Posix Api-стиля, но, конечно, не каждая функция реализована. Там нет поддержки каталогов, и каждый файл считается, что он проживает в папке "корень". Он прочитал и пишет кэши, реализованные с каким-то уровнем износа.

Таким образом, все, что вам нужно для реализации, чтобы Spiffs для работы, это функции для: стирайте, читать и написать.

Было бы интересно, чтобы это работало под BP или Maple Mini, используя _internal flash_. Было бы неплохо иметь небольшую файловую систему. В зависимости от размера вашего кода можно сказать, что выделите 96 КБ или даже больше для файловой системы. Я думал начать с библиотеки в рамках библиотеки STM32F1 / библиотеки / EEPROM, поскольку в ней есть готовые функции для чтения / записи / стирания Flash на STM32. Я думаю, что должно быть возможно внедрить операции стирания/записи и чтения.

Пито
Чт 15 декабря 2016 г. 13:56
К вашему сведению - 103Zet Poard имеет: внутреннюю вспышку 524 КБ, внешняя вспышка 40 Мбит и прокладки для пайки во флэш -памяти Nand и SRAM.
Итак, хорошо оборудовано для Speffs :)
Мы можем протестировать тогда.. Было бы интересно, чтобы это работало под BP или Maple Mini, используя _internal flash_. Внутренняя вспышка обычно имеет гораздо более низкую выносливость записи как внешние.. Может 1: 100..
PS:
Внутренняя вспышка 103Zet оценена 10.000 за весь диапазон температуры
Внешний SPI IE. W25x40 оценен 1.000.000

Мэнни
Чт 15 декабря 2016 г. 16:28
Использовал эту библиотеку для моего проекта https: // github.com/marzogh/spiflash Было очень легко портировать, либеральный брызги #include const uint8_t notes[] = {60, 62, 64, 65, 67, 69, 71, 72, 61, 63, 66, 68, 70}; const int numNotes = sizeof(notes)/sizeof(*notes); USBMIDI midi; void setup() {     USBComposite.setProductId(0x0031);     midi.begin();     delay(1000); } void loop() {   for (int i=0;i

michael_l
Пт 16 декабря 2016 г., 10:28
Мэнни написал:Использовал эту библиотеку для моего проекта https: // github.com/marzogh/spiflash Было очень легко портировать, либеральный брызги // http://hex.pp.ua/stm8-kma200.php //http://forum.arduino.cc/index.php?topic=154796.0 // http://www.anagate.de/download/AnaGateSPI_KMA200-EN.pdf //http://www.electronics.ru/files/article_pdf/3/article_3331_811.pdf /* angle sensor: KMA200 by NXP Semiconductors; from the datasheet: -Pin 1 - Vdd (+5V) -Pin 2 - Data I/O (PA6) -Pin 3 - CLK (PA5) -Pin 4 - GND (GND) -Pin 5 - CS (PA4) -SPI Info: 1-1000 kHz clock MSB first Using the first SPI port (SPI_1) SS <--> PA4 <--> BOARD_SPI1_NSS_PIN SCK <--> PA5 <--> BOARD_SPI1_SCK_PIN MISO <--> PA6 <--> BOARD_SPI1_MISO_PIN */ #include #define BOARD_SPI1_NSS_PIN PA4 //Port2Pin('A', 4) int sensor_data[3] = { 0, 0, 0 }; void setup() { SPI.begin(); SPI.setBitOrder(MSBFIRST); SPI.setDataMode(SPI_MODE0); SPI.setClockDivider(SPI_CLOCK_DIV128); pinMode(BOARD_SPI1_NSS_PIN, OUTPUT); } void loop() { digitalWrite(BOARD_SPI1_NSS_PIN, LOW); sensor_data[0] = SPI.transfer(0); sensor_data[1] = SPI.transfer(1); sensor_data[2] = SPI.transfer(2); digitalWrite(BOARD_SPI1_NSS_PIN, HIGH); delay (100); }

Ошибка #define pb2 -solved!

Bluepill на Hackaday снова