Перейти к содержанию
    

lucy

Участник
  • Постов

    5
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. STM32H7 I2C help!

    Если бы было все так просто)
  2. STM32H7 I2C help!

    т.е. pData и будут те данные, которые мне нужно записать в ЦАП? Регистров у него нет. У меня получаются данные в 16бит, которые мне нужно записать 1 раз. Значит size я обозначаю как 0х01? Еще вопрос по адресу: адрес 7битный, но указываю я 8битное значение (0х18), включая бит записи, правильно? Меня смущал тот факт, что регистр записи данных у нас имеет объем 8 бит. А уже в регистре управления 2 (I2C_CR2) я задаю объем данных, количество передаваемых байтов. В режиме дебаг плохо представляла, как это можно было реализовать, но без живого слэйва в принципе было не поэкспериментировать. А сейчас, указав в коде объем данных (pData) и количество раз передачи этих данных, я уже задаю необходимые значения бит в регистрах. Я все правильно понимаю? Скрины по регистрам и коду прикрепляю. Адрес ЦАПа у меня сейчас с учетом бита записи, т.е. к 7битам адреса добавила последний "0" для инициализации записи. Если в чем-то откровенно туплю, очень прошу проявить терпение Я неделю назад только начала открывать для себя этот мир со стороны кода))) Большое спасибо за помощь
  3. STM32H7 I2C help!

    Всем, доброго времени суток. Мне необходимо по шине I2C с МК передать инфу на внешний ЦАП о значении выходного напряжения. Данную задачу мне сейчас нужно реализовать лишь для инициализации и отладки устройства. Я сама не программист, поэтому вопрос для меня сложный. Что у меня имеется: сгенерированный код CubeIDE, использование HAL драйверов. Удалось самой разобраться как инициализировать с помощью HAL внутренний ЦАП через ОУ, задавать с него напряжение, но вот с внешним ЦАПом через I2C разобраться не могу окончательно. МК выступает в роли мастера, естественно. Как поняла, нужен режим Master_Transmit_Mode. В файле драйвера HAL для I2C по запуску данного режима, не могу понять, что мне вписывать в "pData" - так понимаю, это адрес ячейки, куда я передаю данные, но разве у меня будет необходимость в таком указателе??? У меня же не память, а ЦАП, куда надо передать данные в размере 2х байт. Что для меня будет "Timeout"? Если я передаю данные в размере 2х байт, как мне это обозначить? В режиме debug мне удалось передать адрес устройства, но т.к. на этот момент slave не был подключен, NACK я не получила и поэкспериментировать передавать данные мне не удалось. Буду очень признательна любой помощи. Прикрепляю скрин по инициализации I2C. Закоменченная строка //HAL_I2C_Master_Transmit(&hi2c1, 0x0C, pData, 0xffff, uint32_t Timeout); и есть то самое, над чем страдаю.
  4. Люди, вы вообще адекватные??? Я зашла спросить элементарный вопрос для опытного электронщика. Я недавно перешла на новую работу, ранее занималась источниками питания и максимум с чем имела дело, это rs-485. Когда-то регилась на другом форуме под мужским именем, проблем не было. Надо было сейчас также сделать. По делу: устройства, да, по daisy chain, если быть точнее. По схеме: смогу скинуть набросок от руки, мб фото экрана, но я че то очкую, тк секретка. А я еще тут новый человек. В чем тут провокация??? В вопросе по трассировке spi??????))) Само собой! Я тебе XS, а не XP! Ну, скажем, на 5% угадал по описанию)
  5. Трассировка SPI

    Всем, доброго времени суток!))) Так уж случилось, что ранее я не имела дел с SPI интерфейсом... Сейчас накидываю схему, где у меня 3 устройства общаются по кольцевой схеме. Расстояние между устройствами будет минимально возможное. В связи с этим встает вопрос: какие особенности трассировки следовало бы соблюсти? Изделие будет не сильно шумящее. Частота 20MHz. Ну, CLK я задам правило, чтобы расстояние не менее 0.5мм было до трассы. А вот фильтры, допустим, по линиям передачи ставить? Я думаю, что стоит подобрать на 50МГц ориентировочно. Все-таки spi довольно уязвим к помехам, как я считаю...
×
×
  • Создать...