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

 
 
> Slave HAL FreeRTOS, Эмуляция ds1307
simark1979
сообщение Feb 6 2018, 21:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 14-03-09
Из: Краснодарский край
Пользователь №: 46 094



Доброе время суток)

Извините за наглость rolleyes.gif но вопрос общего характера.

Мне нужно написать эмуляцию часов ds1307.
Понятно, что это будет slave, с командами чтения и записи по i2c
Никак в голове никак не складывается концепция реализации на FreeRTOS (имеется ввиду взаимодействие коллбэков и потоков, как распознать команды чтения/записи)

На картинке, пример работы с ds1307:
packet#27 - так происходит запись (первый байт куда писать, остальные что писать)
packet#28 - установка указателя для чтения
packet#29 - чтение данных

Вообщем протокол стандартный.
Прикрепленное изображение


Может у кого-то есть опыт или идеи по написанию слэйва под операционкой?
Буду рад любой помощи)

Сообщение отредактировал simark1979 - Feb 7 2018, 11:41
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
simark1979
сообщение Feb 8 2018, 10:16
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 14-03-09
Из: Краснодарский край
Пользователь №: 46 094



Спасибо Вам, что откликнулись.

Извините, что не указал камень (подумал, что для HAL это несущественно)
Камень stm32f407 конечно же там аппаратный i2c
Сейчас как Вы и предлагаете, прихожу к выводу, что HAL тут неуместен и нужен низкий уровень, но возможно ошибаюсь.

У меня вопрос был по реализации протокола именно на HAL_I2C

Понятно, как ловить генерацию СтартАдрес/Режим w/r со стороны мастера. Для этого есть HAL_I2C_AddrCallback()

Но нет понимания в следующем:
Как заставить HAL принять данные от мастера переменной длинны? Все функции HAL_I2C_Slave_Recieve* требую передать количество ожидаемых байт
Либо/и
Как ловить очередной принятый от мастера байт для анализа?
UPD: как поймать Stop.

Реализация HAL Slave, очень ограничена, или я чего-то не догоняю?

Сообщение отредактировал simark1979 - Feb 8 2018, 10:47
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 11:34
Рейтинг@Mail.ru


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