Ви не увійшли.
ждем ) успехов.
что то вы пошли по сложному пути,
6 шт ( однотипных ) аналогових коммутаторов 1:2 ( что то с серии ADG ) закроет Вашу задачу
3 шт на интерфейс, 3 шт на аудио ( вам же стерео не обязательно? ) )
только не забывайте неиспользуемые линии подтянуть на интерфейсе
Нажаль, я не умію робити 2 і більше шин I2C на Arduino... тож попробую або з комутатором, або методом зміни рівня на піні BUSMODE.
" что за проект? ) интересные входные условия ) или большой секрет? ) "
на роботу необхідно зробити аналізатор рівнів сигналу одночасно трьох FM станцій, з можливістю послухати в будь-який час одну з них в ефірі.
Реалізую на Arduino + 3 TEA5676, TDA7313 (в ролі комутатора по НЧ), 3 світлодіодних стовпці, LCD екран і управління через IR.
На даний момент травлю переходніки на TEA5676, щоб можна було їх нормально запаяти на макетниці.
Як зроблю проект, виложу схему, програму і фото.
http://playground.arduino.cc/Main/SoftwareI2CLibrary
1 - на аппаратном
2 - на программном
3 - клон програмной библиотеки / либо коммутатор с примера
дайте урл библиотеку что используете
если флеш контроллера осталось мало, то проще коммутатор поставить
иначе разделить на 3 независимых программных канала I2C
а что за проект? ) интересные входные условия ) или большой секрет? )
Дякую за поради!
Я найшов в інтернеті одну статтю, де хлопці старалися і успішно підключили 2 ігрових джойстика-нунчаки одночасно до свого пристрою. У всіх нунчак Wii на планеті -- адреса 0, DEC.
Тож вони вийшли з ситуації за допомогою CD4066BC (щось типу наших К561КП2) інтегральна мікросхема комутатор: http://www.wayneandlayne.com/projects/v … ld/design/
Проте, у моєму випадку таких мікросхем потрібно 2 ( 3 лінії SDA і 3 лінії SCL), а мікросхема CD4066BC комутує лише до 4 ліній. Також, я переживаю чи не впливатиме негативно ця мікросхема-комутатор на шину I2C, якщо її впаяти в розрив шини.
Стосовно BUSMODE і BUSENABLE -- Ви надихнули мене на непогану ідею!!!
Вивід BUSMODE дозволяє вибирати інтерфейс модуля з I2C на SPI.
Якщо на ньому логічний "0", вибрана шина I2C.
Отже, по ідеї, я можу підключити три модуля TEA5767 напряму на шину, а виводи BUSMODE не садити прямо на корпус, як роблять усі конструктори FM приймачів, а натомість на виводи Arduino, наприклад pin2, pin3, pin4.
Тоді програма приблизно виглядатиме так:
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, HIGH);
Wire.beginTransmission(0x60);
Wire.write(0x00); // 1-й байт // працюємо з першим модулем
Wire.endTransmission();
digitalWrite(pin3, HIGH);
digitalWrite(pin3, LOW);
digitalWrite(pin4, HIGH);
Wire.beginTransmission(0x60);
... // працюємо з другим модулем
Wire.endTransmission();
digitalWrite(pin3, HIGH);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, LOW);
Wire.beginTransmission(0x60);
... // працюємо з третім модулем
Wire.endTransmission();
Тільки от виникає питання, чи не заглючить модуль, якщо на нього приходитимуть дані по протоколу I2C, а інтерфейс буде вибраний SPI ?? І чи працюватиме Arduino надійно при зчитуванні даних??
Стосовно ж BUSENABLE, на превеликий жаль, на модулі не виведений даний вивід... http://www.instructables.com/id/FM-radi … ro-contro/
Розміри модуля 11х11 мм, площа повністю заповнена елементами, а відстань між виводами мікросхеми всього лише 0,5мм.
Я маю мікроскоп і паяльну станцію, навики в такій роботі є, але я не думаю, що підпаявшись дротиком до ніжки мікросхеми, якість пайки гарантуватиме довгу і надійну роботу.
Тож прийдеться ідею з BUSENABLE відкинути...
https://www.sparkfun.com/datasheets/Wir … EA5767.pdf
The IC can be switched into a low current Standby mode with the standby bit; the bus is
then still active. The standby current can be reduced by deactivating the bus interface
(pin BUSENABLE LOW). If the bus interface is deactivated (pin BUSENABLE LOW)
without the Standby mode being programmed, the IC maintains normal operation, but is
isolated from the bus lines.
включайте свои по очереди.
подключите ножку , по картинкам видно что можно подпаятся
( BUSENABLE 13 bus enable input )
отключите режим сна, и все будет работать
либо сделайте 3 независимых I2C
программную шину реализуйте, 2+4 пина найдёте?
а что за BUS MODE? дайте даташит
Усім привіт!
Специфічне запитання:
Є три модулі FM тюнера TEA5676, які підключається по шині I2C.
Модуль надзвичайно популярний і в інтернеті є безліч прикладів з схемами та програмами FM приймача на Arduino.
Стикнувся з такою проблемою -- мені потрібно підключити три таких модуля до одної плати Arduino pro mini/ nano/ uno, але у всіх них ОДНАКОВА адреса 0х60.
В даташиті чорним по білому написано:
IC address: 110 0000b
Structure of the I2C-bus logic: slave transceiver
Subaddresses are not used
Тобто ніяких префіксів, а також апаратної зміни адреси за допомогою резисторів як тут https://learn.adafruit.com/adafruit-led … 2c-address в даному модулі, на жаль, не передбачено.
Отже, якщо я підключу три модулі одночасно, то командою Wire.beginTransmission(0x60); я керуватиму зразу трьома модулями, що мені не підходить.
Гуглив про ці модулі все що можна, рішення так і не знайшов.
Проте, пишуть що все ж вихід в таких ситуаціях є, і завжди можна підключити до 8 однакових мікросхем на шину I2C.
Можливо, хтось знає як заставити Arduino розрізняти ці три TEA5676?
Наскільки я знаю, кожна мікросхема має свій унікальний ID, можливо за допомогою цього можна якось вийти з даної ситуації?
Наперед дякую за будь-які відповіді.