SST26VF064B Библиотека... помощь?

Рекснанет
Чт 25 августа 2016 г. 9:11
Привет,

Кто -нибудь удалось получить Flash SST26VF064B для работы на STM32DUINO?
Мне удалось обнаружить его, и часть чтения, кажется, в порядке (шина SPI в порядке, и я могу правильно прочитать идентификатор), но я не могу написать на нем...

Результаты запуска тестового кода из библиотеки SerialFlash: Raw SerialFlash Hardware Test Read Chip Identification: JEDEC ID: BF 26 43 Part Nummber: SST26VF064 Memory Size: 1048576 bytes Block Size: 65536 bytes 0x05 = 0 0x35 = A 0x72 = 0 0x42 = FF Reading Chip... Reading... addr = 0, data = FF FF FF FF FF FF FF FF addr = FF8, data = FF FF FF FF FF FF FF FF addr = 1000, data = FF FF FF FF FF FF FF FF (....) addr = FFFF8, data = FF FF FF FF FF FF FF FF Writing 512 signatures error writing signature at 0 Read this: FF FF FF FF FF FF FF FF Expected: 00 00 00 00 15 F5 95 4B Tests Failed :{ The flash chip may be left in an improper state. You might need to power cycle to return to normal.

Ахулл
Чт 25 августа 2016 г., 10:40
В соответствии с таблица данных.
WP# используется в сочетании с битами WPEN и IOC в регистре конфигурации, чтобы запретить операции записи
в регистр защиты блоков. Этот PIN-код работает только в режиме SPI, однобиточного и двойного чтения
Похоже, вам нужно перечитывать главу 4 таблицы данных "4.1 защита устройства." .. и таблица 4-1: Состояния блокировки записи записи

: D К сожалению, у меня нет устройства для игры, так что это примерно столько, сколько я могу сказать по этому вопросу.

Рекснанет
Пт 26 августа 2016 г. 10:16
Это было первое, что я сделал :) Но, кажется, мне нужно перечитать еще 4 или 5 раз :)
Но даже с инвалидом WPEN и IOC, похоже, не вступают в силу.

Я пытаюсь скопировать код из примера MicroChip, чтобы увидеть, смогу ли я получить лучшие результаты.
Я пытался стереть полный чип, но не знаю, сработало ли он правильно, потому что теперь я читаю все нулы...

Оставайтесь с нами для следующего эпизода "Flash Wars" : D

Ахулл
Пт 26 августа 2016 г. 14:26
Рекснанет написал:Оставайтесь с нами для следующего эпизода "Flash Wars" : D

Ахулл
Сб 27 августа 2016 г. 9:24
Я все еще жду следующего захватывающего эпизода. : D

Изображение

Рекснанет
Sun 28 августа 2016 г., 16:48
@ahull
Не ждать больше!!! : D
Вот:
Raw SerialFlash Hardware Test Setup configuration register GlobalBlockProtectionUnlock Write prot clear Done Read Chip Identification: JEDEC ID: BF 26 43 Part Nummber: SST26VF064 Memory Size: 1048576 bytes Block Size: 65536 bytes STATUS 0x05 = 0 CONFIG 0x35 = A Reading Chip... Reading... addr = 0, data = FF FF FF FF FF FF FF FF (..) addr = FFFF8, data = FF FF FF FF FF FF FF FF Writing 512 signatures Double Checking All Signatures: all 512 signatures read ok Checking Signature Pairs all 255 signature pairs read ok Checking Read-While-Write (Program Suspend) write 256 bytes at 256 write time was 1369 microseconds. read-while-writing: 00 00 00 00 15 F5 95 4B test passed, good read while writing Checking Read-While-Erase (Erase Suspend) erase time was 18573 microseconds. erase correctly erased 65536 bytes read-while-erasing: 00 00 00 00 15 F5 95 4B test passed, good read while erasing All Tests Passed :-) Test data was written to your chip. You must run EraseEverything before using this chip for files.

Ахулл
Sun 28 августа 2016 г., 8:41 вечера
История смотрит, чтобы стать довольно интересной.

Изображение

Держите нас в курсе вашего прогресса.

