Добрый день!
При попытке использовать SPI-бутлоадер в контроллере STM32F401 столкнулся с проблемой - контроллер ведет себя не так как описано в документации.
Для опытов использую отладочную плату NUCLEO F401RE и аппликейшены AN4286+AN2606.
Использую SPI2 в следующей конфигурации: Slave mode, Full Duplex, 8-bit MSB, speed 1MHz, Polarity: CPOL Low, CPHA Low.
Выводы портов: NSS=0, boot0=1, boot1=0.
Сразу скажу что бутлоадер по UART1 работает нормально, т.е. ситуацию с тем что контроллер не переходит в boot-режим я отбрасываю.
После сброса я посылаю контроллеру байт синхронизации 0x5A и ожидаю в ответ получить 0xA5 (согласно документации), однако получаю 0x08. Попытку послать синхробайт делаю несколько раз и только после третьего 0x5A я получаю в ответ 0xA5.
Дальше судя по документации я должен послать 0x00 и ожидать ACK(0x79) или NACK(0x1F), но я сразу получаю 0x83. Я продолжаю "долбить" контроллер этим байтом 0x83 и спустя посылок так 200 получаю всетаки 0x79.
Считаю вроде как что синхронизация закончена, однако посылая команду 0x5A 0x00 0xFF я должен получить ACK иkи NACK однако контроллер возвращает мне чепуху какую-то.
Подскажите пожалуйста что я делаю не так?
Спасибо!