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

Поиск

Показаны результаты для тегов 'i2c'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Нейронные сети и машинное обучение (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
    • Методы и средства верификации ПЛИС/ASIC
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCU)
    • Cредства разработки для МК
    • ARM
    • RISC-V
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
    • Пайка и монтаж
    • Корпуса
    • Вопросы надежности и испытаний
  • Аналоговая и цифровая техника, прикладная электроника
    • Вопросы аналоговой техники
    • Цифровые схемы, высокоскоростные ЦС
    • RF & Microwave Design
    • Метрология, датчики, измерительная техника
    • АВТО электроника
    • Умный дом
    • 3D печать
    • Робототехника
    • Ремонт и отладка
  • Силовая электроника - Power Electronics
    • Силовая Преобразовательная Техника
    • Обратная Связь, Стабилизация, Регулирование, Компенсация
    • Первичные и Вторичные Химические Источники Питания
    • Высоковольтные Устройства - High-Voltage
    • Электрические машины, Электропривод и Управление
    • Индукционный Нагрев - Induction Heating
    • Системы Охлаждения, Тепловой Расчет – Cooling Systems
    • Моделирование и Анализ Силовых Устройств – Power Supply Simulation
    • Компоненты Силовой Электроники - Parts for Power Supply Design
  • Интерфейсы
    • Форумы по интерфейсам
  • Поставщики компонентов для электроники
    • Поставщики всего остального
    • Компоненты
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
    • Обсуждение Майнеров, их поставки и производства
  • Дополнительные разделы - Additional sections
    • Встречи и поздравления
    • Ищу работу
    • Предлагаю работу
    • Куплю
    • Продам
    • Объявления пользователей
    • Общение заказчиков и потребителей электронных разработок

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники


Звание