Рекснанет
Пт, сентябрь 02, 2016, 9:52
...В поисках, чтобы сценарий Python загрузки Python работал в Windows... :) (Да, я это сказал... Окна...)
:стрелка: Python - установлен.
:стрелка: Pyserial - установлен.
:стрелка: Тестирование... еще нет :)

Ахулл
Пт, сентябрь 02, 2016, 11:38
Дайте нам знать, как проходит тестирование.

Изображение

Изображение

Какова цель этого таинственного устройства?

Martinayotte
Пт, сентябрь 02, 2016, 14:00
Кстати, я использовал эту библиотеку в прошлом, чтобы получить доступ к различным ароматам Winbond SPI Flash:
https: // github.com/lowpowerlab/spiflash

ZMEMW16
Пт
Ахулл написал:История смотрит, чтобы стать довольно интересной.

Изображение

Держите нас в курсе вашего прогресса.

Рекснанет
Пн 12 сентября 2016 г. 8:23 утра
ZMEMW16 написал:Ахулл написал:

заинтересовался следующим поколением? Сент следующий

Martinayotte
Пн 12 сентября 2016 12:21
Я люблю Python ! : D
Я использую его более 16 лет (с тех пор почти никогда больше никогда не использую Perl)
Какая именно проблема вы сталкиваетесь ?

Рекснанет
Пн 12 сентября 2016 г., 14:21
Martinayotte написал:Я люблю Python ! : D
Я использую его более 16 лет (с тех пор почти никогда больше никогда не использую Perl)
Какая именно проблема вы сталкиваетесь ?

Рекснанет
Вторник 13 сентября 2016 г. 9:51
Martinayotte написал: Какая именно проблема вы сталкиваетесь ?

Martinayotte
Вторник 13 сентября 2016 г. 13:44
Вы сначала загрузили копию эскиза в свой STM ?

(Для печати и разделения на ноль, это, вероятно, просто потому, что ваш файл настолько мал, что потребовалось меньше секунды)

Рекснанет
Ср 14 сентября 2016 г. 8:08
Martinayotte написал:Вы сначала загрузили копию эскиза в свой STM ?

Martinayotte
Ср 14 сентября 2016 12:48
Для отладки я бы предпочел использовать второй последовательный порт, чтобы сделать отпечатки отладки и оставить первый для функциональных возможностей для копирования.

Рекснанет
Ср 14 сентября 2016 г. 15:47
Yeeeaaaaaahhhhh.... :)
Это может стать вариантом «Последнее средство» :)
Я надеялся сделать это как можно проще, но это может показаться лучшим вариантом...

Рекснанет
Чт 22 сентября 2016 г. 14:11
Собираюсь попробовать вариант «Последний курорт» :)

Но у меня есть вопрос:
Что такое серийная корреляция?

«Сериал» используется USB -серийным соединением.
Я пытался использовать «Serial2» и подключил последовательный адаптер с USART2 (PA_2 и PA_3 PINS), но не получил вывода. Затем пришлось переключить внимание на другие вещи и остановился там... :)

Я нашел этот код от Роджера, но не проверил, определена ли константа или нет: /* * Roger Clark * * 2015/05/28 * * Moved definitions for Hardware Serial devices from HardwareSerial.cpp so that each board can define which Arduino "Serial" instance * Maps to which hardware serial port on the microprocessor */ #ifdef SERIAL_USB DEFINE_HWSERIAL(Serial1, 1); DEFINE_HWSERIAL(Serial2, 2); DEFINE_HWSERIAL(Serial3, 3); #else DEFINE_HWSERIAL(Serial, 1); DEFINE_HWSERIAL(Serial1, 2); DEFINE_HWSERIAL(Serial2, 3); #endif

Рекснанет
Вт 04 октября 2016 г. 8:44
Новый эпизод:

Наконец -то заставил USART2 работать.
После успешного тестового эскиза, я вернулся к оригинальному эскизу и...тапа... оно работает : D
Я сделал какой -либо изменение для работы... нет. Но это так, так...

Эпизоды отладки:

