Рекснанет
Чт 25 августа 2016 г. 9:11
Привет,
Кто -нибудь удалось получить Flash SST26VF064B для работы на STM32DUINO?
Мне удалось обнаружить его, и часть чтения, кажется, в порядке (шина SPI в порядке, и я могу правильно прочитать идентификатор), но я не могу написать на нем...
Результаты запуска тестового кода из библиотеки SerialFlash:
Кто -нибудь удалось получить 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: Состояния блокировки записи записи
К сожалению, у меня нет устройства для игры, так что это примерно столько, сколько я могу сказать по этому вопросу.
WP# используется в сочетании с битами WPEN и IOC в регистре конфигурации, чтобы запретить операции записи
в регистр защиты блоков. Этот PIN-код работает только в режиме SPI, однобиточного и двойного чтения Похоже, вам нужно перечитывать главу 4 таблицы данных "4.1 защита устройства." .. и таблица 4-1: Состояния блокировки записи записи
К сожалению, у меня нет устройства для игры, так что это примерно столько, сколько я могу сказать по этому вопросу.
Рекснанет
Пт 26 августа 2016 г. 10:16
Это было первое, что я сделал Но, кажется, мне нужно перечитать еще 4 или 5 раз
Но даже с инвалидом WPEN и IOC, похоже, не вступают в силу.
Я пытаюсь скопировать код из примера MicroChip, чтобы увидеть, смогу ли я получить лучшие результаты.
Я пытался стереть полный чип, но не знаю, сработало ли он правильно, потому что теперь я читаю все нулы...
Оставайтесь с нами для следующего эпизода "Flash Wars"
Но даже с инвалидом WPEN и IOC, похоже, не вступают в силу.
Я пытаюсь скопировать код из примера MicroChip, чтобы увидеть, смогу ли я получить лучшие результаты.
Я пытался стереть полный чип, но не знаю, сработало ли он правильно, потому что теперь я читаю все нулы...
Оставайтесь с нами для следующего эпизода "Flash Wars"
Ахулл
Пт 26 августа 2016 г. 14:26
Рекснанет написал:Оставайтесь с нами для следующего эпизода "Flash Wars"
Ахулл
Сб 27 августа 2016 г. 9:24
Я все еще жду следующего захватывающего эпизода.
Рекснанет
Sun 28 августа 2016 г., 16:48
@ahull
Не ждать больше!!!
Вот:
Не ждать больше!!!
Вот:
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 - установлен.
Тестирование... еще нет
Python - установлен.
Pyserial - установлен.
Тестирование... еще нет
Ахулл
Пт, сентябрь 02, 2016, 11:38
Дайте нам знать, как проходит тестирование.
Какова цель этого таинственного устройства?
Какова цель этого таинственного устройства?
Martinayotte
Пт, сентябрь 02, 2016, 14:00
Кстати, я использовал эту библиотеку в прошлом, чтобы получить доступ к различным ароматам Winbond SPI Flash:
https: // github.com/lowpowerlab/spiflash
https: // github.com/lowpowerlab/spiflash
ZMEMW16
Пт
Ахулл написал:История смотрит, чтобы стать довольно интересной.
Держите нас в курсе вашего прогресса.
Держите нас в курсе вашего прогресса.
Рекснанет
Пн 12 сентября 2016 г. 8:23 утра
ZMEMW16 написал:Ахулл написал:
заинтересовался следующим поколением? Сент следующий
заинтересовался следующим поколением? Сент следующий
Martinayotte
Пн 12 сентября 2016 12:21
Я люблю Python !
Я использую его более 16 лет (с тех пор почти никогда больше никогда не использую Perl)
Какая именно проблема вы сталкиваетесь ?
Я использую его более 16 лет (с тех пор почти никогда больше никогда не использую Perl)
Какая именно проблема вы сталкиваетесь ?
Рекснанет
Пн 12 сентября 2016 г., 14:21
Martinayotte написал:Я люблю Python !
Я использую его более 16 лет (с тех пор почти никогда больше никогда не использую Perl)
Какая именно проблема вы сталкиваетесь ?
Я использую его более 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), но не получил вывода. Затем пришлось переключить внимание на другие вещи и остановился там...
Я нашел этот код от Роджера, но не проверил, определена ли константа или нет:
Но у меня есть вопрос:
Что такое серийная корреляция?
«Сериал» используется 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 работать.
После успешного тестового эскиза, я вернулся к оригинальному эскизу и...тапа... оно работает
Я сделал какой -либо изменение для работы... нет. Но это так, так...
Эпизоды отладки:
1- После добавления отладки обнаружил первую проблему:
Я сделал тестовый текстовый файл с некоторыми буквами в нем и назвал его «Тест.текст".
Затем я обнаружил, что на эскизе единственными разрешенными буквами являются ограничения!!!! Я был как "Что?!?!?!? почему?????? Это не так сложно добавить и спасти меня много работы..."
Итак, я добавил его к эскизу... (но также переименован в файл, чтобы двигаться вперед, на всякий случай...)
2- После некоторых маленьких модов эскиз закончится, но ничего не было написано...
Флэш -буфер установлен на 4096 байт, но USB -буфер установлен на 128 байт. Файл имел 908 байтов, а после 128 байтов эскиз двинулся и закончился без ничего не записанного на вспышке.
До сих пор не узнал, что происходит, но перенес USB -буфер на 4096, и эскиз успешно закончился.
Загрузил эскиз «Читать файлы из Flash», который я сделал, и Baaaamamm, файл был написан!!!
Это большой шаг вперед
Теперь что -то еще нужно сделать:
1- Узнайте, в чем дело с размер USB-буфера, потому что я подозреваю, что не могу написать файлы больше 4096 байтов с этой проблемой...
2- тест с написанными несколькими файлами.
3- Проверьте скорость!!!!
4- Подключитесь к ILI9341 и сделайте несколько фотографий!!!!
Редактировать:
1- Узнайте, в чем дело с размер USB-буфера, потому что я подозреваю, что не могу написать файлы больше 4096 байтов с этой проблемой... - не смотрел на это
2- тест с написанными несколькими файлами. - ХОРОШО
3- Проверьте скорость!!!! - Работаю OK @ SPI = 36 МГц. Разгонять еще впереди
4- Подключитесь к ILI9341 и сделайте несколько фотографий!!!! - «Скорее всего», «ОК» (у меня есть изображение, но изображение было не в порядке во время вспышки из -за материала "ESC" на эскизе. Я объясню это позже...
Наконец -то заставил USART2 работать.
После успешного тестового эскиза, я вернулся к оригинальному эскизу и...тапа... оно работает
Я сделал какой -либо изменение для работы... нет. Но это так, так...
Эпизоды отладки:
1- После добавления отладки обнаружил первую проблему:
Я сделал тестовый текстовый файл с некоторыми буквами в нем и назвал его «Тест.текст".
Затем я обнаружил, что на эскизе единственными разрешенными буквами являются ограничения!!!! Я был как "Что?!?!?!? почему?????? Это не так сложно добавить и спасти меня много работы..."
Итак, я добавил его к эскизу... (но также переименован в файл, чтобы двигаться вперед, на всякий случай...)
2- После некоторых маленьких модов эскиз закончится, но ничего не было написано...
Флэш -буфер установлен на 4096 байт, но USB -буфер установлен на 128 байт. Файл имел 908 байтов, а после 128 байтов эскиз двинулся и закончился без ничего не записанного на вспышке.
До сих пор не узнал, что происходит, но перенес USB -буфер на 4096, и эскиз успешно закончился.
Загрузил эскиз «Читать файлы из Flash», который я сделал, и Baaaamamm, файл был написан!!!
Это большой шаг вперед
Теперь что -то еще нужно сделать:
1- Узнайте, в чем дело с размер USB-буфера, потому что я подозреваю, что не могу написать файлы больше 4096 байтов с этой проблемой...
2- тест с написанными несколькими файлами.
3- Проверьте скорость!!!!
4- Подключитесь к ILI9341 и сделайте несколько фотографий!!!!
Редактировать:
1- Узнайте, в чем дело с размер USB-буфера, потому что я подозреваю, что не могу написать файлы больше 4096 байтов с этой проблемой... - не смотрел на это
2- тест с написанными несколькими файлами. - ХОРОШО
3- Проверьте скорость!!!! - Работаю OK @ SPI = 36 МГц. Разгонять еще впереди
4- Подключитесь к ILI9341 и сделайте несколько фотографий!!!! - «Скорее всего», «ОК» (у меня есть изображение, но изображение было не в порядке во время вспышки из -за материала "ESC" на эскизе. Я объясню это позже...
Рекснанет
Ср 12 октября 2016 г. 13:53
Таким образом, артефакты изображений не были связаны только с обнаружением байта «ESC» на сценарии и эскизе, но также с некоторыми потерями данных на последовательном соединении.
Дальнейшее расследование на пути: http: // www.STM32duino.com/viewtopic.PHP ... 985#p18985
Дальнейшее расследование на пути: 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). Придется исследовать...
Производительность по -прежнему не идеальна (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 -й подход
Я планирую, после установки дисплея и укажу на начало файла на вспышке, перенаправляю SO в Flash на SI дисплея, а затем выпустите передачу, чтобы предоставить такточный сигнал для транзакции.
Это позволит перенести изображение непосредственно на дисплей с максимальной скоростью (в конечном итоге при 64 МГц с разгоном ) почти 60 кадров в секунду скорость !!!
Единственным недостатком является то, что я должен добавить мультиплексор в цепь.
1 - Используйте 2 шины SPI: SPI1 для дисплея и SPI2 для Flash.
Это позволило бы использовать прямой DMA от одного к другому. Но SPI2 работает на половине скорости SPI1, так что это немного замедлило бы вещи (максимум 18 МГц).
2- Используйте SPI1 как для дисплея, так и для Flash.
Это позволяет более быстрое SPI (36 МГц), но нуждается в промежуточной буферизации и потребуется в 2 раза до длиной.
В конечном счете это приведет к половине скорости равных производительности (1), но я планирую попробовать другой подход, который использует преимущество от быстрых часов.
3 -й подход
Я планирую, после установки дисплея и укажу на начало файла на вспышке, перенаправляю SO в Flash на SI дисплея, а затем выпустите передачу, чтобы предоставить такточный сигнал для транзакции.
Это позволит перенести изображение непосредственно на дисплей с максимальной скоростью (в конечном итоге при 64 МГц с разгоном ) почти 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.
Также 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... и меньше одной вещи: цена
Это разбит все остальное... ржу не могу
Но пока продолжайте загрузку изображения
С перегрузкой я могу заставить 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... и меньше одной вещи: цена
Это разбит все остальное... ржу не могу
Но пока продолжайте загрузку изображения
Рекснанет
Пн 17 октября 2016 г., 9:22
Новые результаты:
-Добавлена поддержка DMA на Flash Read. Теперь полноэкранное изображение занимает 90 мс "Более приятнее"!
- Каким -то образом портретные и ландшафтные режимы имеют разные байтовые заказа... Я тестировал в ландшафте, и когда я загрузил портретное изображение, все цвета были испорчены. Это не хорошо!!! Пришлось внести некоторые изменения, чтобы обнаружить позиционирование и записать на дисплей соответственно...
Я также сделал пример кода, который проходит всю память и отображает все доступные изображения Позже покажу что -нибудь классное
Не снял видео об этом...Но скоро будет доступно
-Добавлена поддержка DMA на Flash Read. Теперь полноэкранное изображение занимает 90 мс "Более приятнее"!
- Каким -то образом портретные и ландшафтные режимы имеют разные байтовые заказа... Я тестировал в ландшафте, и когда я загрузил портретное изображение, все цвета были испорчены. Это не хорошо!!! Пришлось внести некоторые изменения, чтобы обнаружить позиционирование и записать на дисплей соответственно...
Я также сделал пример кода, который проходит всю память и отображает все доступные изображения Позже покажу что -нибудь классное
Не снял видео об этом...Но скоро будет доступно
Ахулл
Пн 17 октября 2016 г. 15:06
Если мои расчеты верны, 90 мс дает вам 11.11 кадров в секунду, что довольно впечатляет.
Рекснанет
Вт 25 октября 2016 г. 10:38 утра
А теперь видео
Отображение набора демонстрационных изображений:
https: // www.YouTube.com/watch?v = f2zsxgfdoyc
И петля, которую я сделал из демонстрационного видео:
https: // www.YouTube.com/watch?v = bmkz26xmywq
Я еще не ускорился. Еще еще нужно проверить перевернутую...
Я получаю около 88 мс за изображение, около 11 кадров в секунду.
Отображение набора демонстрационных изображений:
https: // www.YouTube.com/watch?v = f2zsxgfdoyc
И петля, которую я сделал из демонстрационного видео:
https: // www.YouTube.com/watch?v = bmkz26xmywq
Я еще не ускорился. Еще еще нужно проверить перевернутую...
Я получаю около 88 мс за изображение, около 11 кадров в секунду.