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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Прошивка мк FRDM-kw40z
AlexandrY
сообщение May 1 2016, 10:34
Сообщение #16


Ally
******

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



Цитата(mrprim @ May 1 2016, 13:27) *
не работает почему-то на действие кнопки макрос на LED не выполняется.


В общем у меня раньше была похожая проблема с виртуалками, когда я работал с Java, попробуйте приоритет на Виртуальное соединение поставить второстепенный. В общем, у меня тоже вылазил синий экран на 8.1, когда было подключено моё основное соединение и к примеру несколько виртуальных.


А какой вариант приложения вы используете, bare metal или c использованием FreeRTOS?
А то там ведь надо проверку кнопки вставлять в тело активной задачи. А подходящие активные задачи еще надо найти.

Так у вас снифер все таки работает или нет?
Go to the top of the page
 
+Quote Post
mrprim
сообщение May 2 2016, 08:40
Сообщение #17





Группа: Участник
Сообщений: 11
Регистрация: 25-04-16
Пользователь №: 91 464



Цитата(AlexandrY @ May 1 2016, 11:34) *
А какой вариант приложения вы используете, bare metal или c использованием FreeRTOS?
Так у вас снифер все таки работает или нет?

я юзаю bare metal но сейчас думаю подключу FreeRtos
Usb-kw не тестил пока, так что на счёт снифера пока не отвечу.

Цитата(AlexandrY @ May 1 2016, 11:34) *
А то там ведь надо проверку кнопки вставлять в тело активной задачи. А подходящие активные задачи еще надо найти.


Проверка кнопки у меня стоит в колбеке и проверка сама, как я понял, работает. Просто там постоянно 0, и даже при нажатии ничего не меняется.

Ладно если по кнопке хрен разберешься, то подскажите куда залезть что бы найти команду на Delay. Облазил весь код и нашел максимум osa_timedelay() и то максимальное значение в нём это 23 wacko.gif
выглядит код моргающего леда вот так:
Код
void lptmr_call_back(void) {
      LED1_ON;
      OSA_TimeDelay(23);
      LED1_OFF;
      OSA_TimeDelay(23);
}

Частота вызова функции колбек TMR_PERIOD 500000U
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 2 2016, 09:26
Сообщение #18


Ally
******

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



Цитата(mrprim @ May 2 2016, 11:40) *
я юзаю bare metal но сейчас думаю подключу FreeRtos
Проверка кнопки у меня стоит в колбеке и проверка сама, как я понял, работает. Просто там постоянно 0, и даже при нажатии ничего не меняется.

Ладно если по кнопке хрен разберешься, то подскажите куда залезть что бы найти команду на Delay. Облазил весь код и нашел максимум osa_timedelay() и то максимальное значение в нём это 23 wacko.gif



Чтобы точно знать какие пины как настроены я применяю собственную схему инициализации.
Можно посмотреть вот в этом файле - https://github.com/Indemsys/K66BLEZ1/blob/m...K66BLEZ1_GPIO.c
Функция Config_pin
Это для MK66, но и для MKW40 подойдет в принципе

А в калбэке LP таймера я бы не рисковал делать длиные задержки. Эти таймера могут использоваться Host и Controller стеками BLE. Может быть нарушена их работоспособность.

С LED-ами же во фреймворке есть специальный механизм настройки вызова калбэков по таймеру - TMR_StartIntervalTimer
В файле LED.c от там продемонстрирован в функции LED_StartFlash. И для формирования нужных длительностей сигналов на LED применяется машина состояний со счетчиком состояний, а не задержки.

Если же желание делать на задержках очень велико, то надо создавать отдельную задачу для светодиода с приоритетом поменьше и уж там можно вставлять какие угодно задержки.
Но надо использовать RTOS тогда.
Go to the top of the page
 
+Quote Post
mrprim
сообщение May 4 2016, 16:50
Сообщение #19





Группа: Участник
Сообщений: 11
Регистрация: 25-04-16
Пользователь №: 91 464



Цитата(AlexandrY @ May 2 2016, 10:26) *
Чтобы точно знать какие пины как настроены я применяю собственную схему инициализации.
https://github.com/Indemsys/K66BLEZ1/blob/m...Z1_GPIO.c"]https://github.com/Indemsys/K66BLEZ1/blob/m...K66BLEZ1_GPIO.c[/url]
Функция Config_pin
Это для MK66, но и для MKW40 подойдет в принципе

