Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2019-июл-18 03:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 71 ]  На страницу Пред.  1, 2, 3, 4, 5 Все
Автор Сообщение
СообщениеДобавлено: 2019-мар-29 11:52 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 44
Vasiliy писал(а):
Перепробовал все что мог.
Писал и читал три страницы памяти при работающем АЦП с прерываниями, воспроизвести сбой не получается.


Подтверждаю и для 1986ВЕ1Т (1444): много раз сохранял данные на EEPROM при работающем ADC.
Стоит попробовать сделать паузу после запрещения и до разрешения прерываний.
Код:
__disable_irq();   

pause();

    .... любая работа с EPROM из ОЗУ

pause();

    __enable_irq();


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-апр-25 20:34 
Не в сети

Зарегистрирован: 2019-янв-23 20:05
Сообщения: 3
Vasiliy писал(а):
Если появится возможность, вышлите пожалуйста минимальный проект на support@milandr.ru. Так, чтоб запустить и в исключение попасть.
Интересно что происходит.


Есть в наличии отладочная плата на ВЕ92. Постараюсь сделать проект под нее с воспроизведением проблемы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-05 15:32 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 44
Поясните пожалуйста каким образом рассчитывается скорость для I2C.
Контроллер 1986ВЕ91Т (на отладочной плате), HSE=8MHz. Ядро работает на частоте 8MHz.

Код:
//1. Так как при таких настройках вижу на осциллографе 62500 Гц (SCL линия)
I2C_InitStruct.I2C_ClkDiv = 16;
I2C_InitStruct.I2C_Speed = I2C_SPEED_UP_TO_400KHz;

//А при таких настройках 142000 Гц
I2C_InitStruct.I2C_ClkDiv = 1;
I2C_InitStruct.I2C_Speed  = I2C_SPEED_UP_TO_1MHz;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-05 17:54 
Не в сети

Зарегистрирован: 2017-фев-14 11:21
Сообщения: 115
Здравствуйте!

Делитель рассчитывается по формуле: div=cpu_clk/(f_scl*5-1)

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-05 19:38 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 44
Ekaterina писал(а):
Здравствуйте!

Делитель рассчитывается по формуле: div=cpu_clk/(f_scl*5-1)


Спасибо


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-09 11:32 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 44
Здравствуйте.
Проблема с I2C: нет приема данных.
Имеется 2 отладочных платы, соединенные по I2C как показано на рисунке.
Для обоих контроллеров:
Частота ядра 80МГц (HSE=8МГц).
Скорость I2C ~10кБит/c.

Параметры выводов портов:
PC0/PC1: альтернативная функция (SCL/SDA);
PD0/PD1: альтернативная функция (SCL/SDA);
нет подтяжки вверх;
нет подтяжки вниз;
нет триггера Шмитта;
нет фильтра;
максимально быстрый фронт;
управляемый драйвер.

Передаю байт по I2C по нажатию кнопки на плате 1986ВЕ91Т.
Передача завершается, контроллер не зависает, линии SCL и SDA переводятся в высокий уровень.
На осциллографе вижу, что на линиях SCL и SDA имеются данные и такты с нужной частотой.

При этом на принимающей стороне (1901ВЦ1Т) в регистре I2C->STA и I2C->RXD всегда нули.
При передаче со стороны 1901ВЦ1Т, в его регистре I2C->STA взводится бит прерывания (STA=0x81) и в
I2C->RXD читается принятый байт (т.е 1901ВЦ1Т принимает свои собственные отправленные данные).

Одинаковое поведение при передаче со стороны 1901ВЦ1Т приеме на 1986ВЕ91Т.

Помимо I2C на обоих платах задействованы:
светодиоды и кнопки, установленные на платах;
UART на выводах PF0/PF1;
прерывания от Timer1 с частотой 1000Гц.


Вложения:
Комментарий к файлу: Схема содинения
I2C_connect.png
I2C_connect.png [ 26.75 КБ | Просмотров: 146 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-09 12:52 
Не в сети

Зарегистрирован: 2014-июн-25 09:29
Сообщения: 118
Эти камни, к сожалению, не умеют работать как Slave I2C :( . Умеют работать только лишь в режиме Master. Поэтому связать две платы по I2C, не применяя программную реализацию Slave, невозможно. Реализовать же программно Slave I2C весьма накладно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-09 12:59 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 44
Спасибо за ответ. Я подозревал.
У меня только вопрос к пейсателям спецификаций на эти контроллеры: никак нельзя было одну строчку добавить "В данном контроллере реализован только режим I2C мастер"?! Руки бы отвалились?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-09 17:28 
Не в сети

Зарегистрирован: 2017-фев-14 11:21
Сообщения: 115
Здравствуйте!
Добавим в раздел 26 спецификации перед формулой расчета скорости обмена.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-11 09:55 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 44
Контроллер 1901ВЦ1Т, выпуск 1508.
Блок SDIO.
Перед передачей команды в SD карту приходится добавлять 8 тактов на линию SDIO_CLK,
иначе ответ от SD карты принимается через раз.

Для примера: при инициализации карты нужно в цикле отправлять команды CMD55 и ACMD41,
CMD55 - есть ответ от карты
ACMD41 - нет ответа
CMD55 - есть ответ
ACMD41 - нет ответа
и.т.д.

При вставке перед командой 8 тактов все работает без проблем.

Кто-нибудь еще сталкивался с таким поведением?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2019-июл-11 11:32 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 362
Откуда: ПКК "Миландр"
Тут вот сталкивались - https://startmilandr.ru/doku.php/prog:sd:sdio_vc1

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 71 ]  На страницу Пред.  1, 2, 3, 4, 5 Все

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB