Недавно закупили партию STM32F407VET6 не у обычного поставщика, а где то в Китае. Тоже вроде по проверенному каналу, но: 1. На корпусе маркировка правильная, по крайней мере придраться не смог. При проверке уже в изделиях выяснилось, что контроллеры имеют Device ID = 0x411. Это вроде бы соответствует семейству STM32F2xx. Revision ID - Y. Сначала у меня была версия, что это баг с идентификацией, описанный в Errata, хотя он вроде только для ревизии А, а здесь Y. Но регистр CPUID из SCB содержит значение 0x412FC230, а для CortexM4 вроде бы должно быть 0x412FC241(но тут у меня уверенности нет). Если предположить, что кристалл правильный, просто ошибка в маркировке, то он должен нормально работать. Программа (для 407) записывается и читается нормально. Но не работает, виснет наглухо. Под отладчиком (из под IAR) можно увидеть, что сразу попадаем в обработчик HardFault и доступна только кнопка "Stop". После нажатия которой и видим, где находимся. Если нажать "Вернуться к MAIN", то опять зависаем там же. Вероятно, что я стал жертвой типичной китайской махинации, когда более дешевые кристаллы продаются под видом более дорогих. Или может кому то знакома подобная ситуация, и известно, как эти кристаллы заставить работать в качестве STM32F407VET6? P.S.: Хорошо, что партия небольшая, для теста, всего 50шт.
|