Search the Community
Showing results for tags 'i2c'.
-
Разработка ПО (STM32, TMS320F28xxx, PIC, LPC)
C2000 posted a topic in Ищу работу
На время карантина ищу удаленную работу, дабы скомпенсировать денежные потери. Большой опыт в разработке как аппаратной части так и ПО. НО в данный момент приоритеты на стороне программного обеспечения, хотя если будет интересная (в смысле оплачиваемая) работа, то есть возможность разработки схем и трассировки PCB. Есть опыт работы с IDE: Eclipse, Keil, MPLAB, CodeComposer. Сейчас работаю в Eclipse + GCC, это среда разработки по умолчанию. Опять же если у заказчика есть жесткие требования, то можно будет использовать и другую среду разработки. Ради интереса не работаю, проекты на 2 часа (как бы) где 95% уже сделано, осталось всего 5% доделать тоже не интересны. Адрес для связи: ksrp@yandex.ru -
I2C Fast Mode
dmt0768 posted a topic in Интерфейсы
Добрый день! В рамках моего проекта мне необходимо ускорить работу интерфейса I2C до режима Fast Mode. Использую BeagleBone Black на Debian 9. Всё, о чём я читал в интернете, говорит о том, что необходимо изменить пару строк в драйвере I2C. Но я почему-то сомневаюсь, что это делается именно так... И первый вопрос -- действительно ли для этого нужно лезть в драйвера? И потом, если это так, я нашёл в файловой системе эти драйвера, там 6 файлов. И тогда второй вопрос -- как в них обычно разбираются? Да, мне нужно найти только одну строчку (по-видимому), но всё же. P.s. есть аналогичный вопрос с SPI, там мне нужно изменить режим Master на Slave, вроде тоже через драйвера делается. Это, наверное, тема отдельного обсуждения, но если есть универсальные советы -- буду только рад. -
Добрый день форумчане. Вот ломаю голову как мне запрограммировать внешнюю 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
-
LVDS данные с КМОП-матрицы
Klayton posted a topic in от ТТЛ до LVDS здесь
Всем привет! Имеется отладочная плата с сенсором MT9v124. При подаче питания на выходе LVDS следующий непонятный сигнал (см. Прикрепленные) . Сигнал снимался с линий LVDS относительно друг друга. Причем переключение на плате джмапера Standby mode никаких изменений не вызывает. Ток потребления 10 мА (который по всей видимости потребляет только кварц, потому что при его отключении ток падает до 0). Возможно требуется прописать в регистр матрицы какую-то команду через I2C, чтоб она "завелась"? Описание регистров (удобнее всего смотреть в браузере internet explore) и считанные данные с регистров матрицы на плате тоже прикрепляю. MT9V124-REV2.xsdat EVBUM2468-D.PDF MT9V124-D-1101616.pdf -
Реализация I2C
Alexey87 posted a topic in Работаем с ПЛИС, области применения, выбор
Добрый день! Пытаюсь записать и прочитать в микросхему 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) видео. Посмотрите пожалуйста, рабочий ли код?