AlexandrY 3 4 января, 2017 Опубликовано 4 января, 2017 · Жалоба Кое-какие вещи могущие быть неочевидными при инициализации периферии и программировании Kinetis 1. Инициализация осциллятора от кварца. В целом кварцы у Kinetis запускаются очень надежнов в отличие от того же STM32. Но если установить в регистре MCG_C2 бит HGO0 в 1 (чтобы увеличить усиление генератора) для высокочастотных уварцев (> 10 МГц), то может не включится PLL0. Хотя осциллограф покажет очень хорошую осцилляцию с высокой амплитудой. 2. Ватчдог (WDOG) надо выключать сразу в первых командах инициализации. Иначе можете не успеть завершить даже саму инициализацию. Потом можно включить снова. 3. Чтобы USB могла передавать строки прямо из FLASH памяти надо отдельно разрешить мастеру DMA USB доступ к чтению FLASH памяти в регистре FMC_PFAPR В демо примерах от NXP это не делают. Также не забываем и про основной DMA и других мастеров на шине которым тоже надо открыть доступ к FLASH памяти. 4. Чтобы нормально работал модуль измерения скорости на 3-х фазных датчиках Холла мало включить бит 22 в регистре SIM_SOPT4, но надо еще и инициализировать все три канала таймеров FTM1 (канал 1) и FTM2 (канал 0 и 1) на захват по фронту и спаду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 4 января, 2017 Опубликовано 4 января, 2017 · Жалоба 2. Ватчдог (WDOG) надо выключать сразу в первых командах инициализации. Иначе можете не успеть завершить даже саму инициализацию. Потом можно включить снова. Прикольно. А если зависнем в инициализации, то навечно? Может просто сбросить и увеличить интервал, пока не прошли инит и зашли в основной цикл? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 4 января, 2017 Опубликовано 4 января, 2017 · Жалоба Прикольно. А если зависнем в инициализации, то навечно? Может просто сбросить и увеличить интервал, пока не прошли инит и зашли в основной цикл? Тут логика была такая: если вы зависли в инициализации, то вачдог не поможет , вы всегда там будете зависать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 5 января, 2017 Опубликовано 5 января, 2017 · Жалоба Тут логика была такая: если вы зависли в инициализации, то вачдог не поможет , вы всегда там будете зависать. Не факт. Ватчдог иногда помогает от аппаратных помех. Он не только для защиты от программных багов. Прошла такая помеха в некую периферию, ну и завис её драйвер. Собака всё пересбросит и следующий инит пройдёт успешно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asen 0 15 января, 2017 Опубликовано 15 января, 2017 · Жалоба Вылазила у кого нибудь проблема с залочиванием процессора и не возможностью стереть через SWD ? Вот что дает командер ! J-Link>unlock kinetis Found SWD-DP with ID 0x2BA01477 Unlocking device...O.K. J-Link>erase Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. Erasing device (MK66FX1M0xxx18)... Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. ERROR: Erase returned with error code -1. J-Link>device MK66FX1M0xxx18 Disconnecting from J-Link...O.K. Device "MK66FX1M0XXX18" selected. Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. Cannot connect to target. Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. Found SWD-DP with ID 0x2BA01477 ****** Error: Kinetis (connect): Timeout while unsecuring device. Erase never st arts. Kinetis (connect): Failed to unsecure Kinetis device. J-Link>d Есть какие либо решения ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ex-teck 0 14 мая, 2018 Опубликовано 14 мая, 2018 · Жалоба Такая же проблема с залочиванием контроллера... (NXP MK22FN128xxx10) * JLink Info: Protection bytes in flash at addr. 0x400 - 0x40F indicate that readout protection is set. For debugger connection the device needs to be unsecured. Note: Unsecuring will trigger a mass erase of the internal flash. ... ... ***JLink Error: Could not find core in Coresight setup Error: Flash Erase failed - Target DLL has been cancelled Кто-н знает решение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 15 мая, 2018 Опубликовано 15 мая, 2018 · Жалоба Кто-н знает решение? Не знаю как в современных Кинетисах, но когда работал с разными LPC, то если возникали проблемы с работой JTAG/SWD, то всегда спасало подключение через FlashMagic к UART и полное стирание чипа (именно команда "стереть весь чип", а не отдельные сектора флешь). PS: Странно однако - почему молчит адепт Кинетисов, присутствующий здесь? B) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 15 мая, 2018 Опубликовано 15 мая, 2018 · Жалоба Такая же проблема с залочиванием контроллера... (NXP MK22FN128xxx10) Кто-н знает решение? Во первых микроконтроллеры часто, как ни странно, просто умирают. С этим ничего поделать нельзя. Например взяли немытыми руками, и пробили по SWD DIO. Тут просто выкидываем в урну. Не далее как позавчера на моих глазах так убили. Просто мужик взялся переключать чета-там на плате не отключив питания. Во вторых народу очень полюбились китайские клоны. Ко мне коллега прибегает постоянно, то одно у него клон не программирует, то другое. В третьих сама схемотехника SWD на плате может быть слегка кривоватой. Короче, не важно что показывает JFlash, важно что было до этого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 15 мая, 2018 Опубликовано 15 мая, 2018 · Жалоба :bb-offtopic: Во первых микроконтроллеры часто, как ни странно, просто умирают. С этим ничего поделать нельзя. Да, микроконтроллер смертен, но это было бы ещё полбеды. Плохо то, что он иногда внезапно смертен, вот в чём фокус! Воланд Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 15 мая, 2018 Опубликовано 15 мая, 2018 · Жалоба Про немытые руки особенно понравилось. :biggrin: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 15 мая, 2018 Опубликовано 15 мая, 2018 · Жалоба Про немытые руки особенно понравилось. :biggrin: Ну, вдруг, они у вас испачканы эбонитовой пылью. Думаю, именно такой особый случай грязных рук имелся ввиду :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ex-teck 0 15 мая, 2018 Опубликовано 15 мая, 2018 · Жалоба Статика конечно иногда имеет место быть, но очень не хочется в это верить... Один экземпляр из 3х работает - стирается/шьется исправно. JLink конечно китайский, но неужели нельзя верить логу, в котором сказано что установлена защита по таким-то адресам и что-то вроде бы читается. Вот полный лог: * JLink Info: InitTarget() * JLink Info: Protection bytes in flash at addr. 0x400 - 0x40F indicate that readout protection is set. For debugger connection the device needs to be unsecured. Note: Unsecuring will trigger a mass erase of the internal flash. * JLink Info: Executing default behavior previously saved in the registry. * JLink Info: Device will be unsecured now. * JLink Info: Found SW-DP with ID 0x2BA01477 * JLink Info: Scanning AP map to find all available APs * JLink Info: AP[2]: Stopped AP scan as end of AP map has been reached * JLink Info: AP[0]: AHB-AP (IDR: 0x24770011) * JLink Info: AP[1]: JTAG-AP (IDR: 0x001C0000) * JLink Info: Iterating through AP map to find AHB-AP to use * JLink Info: AP[0]: Skipped. Invalid implementer code read from CPUIDVal[31:24] = 0x00 * JLink Info: AP[1]: Skipped. Not an AHB-AP ***JLink Error: Could not find core in Coresight setup Error: Flash Erase failed - Target DLL has been cancelled Flash Erase finished 10:48:54 Есть еще отладочная плата FRDM-K22F, пытались использовать ее программатор на OpenSDA, но там оказалось еще больше геморроя, хотя с установленным на отладочной MK22FN512 работает отлично. Не знаю как в современных Кинетисах, но когда работал с разными LPC, то если возникали проблемы с работой JTAG/SWD, то всегда спасало подключение через FlashMagic к UART и полное стирание чипа (именно команда "стереть весь чип", а не отдельные сектора флешь). PS: Странно однако - почему молчит адепт Кинетисов, присутствующий здесь? B) В моем случае для отладки выведены SWD и JTAG, они предусмотрены по умолчанию, к тому же FlashMagic просто не поддерживает эти семейства. Кто этот адепт? Таких людей должно быть ну очень мало, ибо уж слишком специфичный МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 15 мая, 2018 Опубликовано 15 мая, 2018 · Жалоба Про немытые руки особенно понравилось. :biggrin: А Вы что не в курсе что совсем недавно британскими учёными обнаружен новый вид электрогенерирующих бактерий?: https://www.infox.ru/news/232/science/medic...t-elektricestvo Вот так - подержались за железный пинцет, а потом - хвать за чип (этим же пинцетом)! и уноси готовенького... :crying: Так что, как тут уже советовали специалисты по кинетисам: чаще мойте руки и держитесь только за пинцеты из цветных металлов! :biggrin: Кто этот адепт? Таких людей должно быть ну очень мало, ибо уж слишком специфичный МК. Вы можете наблюдать его даже в этом топике. Тока он не признаётся, но все знают B) Наберите в поиске "kinetis" по форуму. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ex-teck 0 25 июня, 2018 Опубликовано 25 июня, 2018 · Жалоба Приветствую всех! Столкнулся со следующей проблемой... Есть рабочий код Bootloader-а, который работает на отладочной плате FRDM-K22F. Он же при замене файлов стартапа и разметки памяти работает на моей плате на чипе MK22FN128VDC10. Далее, заменили 128й чип на MK22FN512VDC12. Теперь Bootloader грузится в чип (из под KDS), но не работает, т.е. не коннектится к проге KinetisFlashTool... Кто может подсказать в чем проблема? Заранее спасибо. P.S. Есть другой Bootloader (Kinetis Bootloader v2.0.0, собранный в Keil), версия под 128й чип также работет нормально, а версия под 512й запускается только если поставить галочку на опции "Reset and Run" в настройках загрузки. Причем после снятия и подачи снова питания на плату больше не стартует... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ex-teck 0 26 июня, 2018 Опубликовано 26 июня, 2018 · Жалоба Опытным путем было выяснено, что процессор(MK22FN512) не делает Reset при старте... вроде и pull-up ставил/убирал, и с конденсатором игрался... картина не меняется. Где вы Адепт - очень нужно экспертное мнение Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться