реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Список проблемных моментов при программировании Kinetis
AlexandrY
сообщение Jan 4 2017, 12:13
Сообщение #1


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Кое-какие вещи могущие быть неочевидными при инициализации периферии и программировании 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) на захват по фронту и спаду.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 4 2017, 20:11
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AlexandrY @ Jan 4 2017, 15:13) *
2. Ватчдог (WDOG) надо выключать сразу в первых командах инициализации. Иначе можете не успеть завершить даже саму инициализацию. Потом можно включить снова.


Прикольно. А если зависнем в инициализации, то навечно? Может просто сбросить и увеличить интервал, пока не прошли инит и зашли в основной цикл?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 4 2017, 20:23
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(mantech @ Jan 4 2017, 22:11) *
Прикольно. А если зависнем в инициализации, то навечно? Может просто сбросить и увеличить интервал, пока не прошли инит и зашли в основной цикл?


Тут логика была такая:
если вы зависли в инициализации, то вачдог не поможет , вы всегда там будете зависать.




Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 5 2017, 12:19
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Jan 4 2017, 23:23) *
Тут логика была такая:
если вы зависли в инициализации, то вачдог не поможет , вы всегда там будете зависать.

Не факт. Ватчдог иногда помогает от аппаратных помех. Он не только для защиты от программных багов.
Прошла такая помеха в некую периферию, ну и завис её драйвер. Собака всё пересбросит и следующий инит пройдёт успешно.
Go to the top of the page
 
+Quote Post
asen
сообщение Jan 15 2017, 05:15
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Вылазила у кого нибудь проблема с залочиванием процессора и не возможностью стереть через 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



Есть какие либо решения ?
Go to the top of the page
 
+Quote Post
ex-teck
сообщение May 14 2018, 14:02
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 1-11-10
Пользователь №: 60 572



Такая же проблема с залочиванием контроллера... (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

Кто-н знает решение?
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 15 2018, 05:41
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ex-teck @ May 14 2018, 17:02) *
Кто-н знает решение?

Не знаю как в современных Кинетисах, но когда работал с разными LPC, то если возникали проблемы с работой JTAG/SWD, то всегда спасало подключение через FlashMagic к UART и полное стирание чипа (именно команда "стереть весь чип", а не отдельные сектора флешь).

PS: Странно однако - почему молчит адепт Кинетисов, присутствующий здесь? cool.gif
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 15 2018, 05:55
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(ex-teck @ May 14 2018, 17:02) *
Такая же проблема с залочиванием контроллера... (NXP MK22FN128xxx10)

Кто-н знает решение?

Во первых микроконтроллеры часто, как ни странно, просто умирают. С этим ничего поделать нельзя.
Например взяли немытыми руками, и пробили по SWD DIO.
Тут просто выкидываем в урну.
Не далее как позавчера на моих глазах так убили.
Просто мужик взялся переключать чета-там на плате не отключив питания.

Во вторых народу очень полюбились китайские клоны. Ко мне коллега прибегает постоянно, то одно у него клон не программирует, то другое.
В третьих сама схемотехника SWD на плате может быть слегка кривоватой.

Короче, не важно что показывает JFlash, важно что было до этого.

Go to the top of the page
 
+Quote Post
alexunder
сообщение May 15 2018, 06:42
Сообщение #9


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



bb-offtopic.gif
Цитата(AlexandrY @ May 15 2018, 07:55) *
Во первых микроконтроллеры часто, как ни странно, просто умирают. С этим ничего поделать нельзя.


Цитата
Да, микроконтроллер смертен, но это было бы ещё полбеды. Плохо то, что он иногда внезапно смертен, вот в чём фокус!
Воланд


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 15 2018, 06:55
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Про немытые руки особенно понравилось. biggrin.gif


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
alexunder
сообщение May 15 2018, 06:59
Сообщение #11


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(WHALE @ May 15 2018, 08:55) *
Про немытые руки особенно понравилось. biggrin.gif

Ну, вдруг, они у вас испачканы эбонитовой пылью. Думаю, именно такой особый случай грязных рук имелся ввиду sm.gif


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
ex-teck
сообщение May 15 2018, 07:35
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 1-11-10
Пользователь №: 60 572



Статика конечно иногда имеет место быть, но очень не хочется в это верить... Один экземпляр из 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 работает отлично.

Цитата(jcxz @ May 15 2018, 08:41) *
Не знаю как в современных Кинетисах, но когда работал с разными LPC, то если возникали проблемы с работой JTAG/SWD, то всегда спасало подключение через FlashMagic к UART и полное стирание чипа (именно команда "стереть весь чип", а не отдельные сектора флешь).

PS: Странно однако - почему молчит адепт Кинетисов, присутствующий здесь? cool.gif


В моем случае для отладки выведены SWD и JTAG, они предусмотрены по умолчанию, к тому же FlashMagic просто не поддерживает эти семейства.

Кто этот адепт? Таких людей должно быть ну очень мало, ибо уж слишком специфичный МК.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 15 2018, 08:03
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(WHALE @ May 15 2018, 09:55) *
Про немытые руки особенно понравилось. biggrin.gif

А Вы что не в курсе что совсем недавно британскими учёными обнаружен новый вид электрогенерирующих бактерий?: https://www.infox.ru/news/232/science/medic...t-elektricestvo
Вот так - подержались за железный пинцет, а потом - хвать за чип (этим же пинцетом)! и уноси готовенького... crying.gif
Так что, как тут уже советовали специалисты по кинетисам: чаще мойте руки и держитесь только за пинцеты из цветных металлов! biggrin.gif

Цитата(ex-teck @ May 15 2018, 10:35) *
Кто этот адепт? Таких людей должно быть ну очень мало, ибо уж слишком специфичный МК.

Вы можете наблюдать его даже в этом топике. Тока он не признаётся, но все знают cool.gif
Наберите в поиске "kinetis" по форуму. rolleyes.gif
Go to the top of the page
 
+Quote Post
ex-teck
сообщение Jun 25 2018, 11:36
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 1-11-10
Пользователь №: 60 572



Приветствую всех! Столкнулся со следующей проблемой...

Есть рабочий код Bootloader-а, который работает на отладочной плате FRDM-K22F. Он же при замене файлов стартапа и разметки памяти работает на моей плате на чипе MK22FN128VDC10.
Далее, заменили 128й чип на MK22FN512VDC12. Теперь Bootloader грузится в чип (из под KDS), но не работает, т.е. не коннектится к проге KinetisFlashTool...
Кто может подсказать в чем проблема? Заранее спасибо.

P.S. Есть другой Bootloader (Kinetis Bootloader v2.0.0, собранный в Keil), версия под 128й чип также работет нормально, а версия под 512й запускается только если поставить галочку на опции "Reset and Run" в настройках загрузки.
Причем после снятия и подачи снова питания на плату больше не стартует...
Go to the top of the page
 
+Quote Post
ex-teck
сообщение Jun 26 2018, 06:49
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 1-11-10
Пользователь №: 60 572



Опытным путем было выяснено, что процессор(MK22FN512) не делает Reset при старте... вроде и pull-up ставил/убирал, и с конденсатором игрался... картина не меняется.
Где вы Адепт - очень нужно экспертное мнение
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th April 2024 - 13:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01515 секунд с 7
ELECTRONIX ©2004-2016