Кстати очень удобный конфиг распиновки, не всё там нашел, но как я понимаю можно любой макрос создать.

Цитата(AlexandrY @ May 2 2016, 10:26) *
А в калбэке LP таймера я бы не рисковал делать длиные задержки. Эти таймера могут использоваться Host и Controller стеками BLE. Может быть нарушена их работоспособность.


на счёт этого, спасибо. Тут я погорячился что в колбек закидывал основные функции

Одно я понял, что часы копания в документациях помогут в любой проблеме, но это бешеная куча времени.
Вопросов у меня возникает очень много, поэтому я их буду задавать по мере изучения платы, может кто найдет темку.
А вы по мере возможности отвечайте, мне зачастую помогает ваша информация.

Следующий вопрос такой. Мне пришла BreadBoard и MCP3008 мой камень подключается к ней через SPI шину. а дальше разные игрушки подключаем уже на MCP. Работали с SPI, подскажете что меня спасёт? biggrin.gif
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение May 4 2016, 19:49
Сообщение #20


Ally
******

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



Цитата(mrprim @ May 4 2016, 19:50) *
Мне пришла BreadBoard и MCP3008 мой камень подключается к ней через SPI шину. а дальше разные игрушки подключаем уже на MCP. Работали с SPI, подскажете что меня спасёт? biggrin.gif


Вот как раз чтобы не связываться с дискретной SPI периферией я и поставил на свой модуль с MKW40 дополнительный микроконтроллер MK66
И теперь могу на этом сделать вот такой PLC с 20-ю 16-и битными аналоговыми входами.
Прикрепленное изображение


SPI у Kinetis работает надежно.
В одном из моих проектов MK60 работает по SPI с Wi-Fi чипом на скорости 20 Mbit по DMA.
Единственно при использовании DMA не удалось сделать автоматическое выставление CS. Из-за чего не вышло целые транзакции пакетов организовывать автоматом по DMA.
Go to the top of the page
 
+Quote Post
mrprim
сообщение May 4 2016, 22:06
Сообщение #21





Группа: Участник
Сообщений: 11
Регистрация: 25-04-16
Пользователь №: 91 464



Цитата(AlexandrY @ May 4 2016, 20:49) *
Вот как раз чтобы не связываться с дискретной SPI периферией я и поставил на свой модуль с MKW40 дополнительный микроконтроллер MK66
И теперь могу на этом сделать вот такой PLC с 20-ю 16-и битными аналоговыми входами.

SPI у Kinetis работает надежно.
В одном из моих проектов MK60 работает по SPI с Wi-Fi чипом на скорости 20 Mbit по DMA.
Единственно при использовании DMA не удалось сделать автоматическое выставление CS. Из-за чего не вышло целые транзакции пакетов организовывать автоматом по DMA.

К сожалению у меня нету возможности поставить доп модуль, и мне придется работать в мкс через дискретный spi.
Работали ли вы с ним, и есть ли примеры на kinetis с обработкой информации через spi, для того что бы хоть понять принцип взаимодействия
Go to the top of the page
 
+Quote Post
mrprim
сообщение May 15 2016, 16:29
Сообщение #22





Группа: Участник
Сообщений: 11
Регистрация: 25-04-16
Пользователь №: 91 464



Доброго времени суток еще раз, на данный момент я разобрался с SPI подключением(почти), не всегда работает правильно. Если будет время чуть позже опишу проблему.
Сейчас задача стоит следующая, имею 2 платы kw40z, нужно установить между ними i2c master slave соеденение
и с мастер борда получить доступ к данным акселерометра fxos8700cq
так вот, наигравшись с spi( к примеру для того что бы получить доступ к подключенной плате MCU3008 - я отправлял 3 байта(0x01, "далее байт порта на чипе", 0x00) тем самым просто отправив данные по SPI я получал ответ от нужного нам порта на MCU3008). Так вот i2c работает иначе, я прочитал даташит, нашел там список адресов к примеру who-i-am = 0x0d. У меня возник вопрос, каким образом мне получить ответ от fxos8700cq по i2c
Нужно отправить сам байт с адресом? или Нужно отправить 0xFF занеся адрес 0x0d в адрес конфиг?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 09:42
Рейтинг@Mail.ru


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