1- После добавления отладки обнаружил первую проблему:
Я сделал тестовый текстовый файл с некоторыми буквами в нем и назвал его «Тест.текст".
Затем я обнаружил, что на эскизе единственными разрешенными буквами являются ограничения!!!! Я был как "Что?!?!?!? почему?????? Это не так сложно добавить и спасти меня много работы..."
Итак, я добавил его к эскизу... (но также переименован в файл, чтобы двигаться вперед, на всякий случай...) :)

2- После некоторых маленьких модов эскиз закончится, но ничего не было написано...
Флэш -буфер установлен на 4096 байт, но USB -буфер установлен на 128 байт. Файл имел 908 байтов, а после 128 байтов эскиз двинулся и закончился без ничего не записанного на вспышке.
До сих пор не узнал, что происходит, но перенес USB -буфер на 4096, и эскиз успешно закончился.

Загрузил эскиз «Читать файлы из Flash», который я сделал, и Baaaamamm, файл был написан!!! : D : D : D : D : D

Это большой шаг вперед :)

Теперь что -то еще нужно сделать:
1- Узнайте, в чем дело с размер USB-буфера, потому что я подозреваю, что не могу написать файлы больше 4096 байтов с этой проблемой...
2- тест с написанными несколькими файлами.
3- Проверьте скорость!!!!
4- Подключитесь к ILI9341 и сделайте несколько фотографий!!!! : D

Редактировать:
1- Узнайте, в чем дело с размер USB-буфера, потому что я подозреваю, что не могу написать файлы больше 4096 байтов с этой проблемой... - не смотрел на это
2- тест с написанными несколькими файлами. - ХОРОШО
3- Проверьте скорость!!!! - Работаю OK @ SPI = 36 МГц. Разгонять еще впереди : D
4- Подключитесь к ILI9341 и сделайте несколько фотографий!!!! : D - «Скорее всего», «ОК» (у меня есть изображение, но изображение было не в порядке во время вспышки из -за материала "ESC" на эскизе. Я объясню это позже...

Рекснанет
Ср 12 октября 2016 г. 13:53
Таким образом, артефакты изображений не были связаны только с обнаружением байта «ESC» на сценарии и эскизе, но также с некоторыми потерями данных на последовательном соединении.

Дальнейшее расследование на пути: http: // www.STM32duino.com/viewtopic.PHP ... 985#p18985

Рекснанет
Пт 14 октября 2016 г., 9:03
После решения проблемы с Серия.readbytes (), в котором не хватает данных случайным образом (все еще собирается попробовать с серийным.Читать (data, len)) с помощью серийного.Read () вместо этого и читая по одному байту за раз, первое изображение появилось!! :)

Изображение

Производительность по -прежнему не идеальна (245 мс для загрузки полного изображения против 34 мс для заливного экрана), но мне все еще нужно добавить DMA в Serialflash и повторить снова. Тем не менее, минимальное теоретическое время составит 68 мс (34 мс загрузки из вспышки и 34 мс, на отображение) около 15 кадров в секунду. Тогда может быть 30 кадров в секунду с Overclok. Должен выглядеть хорошо :)

Я также попытался разгонять, но я получил ошибку «Файл не найденный» с разгоном более 8 МГц. Это не должно произойти, если по какой -то причине используемая команда чтения является «нормальным» чтением (cmd = 0x03 -> 40 МГц max spi), который я не использую (быстро прочитать cmd = 0x0b -> 104 МГц max spi). Придется исследовать...

Racemaniac
Пт 14 октября 2016 г., 9:28 утра
Рекснанет написал: Тем не менее, минимальное теоретическое время составит 68 мс (34 мс загрузки из вспышки и 34 мс, на отображение) около 15 кадров в секунду.

Рекснанет
Пт 14 октября 2016 г., 10:00 утра
Возможно 2 подхода:
1 - Используйте 2 шины SPI: SPI1 для дисплея и SPI2 для Flash.
Это позволило бы использовать прямой DMA от одного к другому. Но SPI2 работает на половине скорости SPI1, так что это немного замедлило бы вещи (максимум 18 МГц).