Найдено: 0 результатов

  1. Возможно ли такое в принципе: максимально упрощённый I2C slave, пусть это будет примитивный IO-expander (или даже O-expander для упрощения): мастер в него только пишет, никогда не читает. Т.о. от слейва потребуется только где надо (9й бит) драйвить SDA выдавая АСК. В принципе всё защёлкивание адресов, данных внутри слейва можно сделать по SCL, тоже самое с формированием АСК. Но вот в чём засада - так это то как детектировать START & STOP события? По классике: семплируются SCL & SDA доп. клоком, выявляется фронт/спад и детектируются START & STOP на основе задержанных на такт доп.клока и не задержанных SCL & SDA. Может ли в случае отсутствия дополнительного клока помочь какая-нить хитрая схема с защёлками вместо триггеров? PS: Теже микросхемы IO-expander'ов работают ведь без дополнительного внешнего клока (конечно может у них внутри RC-осциллятор, но тогда никакого low-power - раз там постоянно ножкой надо трепыхать).
  2. Не очень понятно в какой раздел форума следует писать, пишу сюда потому что процессор stm32g031. Работаю с rfid считываталями fm17522e - это полнофункциональный аналог nxp-шной mfrc522. Их до 16-ти штук подключено на шину i2c. Чип позволяет задать адрес i2c. Используется ардуиновская либа через прокладку-драйвер чтобы работало в rtos и в многопотоке. Работа со считывателями идет в несколько потоков (сейчас 2, будет 4) под rtos CibiOs. И вот при параллельной работе вылезли странности. Если адрес i2c больше 8 - все работает как задумано. А если подключить чип с адресом меньше 8 - работать перестает. В один поток (т.е поочередно) все без проблем работает с любыми адресами. Действия пока простые: чтение серийника (1) PICC_IsNewCardPresent() (2) PICC_Select(...) (3) PICC_HaltA() Пока такое впечатление что если между 1) и 3) есть обмен с другим устройством то чип с адресом менее 8 начинает глючить. Вообще встречалось ли кому нибудь влияние "чужого" трафика на шине i2c на выполняемую в данный момент операцию ?
  3. Всем привет. Вопрос гуру. Пытаюсь в stm32 cube организовать с помощью HAL обмен данными по i2c шине между двумя stm32 платами: NUCLEO-L053R8 (i2c-slave) NUCLEO-F746ZG (i2c-master) Обмен в обе стороны должен быть завершён 100 раз в секунду. Обнаружил, что код: HAL_I2C_Master_Transmit_DMA(hi2c, DevAddress, pData, Size); isTransmitProcess = 1; вызывает срабатывание калбека MasterTxCpltCallback() до того, как дойдёт до строчки "isTransmit = 1;". Выглядит, как будто HAL сгрузил pData и Size в dma и отрапортовал, что передача завершена. При этом dma имеет статус HAL_I2C_STATE_READY. Регистр NTDR при этом равен нулю. Соответственно, вопрос: как узнать, что шина i2c реально освободилась.
  4. Не пойму в чем проблема, код приложен ниже. Общение должно происходить по i2c между msp430f5342 и max15301 через мультиплексор TSA9548. То есть адресом ведомого является 0x75, для обращения к линии, где находится несколько max15301, а затем первым передаваемым байтом идёт адрес нужного мне max15301, а затем уже команда, для вывода, например входного напряжения. Сами байты поступают на шину TX, но шина RX пустует :(. Не пойму в чем проблема? i2cmsp430.docx
  5. На время карантина ищу удаленную работу, дабы скомпенсировать денежные потери. Большой опыт в разработке как аппаратной части так и ПО. НО в данный момент приоритеты на стороне программного обеспечения, хотя если будет интересная (в смысле оплачиваемая) работа, то есть возможность разработки схем и трассировки PCB. Есть опыт работы с IDE: Eclipse, Keil, MPLAB, CodeComposer. Сейчас работаю в Eclipse + GCC, это среда разработки по умолчанию. Опять же если у заказчика есть жесткие требования, то можно будет использовать и другую среду разработки. Ради интереса не работаю, проекты на 2 часа (как бы) где 95% уже сделано, осталось всего 5% доделать тоже не интересны. Адрес для связи: [email protected]
  6. I2C Fast Mode

    Добрый день! В рамках моего проекта мне необходимо ускорить работу интерфейса I2C до режима Fast Mode. Использую BeagleBone Black на Debian 9. Всё, о чём я читал в интернете, говорит о том, что необходимо изменить пару строк в драйвере I2C. Но я почему-то сомневаюсь, что это делается именно так... И первый вопрос -- действительно ли для этого нужно лезть в драйвера? И потом, если это так, я нашёл в файловой системе эти драйвера, там 6 файлов. И тогда второй вопрос -- как в них обычно разбираются? Да, мне нужно найти только одну строчку (по-видимому), но всё же. P.s. есть аналогичный вопрос с SPI, там мне нужно изменить режим Master на Slave, вроде тоже через драйвера делается. Это, наверное, тема отдельного обсуждения, но если есть универсальные советы -- буду только рад.
  7. Добрый день форумчане. Вот ломаю голову как мне запрограммировать внешнюю PLL с ПЛИС по интерфейсу I2C. Может кто-то сталкивался с этой микросхемой и сможет подсказать. В моём проекте используется микросхема PLL Cypress CY27410FLTXI. Я хочу её запрограммировать через I2C интерфейс используя I2C master реализованный в FPGA . Данные конфигурации находятся в памяти FPGA. Для того что бы её запрограммировать мне необходимо записать по I2C 384 байт данных конфигурации (128 байт для области CM и 256 для Profile_0). I2C интерфейс позволяет адресовать только 256 байт. Подскажите, как мне запрограммировать CY27410FLTXI? 001-89074_CY27410_4_PLL_SPREAD_SPECTRUM_CLOCK_GENERATOR.pdf 001-94024_AN94024_GETTING_STARTED_WITH_CY27410_30_4-PLL_SPREAD-SPECTRUM_CLOCK_GENERATOR.pdf
  8. Всем привет! Имеется отладочная плата с сенсором MT9v124. При подаче питания на выходе LVDS следующий непонятный сигнал (см. Прикрепленные) . Сигнал снимался с линий LVDS относительно друг друга. Причем переключение на плате джмапера Standby mode никаких изменений не вызывает. Ток потребления 10 мА (который по всей видимости потребляет только кварц, потому что при его отключении ток падает до 0). Возможно требуется прописать в регистр матрицы какую-то команду через I2C, чтоб она "завелась"? Описание регистров (удобнее всего смотреть в браузере internet explore) и считанные данные с регистров матрицы на плате тоже прикрепляю. MT9V124-REV2.xsdat EVBUM2468-D.PDF MT9V124-D-1101616.pdf
  9. Добрый день! Пытаюсь записать и прочитать в микросхему 24с04 (память) при помощи этого кода: module Master( input wire clk, input wire reset, output reg i2c_sda, output wire i2c_scl ); //goal is to write to device address 0x50, 0xaa localparam STATE_IDLE = 0; localparam STATE_START = 1; localparam STATE_ADDR = 2; localparam STATE_RW = 3; localparam STATE_WACK = 4; localparam STATE_DATA = 5; localparam STATE_STOP = 6; localparam STATE_WACK2 = 7; reg [7:0] state; reg [6:0] addr; reg [7:0] data; reg [7:0] count; reg i2c_scl_enable = 0; assign i2c_scl = (i2c_scl_enable == 0) ? 1 : clk; always @(negedge clk) begin if (reset == 1) begin i2c_scl_enable = 0; end else begin if ((state == STATE_IDLE) || (state == STATE_START) || (state == STATE_STOP)) begin i2c_scl_enable = 0; end else begin i2c_scl_enable = 1; end end end always @(posedge clk) begin if (reset == 1) begin state <= 0; i2c_sda <= 1; //i2c_scl <= 1; addr <= 7'h50; count <= 8'd0; end else begin case(state) STATE_IDLE: begin // idle i2c_sda <= 1; state <= STATE_START; end STATE_START: begin // start i2c_sda <= 1; state <= STATE_ADDR; count <= 6; end // end state start STATE_ADDR: begin // msb address bit i2c_sda <= addr[count]; if (count == 0) state <= STATE_RW; else count <= count - 1; end // end state addr STATE_RW: begin i2c_sda <= 1; state <= STATE_WACK; end // end state rw STATE_WACK: begin state <= STATE_DATA; count <= 7; end // end state wack STATE_DATA: begin i2c_sda <= data[count]; if (count == 0) state <= STATE_WACK; else count <= count -1; end // end state data STATE_WACK2: begin state <= STATE_STOP; end // state wack2 STATE_STOP: begin i2c_sda <= 1; state <= STATE_IDLE; end // state stop endcase end end endmodule код взят из этого I2C - Bus Master - Step 1 (and step 2) видео. Посмотрите пожалуйста, рабочий ли код?
×
×
  • Создать...