2- Используйте SPI1 как для дисплея, так и для Flash.
Это позволяет более быстрое SPI (36 МГц), но нуждается в промежуточной буферизации и потребуется в 2 раза до длиной.
В конечном счете это приведет к половине скорости равных производительности (1), но я планирую попробовать другой подход, который использует преимущество от быстрых часов.

3 -й подход : D
Я планирую, после установки дисплея и укажу на начало файла на вспышке, перенаправляю SO в Flash на SI дисплея, а затем выпустите передачу, чтобы предоставить такточный сигнал для транзакции.
Это позволит перенести изображение непосредственно на дисплей с максимальной скоростью (в конечном итоге при 64 МГц с разгоном : D ) почти 60 кадров в секунду скорость !!!

Единственным недостатком является то, что я должен добавить мультиплексор в цепь.

Rogerclark
Пт 14 октября 2016 г., 10:49
Вы можете увидеть, сможете ли вы получить дешевый GD32F103c. Я добавил настройку на основные часы 120 МГц, которые давали бы 60 МГц на SPI (хотя я не знаю, будет ли дисплей справиться с этим, у меня были проблемы с GD32 на SPI, что, я думаю, связано с ним, бегущим по быстрому Для многих устройств)

Также GD32 запускает программу из Shadow Ram, а не Flash, поэтому код работает и в целом быстрее (я думаю, что STM32 работает с 2 состояниями ожидания между Flash Read's, но у GD32 нет), на практике из -за кернирования и трубопровода CPU и трубопроводов и прогнозирующее ветвление и т. Д., Это не означает, что GD32 работает в 3 раза быстрее, но это заметно быстрее

(Я уверен, что я опубликовал тесты Dhrystone, которые указывают на разницу в скорости)

Но доски GD32, кажется, трудно получить, я вообще не вижу никаких досок GD32 на Aliexpress или eBay.

Рекснанет
Пт 14 октября 2016 г. 13:18
Да, я пытался получить доску, но это нелегко... Так что я сдался.

С перегрузкой я могу заставить STM32 работать на 128 МГц и SPI на 64 МГц :)
Я опубликовал несколько видео об этом:
https: // www.YouTube.com/watch?V = DUI-L7S7NS0
https: // www.YouTube.com/watch?V = Voxv87-Hzt8

Дисплей (ILI9341) справляется с этим хорошо. Только на 80 МГц я не мог заставить его работать (используя ESP8266), но я все еще собираюсь попробовать с более короткими проводами. Я тестировал с 20 -сантиметровыми проводами Dupont, у меня сейчас около 10 см.

Мой следующий тест чипа будет ESP32... У него много всего :) ОЗУ, скорость, ядра, вспышка, булавки (...), Wi -Fi, Bt le... и меньше одной вещи: цена : D
Это разбит все остальное... ржу не могу

Но пока продолжайте загрузку изображения :)

Рекснанет
Пн 17 октября 2016 г., 9:22
Новые результаты:

-Добавлена ​​поддержка DMA на Flash Read. Теперь полноэкранное изображение занимает 90 мс : D "Более приятнее"! : D

- Каким -то образом портретные и ландшафтные режимы имеют разные байтовые заказа... Я тестировал в ландшафте, и когда я загрузил портретное изображение, все цвета были испорчены. Это не хорошо!!! Пришлось внести некоторые изменения, чтобы обнаружить позиционирование и записать на дисплей соответственно...

Я также сделал пример кода, который проходит всю память и отображает все доступные изображения :) Позже покажу что -нибудь классное :)

Не снял видео об этом...Но скоро будет доступно :)

Ахулл
Пн 17 октября 2016 г. 15:06
Если мои расчеты верны, 90 мс дает вам 11.11 кадров в секунду, что довольно впечатляет. : D

Рекснанет
Вт 25 октября 2016 г. 10:38 утра
А теперь видео :)

Отображение набора демонстрационных изображений:
https: // www.YouTube.com/watch?v = f2zsxgfdoyc

И петля, которую я сделал из демонстрационного видео:
https: // www.YouTube.com/watch?v = bmkz26xmywq

Я еще не ускорился. Еще еще нужно проверить перевернутую...
Я получаю около 88 мс за изображение, около 11 кадров в секунду.