Віртуальні емулятори USB для комп'ютера. Створюємо віртуальну флешку у комп'ютері. Де можна придбати Тріому

💖 Подобається?Поділися з друзями посиланням

Розробка різних пристроївна основі мікроконтролерів - заняття, гідне справжнього комп'ютерного гіка. Безперечно, корисною фішкою будь-якого гаджета буде USB-інтерфейс для підключення до комп'ютера. Але що робити, якщо в мікросхемі AVR не передбачено апаратну підтримку USB?

V-USB: розмір має значення

Під час створення власного гаджета часто постає проблема його підключення до комп'ютера. Треба сказати, що порти LPT і COM – тепер екзотика на материнських платахПК, не кажучи про ноутбуки, у яких ці інтерфейси зникли давно. Тому в сучасних комп'ютерівпрактично не залишилося альтернатив інтерфейсу USB.

Якщо ресурси чіпа використовуються на всі сто відсотків, то краще відразу дивитися у бік пристроїв з апаратною підтримкою універсальної послідовної шини (такі мікроконтролери є в лінійці будь-якого виробника). В інших випадках можна використовувати софтовий USB.

Для мікроконтролерів Atmel існує чудовий проект V-USB, який пропонує програмну реалізацію низькошвидкісного пристрої USB 1.1. Код V-USB буде працювати на будь-якому пристрої AVR, який має хоча б 2 Кб Flash-пам'яті та 128 байт ОЗУ, з тактовою частотою 12; 12,8; 15; 16; 16,8 чи 20 МГц.

Використання продукту можливе як в рамках Open Source ліцензії GPL, так і на комерційній основі. Для того щоб розробляти власні USB-пристрої, зазвичай також потрібно купувати щось на зразок ліцензії. Але хлопці з V-USB подбали і про це, придбавши пару Vendor ID - Product ID і дозволивши їх використати будь-кому.

Апаратна обв'язка для підключення USB-шини до мікроконтролера дуже проста. Якщо пристрій споживає не надто багато, то запитати його можна прямо від шини (вважається, що лінія живлення USB комп'ютера здатна віддавати струм до 500 мА). Оскільки інформаційні лінії (D+ і D–) використовують рівень сигналу 3,6, крім струмообмежувальних резисторів, необхідні стабілітрони для узгодження з 5-вольтовою логікою чіпа. Щоб позначити тип підключення, потрібно підтягнути напругу живлення через опір 1,5 кОм до лінії D–.

Альтернативний варіант сполучення USB - знизити напругу живлення контролера за допомогою відповідної мікросхеми стабілізації або просто парою діодів. Останню схему можна знайти на сайті проекту V-USB.

Програматор USBtiny

Для мікроконтролерів AVR існує багато різних програматорів. USBtiny тут згадується, зокрема, тому, що містить програмну реалізацію USB, аналогічну V-USB. Схема цього програматора проста: версія 2 містить дві мікросхеми, а перша версія - лише одну (власне чіп ATtiny2313). Завдяки докладний описна сайті і простим комплектуючим пристрій легко зробити навіть початківцю. USBtiny сумісний з популярною програмою avrdude, що використовується для програмування мікроконтролерів AVR.

Єдина проблема полягає в заливці прошивки в чіп програматора - для цього потрібний програматор. Якщо є комп'ютер з LPT-портом, то можна зробити один із варіантів FBPRG ака «п'ять проводків», який залізно

Готуємо санчата

Програмний інструментарій, необхідний для реалізації найпростішої прошивки USB-гаджета, дуже аскетичний: компілятор gcc-avr, бібліотека avr-libc, програматор avrdude та набір binutils для AVR. У Debian/Ubuntu все, що потрібно, встановлюється однією командою:

$ sudo apt-get install avrdude binutils-avr gcc-avr avr-libc

На безкраїх просторах інтернету нескладно знайти дуже докладний посібникпо V-USB та libusb (англійською). Згідно з мануалом, для додавання підтримки USB в проект знадобиться папка usbdrv з архіву з останньою версією V-USB. Корінь цієї папки містить шаблон конфігурації usbconfig-prototype.h. Потрібно зробити копію цього файлу, назвавши її usbconfig.h. Далі - виправити usbconfig.h, вказавши порт (D), лінії якого будуть використовуватися для введення-виведення, безпосередньо номери лінії D+ (2) та D-(3), а також частоту (12 МГц), на якій працює чіп (ATtiny2313 ):

#define USB_CFG_IOPORTNAME D #define USB_CFG_DMINUS_BIT 3 #define USB_CFG_DPLUS_BIT 2 #define USB_CFG_CLOCK_KHZ 12000

Щоб скористатися ліцензією V-USB для пристрою, числові ідентифікатори виробника та пристрою не потрібно змінювати. А ось символьні імена можна вибрати на свій смак (вони дозволять відрізнити кілька пристроїв на основі V-USB, підключених до одного і того ж комп'ютера):

#define USB_CFG_VENDOR_ID 0xc0, 0x16 #define USB_CFG_DEVICE_ID 0xdc, 0x05 #define USB_CFG_VENDOR_NAME "n","e","t","s","4","g","e","e" ,"s",".","c","o","m" #define USB_CFG_VENDOR_NAME_LEN 14 #define USB_CFG_DEVICE_NAME "U","S","B","e","x","a" ,"m","p","l","e" #define USB_CFG_DEVICE_NAME_LEN 10

Різноманітні гаджети

У тебе є ідея якогось пристрою? Не поспішай паяти та кодити, а пошукай, можливо, хтось подібне вже робив. Якщо не вийде скористатися готовими схемами та вихідниками, то хоча б не доведеться починати все з нуля.

Наприклад, проект V-USB завдяки ліцензійній політиці накопичив пристойну базу готових (у тому числі й вільно розповсюджуваних) рішень. Тут можна знайти різні реалізації клавіатур, USB-адаптерів для джойстиків, геймпадів (у тому числі і раритетних, наприклад SNES/NES, Nintendo 64, ZX Spectrum джойстик, Sony PlayStation 1/2) тощо. Адаптери DMX, віртуальні порти COM та UART, i2c, Servo, бездротові інтерфейси DCF77, IR – все, що допоможе підключити до ПК більше нових пристроїв. Логгери, платформи для датчиків та сенсорів, адаптери для LCD-дисплеїв, програматори та завантажувачі також можуть виявитися корисними у господарстві.

Програма для чіпа – елементарно!

При взаємодії по шині USB комп'ютер - це головний пристрій, який періодично надсилає повідомлення-запити, що управляють. Контролер, відповідно, підпорядкований і повинен відповідати на запити. Формат керуючого повідомлення визначається структурою usbRequest_t із файлу usbdrv.h:

Typedef struct usbRequest ( uchar bmRequestType; uchar bRequest; usbWord_t wValue; usbWord_t wIndex; usbWord_t wLength; ) usbRequest_t;

Створимо файл main.c на одному рівні з папкою usbdrv і опишемо в ньому необхідні заголовні файли, визначення та змінні:

#include #include #include #include "usbdrv.h" #define F_CPU 12000000L // Частота МК #include #define DATA_OUT 1 // Команда відправки #define DATA_IN 2 // Команда отримання // Буфер static uchar replyBuf = "Hello World!"; static uchar dataLength = 0, dataReceived = 0;

У main.c перевизначимо функцію usbFunctionSetup, яка викликається автоматично при отриманні нового запиту:

USB_PUBLIC uchar usbFunctionSetup(uchar data) ( usbRequest_t *rq = (void *)data; switch(rq->bRequest) ( case DATA_OUT: // Обробити команду відправки даних usbMsgPtr = replyBuf; // Вказати буфер return sizeof(reply / Повернути розмір буфера case DATA_IN: // Обробка команди отримання даних dataLength = (uchar) rq-> wLength.word; // Отримати довжину dataReceived = 0; // Викликів usbFunctionWrite буде багато if(dataLength > sizeof(replyBuf)) // Перевірка на переповнення dataLength = sizeof(replyBuf);return USB_NO_MSG;// Повернути 255 ) return 0;

Як видно з лістингу, найпростіший спосіб відправити дані комп'ютеру - встановити в usbFunctionSetup значення вказівника usbMsgPtr на буфер ОЗУ (replyBuf), де знаходяться дані, а потім повернути його довжину. Розмір буфера не повинен перевищувати 254 байти. Для ATtiny2313 з його 128 байтами ОЗУ цього достатньо. Для більш функціональних пристроїв є другий спосіб - перевизначення функції usbFunctionRead.

Щоб отримати дані, по-перше, потрібно у функції usbFunctionSetup витягти довжину повідомлення з поля wLength запиту і зберегти її в глобальній змінній dataLength. По-друге, в main.c потрібно перевизначити функцію usbFunctionWrite, призначену для обробки одержуваних даних і викликається автоматично (і, очевидно, кілька разів), якщо usbFunctionSetup повертає значення USB_NO_MSG (255):

USB_PUBLIC uchar usbFunctionWrite(uchar *data, uchar len) ( uchar i; // Зберегти отриману порцію даних у буфер for(i = 0; dataReceived< dataLength && i < len; i++, dataReceived++) replyBuf = data[i]; return (dataReceived == dataLength); }

Власне, функція usbFunctionWrite займається тим, що заповнює буфер replyBuf отриманими даними.

До речі, щоб цей метод працював, потрібно внести зміни до usbconfig.h:

#define USB_CFG_IMPLEMENT_FN_WRITE 1

Ну і остання функція прошивки – main:

Int main() ( usbInit(); // Ініціалізувати USB usbDeviceConnect(); // Підключити пристрій sei(); // Дозволити переривання // У нескінченному циклі чекати керуючі повідомлення while(1) usbPoll(); return 0; )

Задіямо USART/UART

Хороша альтернатива програмному/апаратному USB - використання в чипі популярного інтерфейсу USART/UART зі стороннім перетворювачем цього протоколу USB, який можна виконати, наприклад, на основі мікросхеми FT232RL.

Libusb: і не одягнена, і не оголена

Ти запитаєш: а чи доведеться писати драйвер для операційної системи комп'ютера, щоб підключити USB-пристрій? Якщо використовувати libusb, можна обійтися без реалізації повноцінного модуля ядра. Libusb - це Open source бібліотека, яка дозволяє швидко запрограмувати, по-перше, пошук пристрою на шині, а по-друге - обмін даними з ним.

Під Linux бібліотеку та необхідні заголовні файли можна отримати з вихідних кодів. А найкраще скористатися стандартним репозиторієм твого дистрибутива. Для Debian/Ubuntu, наприклад, так:

$ sudo apt-get install libusb-dev

Існує також порт libusb під Windows – libusb-win32. Всупереч назві проекту також підтримуються 64-бітові ОС від Microsoft (починаючи з версії 1.2.0.0).

Але libusb – це окрема тема розмови. Думаю, із програмуванням для ПК ти знайомий і зможеш у цьому розібратися сам. Тому буду стислий. Створюємо файл usbtest.c і починаємо заповнювати його контентом. Спочатку необхідні заголовні файли та визначення:

#include [...] // Для комп'ютера сенс команд зворотний // але позначення залишаються ті ж #define DATA_OUT 1 #define DATA_IN 2

Функція usbOpenDevice для ініціалізації пристрою:

Usb_init(); // Ініціалізувати USB usb_find_busses(); // Знайти шини usb_find_devices(); // Знайти пристрої // Перебрати всі шини for(bus=usb_get_busses(); bus; bus=bus->next) ( // Перебрати всі пристрої на шині for(dev=bus->devices; dev; dev=dev-> next) ( // Якщо ідентифікатори вендора і продукту не збігаються... if(dev->descriptor.idVendor != vendor || dev->descriptor.idProduct != product) continue; // ...пропустити цю ітерацію // Спробувати отримати дескриптор пристрою if(!(handle = usb_open(dev))) ( fprintf(stderr, "%s\n", usb_strerror()); continue; ) return handle; // Повернути дескриптор ) ) // Пристрій не знайдено return NULL;

Як видно, параметрами usbOpenDevice виступають числові ідентифікатори виробника та пристрою. Якщо пристрій є на шині, повертається його дескриптор. Якщо пристроїв на V-USB буде кілька – доведеться дописати перевірку символьних імен вендора та продукту.

І функція main консольної утиліти usbtest:

Int main(int argc, char **argv) ( // Дескриптор пристрою usb_dev_handle *handle = NULL; int nBytes = 0; char buffer; // Шукаємо пристрій handle = usbOpenDevice(0x16C0, 0x05DC); if(handle == ) ( fprintf(stderr, "Could not find USB device!\n"); exit(1); ) // Аргумент out - отримати дані від чіпа if(strcmp(argv, "out") == 0) ( nBytes = usb_control_msg (handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, DATA_OUT, 0, 0, (char *)buffer, sizeof(buffer), 5000); Аргумент in - відправити рядок (наступний аргумент) ) else if(strcmp(argv, "in") == 0 && argc > 2) ( nBytes = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, DATA_IN, strlen(argv)+1, 5000); ) if(nBytes< 0) fprintf(stderr, "%s\n", usb_strerror()); usb_close(handle); // Закрыть дескриптор return 0; }

Тут керує бал функція usb_control_msg, яка оголошена у файлі usb.h. Вона має купу параметрів і створює ті управляючі повідомлення, обробка яких реалізована в прошивці мікроконтролера.

Proteus відпочиває

Всенародно улюблений симулятор електричних схем Proteus ISIS не є корисним при розробці пристроїв з програмною реалізацією USB. Його емулятор USB підтримує лише чіпи з апаратною підтримкою універсальної послідовної шини (наприклад, AT90USB646 або AT90USB1286).

Збираємо, прошиваємо, тестуємо

Нижче наведено невеликий, але дуже корисний Makefile, за допомогою якого командою make з main.c та usbtest.c легко отримати прошивку для чіпа - main.hex та бінарник утиліти usbtest:

CC = avr-gcc OBJCOPY = avr-objcopy CFLAGS = -Wall -Os -Iusbdrv -mmcu=attiny2313 OBJFLAGS = -j .text -j .data -O ihex OBJECTS = usbdrv/usbdrv.o usbdrv/oddebug .o main.o CMDLINE = usbtest # Ціль: зібрати все all: main.hex $(CMDLINE) # Складання утиліти для комп'ютера $(CMDLINE): usbtest.c gcc -I ./libusb/include -L ./libusb/lib /gcc -O -Wall usbtest.c -o usbtest -lusb # Очистити проект від бінарного коду clean: $(RM) *.o *.hex *.elf usbdrv/*.o # Отримання файлу прошивки з elf-файлу %. hex: %.elf $(OBJCOPY) $(OBJFLAGS) $< $@ # Сборка elf-файла main.elf: $(OBJECTS) $(CC) $(CFLAGS) $(OBJECTS) -o $@ # Сборка файлов библиотеки V-USB $(OBJECTS): usbdrv/usbconfig.h # C в объектный код %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # asm в объектный код %.o: %.S $(CC) $(CFLAGS) -x assembler-with-cpp -c $< -o $@

Щоб залити прошивку в мікроконтролер за допомогою usbtiny програматора, набираємо команду:

$ sudo avrdude -p t2313 -c usbtiny -e -U flash:w:main.hex:i -U lfuse:w:0xef:m

В avrdude ф'юзи задаються не надто наочно, але їх можна легко розрахувати в одному з online-калькуляторів.


Підключаємо пристрій до комп'ютера і перевіряємо, як він працює (usbtest c параметром out зчитує рядок, in - записує вказаний рядок у буфер чіпа):

$ sudo ./usbtest in all_ok $ sudo ./usbtest out

Ложка дьогтю

Софтовий USB немає панацея. Програмні реалізації зазвичай мають низку спрощень, таких як відсутність перевірки контрольної суми та симетричності каналу, що негативно позначається на перешкодах. Також зазвичай програмні бібліотеки використовують низькошвидкісні режими роботи USB. Та й код USB-бібліотеки «їсть» і так невелику пам'ять чіпа.

Підглядаємо…

На рівні логіки протокол USB - це, насправді, багаторівнева пакетна передача даних. У цьому неважко переконатися (а заразом дізнатися багато цікавого про USB), скориставшись аналізатором мережевих протоколів Wireshark. Попередньо необхідно завантажити драйвер USB-монітора:

$ sudo modprobe usbmon

Тепер у списку інтерфейсів Wireshark можна вибирати USB шини. Подивитися номер шини пристрою можна, наприклад, у логах.

Висновок

Сподіваюся, після того, як ти навчився пересилати дані між комп'ютером та мікроконтролером AVR, твоя пристрасть до електроніки спалахне з новою силою, породивши чимало оригінальних та корисних пристроїв. Залишається лише побажати тобі успіхів на цій складній, але цікавій ниві.

Іноді виникає ситуація, коли потрібна флешка, а її немає під рукою. Наприклад, для роботи деяких бухгалтерських та звітних програм потрібна наявність зовнішнього накопичувача. У такій ситуації можна створити віртуальний накопичувач інформації.

Використовуючи спеціальне програмне забезпечення, це можна зробити кількома способами. Розглянемо кожен із них покроково.

Спосіб 1: OSFmount

Ця невелика програма дуже рятує, коли немає під рукою флешки. Вона працює у будь-якій версії Windows.

Після того, як Ви завантажили програму, зробіть ось що:



У роботі з цією програмою можуть знадобитися додаткові функції. Для цього потрібно увійти в головному вікні до пункту "Drive Actions". А далі можна буде використовувати такі опції:

  • Dismount – розмонтувати том;
  • Format – форматування тома;
  • Set media read-only – ставить заборону запис;
  • Extendsize - Розширює розмір віртуального пристрою;
  • Savetoimagefile – служить для збереження у потрібному форматі.

Спосіб 2: Virtual Flash Drive

Хороша альтернатива вищеописаному способу. Під час створення віртуальної флешки ця програма дозволяє захистити інформацію у ньому за допомогою пароля. Перевагою є її працездатність у старих версіях Windows. Тому, якщо у Вас на комп'ютері є версія Windows XP або нижче, ця утиліта допоможе швидко підготувати віртуальний накопичувач інформації на комп'ютері.

Інструкція з використання цієї програми виглядає ось так:

  1. Завантажте та встановіть Virtual Flash Drive.
  2. У головному вікні натисніть кнопку "Mount new".
  3. З'явиться вікно "Create new volume", вкажіть у ньому шлях для створення віртуального носія та натисніть «Ок».


Як бачите, програма дуже проста у користуванні.

Спосіб 3: ImDisk

Це одна з найбільш популярних програмдля створення віртуальної дискети За допомогою файлу образу або пам'яті комп'ютера вона створює віртуальні диски. При використанні спеціальних ключів під час її завантаження, як віртуальний знімний диск фігуруватиме флеш-носій.


Спосіб 4: Хмарне сховище

Розвиток технологій дозволяє створювати віртуальні флешки та зберігати на них інформацію в інтернеті. Цей спосібє папкою з файлами, яка доступна певному користувачеві з будь-якого комп'ютера, підключеного до інтернету.

До таких сховищ даних належать Яндекс.Диск, Google Drive та Хмара Mail.ru. Принцип використання цих послуг однаковий.

Розглянемо, як працювати з Яндекс Диском. Цей ресурс дозволяє безкоштовно зберігати інформацію до 10 Гб.



Робота з таким віртуальним носієм інформації дозволяє повністю керувати вашими даними: групувати їх у папки, видаляти непотрібні дані і навіть ділитися посиланнями на них з іншими користувачами.

Що це таке і навіщо воно потрібне?
Якщо магнітолу в машині є вхід для CD чейнджера, до нього можна підключити подібний адаптер, він обдурить магнітолу і вона вирішить, що до неї підключили чейнджер, причому замість дисків використовується звичайна флешка з музикою. Адаптером можна буде керувати штатними засобами, включаючи керування з керма.

На Муську вже було кілька оглядів подібних адаптерів, найвідоміші – китайські Yatour.

Я вирішив піти нестандартним шляхом, вирішив спробувати російський Тріома Фліппер 2.
Загальна оцінка – відмінно, покупкою задоволений, рекомендую.

За подробицями прошу під кат

Передмова

Є просте бажання – хочеться слухати в машині музику. По радіо далеко не завжди йде щось слушне, возити з собою купу CD дисків, та й постійно їх записувати, набридло.
У мене в Пежо 407 2007 стоїть ГУ (Головний Пристрій), надалі обзиване просто магнітолою, без USB, блютуза, та й без звичайного AUX входу.

Якщо в машині стоїть звичайна магнітола, не зав'язана на керування якимись функціями машини, найпростіше просто купити нову магнітолу. Брендову магнітолу з USB входомможна купити близько сотні євро. Ще якусь суму доведеться витратити, щоб вона розуміла керування з керма.

Можна поколгоспити і зробити AUX (аудіо) вхід, але все одно буде потрібне джерело звуку, та й про керування з керма доведеться забути.

Варіанти з FM трансмітерами я давно відкинув – пробував пару різних трансмітерів, якість звуку була не дуже.

Є ще один шлях, підключити до магнітолі на вхід CD чейнджера апаптер, який дозволить слухати музику з флешок, керуючи адаптером штатними засобами магнітоли, у тому числі з керма. Можна знайти подібні адаптери від різних виробниківз різними параметрами та відрізняються якістю, надійністю, зручністю або ціною.
Найвідоміший адаптер – Yatour. Найкрутіший, мабуть, американський Grom Audio, який грає, у тому числі, FLAC. Ну і до купи ще кілька пристроїв – Audiolink, Xcarlink, DMC, Dension.

Насамперед, став дивитися на yatour. На ali стоїть від 50 $. Але відгуки в інтернеті ентузіазм трохи пригасили. На адаптері лінійний вихід із фіксованим рівнем, тому на багатьох магнітолах рівень гучності помітно нижчий, ніж із магнітоли. Іноді нестабільна робота, зависання, критичність до наявності сторонніх файлів на флешці. Кількість каталогів, що підтримуються - скільки дисків підтримує магнітола, в моєму випадку, це 6.

Офіційного сайту yatour немає, сайти Ятура в інтернеті - це сайти продавців. І інформацію доводиться збирати по крихтах у різних місцях, переважно відписуються ті, хто його собі ставив, але їхній досвід не завжди підійде для вашої магнітоли.
Але мені пощастило, натрапив на білоруського продавця yatour Сергія aka SSD, який відповів на всі мої питання, включаючи особливості роботи з моєю магнітолою.
Загалом – працює, але можуть бути проблеми з гучністю та нестабільною роботою. Від Сергія вперше почув і про Grom Audio та про Тріома, яку він теж продає.

Grom Audio на андроїді, підтримує FLAC, але немає моделі для мого автомобіля.

А ось Тріома Фліппер 2 зацікавив. Насамперед можливістю регулювання рівня виходу (гучності). Крім того, у нього набагато зручніша організація папок і їх може бути набагато більше. І він набагато менш глючний.
По запозичив гарну таблицюпорівняння Yator та Trioma


Уточнення по Ятурам:
1. Сторонні файли не заважають програванню. Як мінімум, на деяких прошивках.

Отже, я зробив свій вибір. Тріома!
При купівлі такого адаптера треба обов'язково вибирати модель під свій автомобіль. Точніше, під автомагнітолу свого автомобіля. У різних магнітол можуть бути різні роз'єми під чейнджер, не сумісні між собою.

Де можна придбати Тріому?

На сайті виробника є , які продають продукцію Тріоми. З покупкою адаптера у Росії чи Білорусії проблем немає. А в Європі, звідки мені купити простіше і не доведеться розмитнювати і платити НСО, ціни вищі вдвічі, від 120 євро без вартості доставки.

Став шукати знайомих, які могли б привезти мені адаптер із Росії чи Білорусії. Знайшов! Знайшов знайомого з Росії, який замовив і на початку лютого привіз мені адаптер! Олег, дякую!

І ось адаптер у мене вдома!



В комплект входить сам адаптер, кабель для підключення до магнітоли та кабель USB.
Довжина кабелю для підключення до магнітолі всього 40см, що відразу накладає обмеження на розташування адаптера в машині - його доводиться розміщувати безпосередньо за магнітолою, навіть до бардачка з ним не дотягнутися.
Адаптер розміром десь із сигаретну коробку. Проста пластмасова коробка з кабелем, що стирчить, для підключення під пристроїв або AUX кабелю. Втім, після того, як я підключу адаптер до магнітоли, його ніхто більше не побачить.
Додатково взяв AUX кабель із міні-жеком на кінці (+500р)


Ще кілька фоток

Роз'єм для підключення додаткових пристроїв, AUX кабелю або bluetooth адаптера


Мама на адаптері


Тато на кабелі


Роз'єм для магнітоли RD4


Не розкривати, гарантія


Встановлення

Магнітола RD4, шестигранником відкручуємо два гвинти і дістаємо магнітолу.

Позаду два підходящі роз'єми, на одному з них працювати не буде - перевірено;)
На фото вказаний потрібний роз'єм. У ньому штатно вже підключено проводку для підключення чейнджера, витягуємо встановлений роз'єм і вмикаємо свій.


Підключаємо кабель з адаптером, включаємо запалювання та диво - все відразу запрацювало! Причому рівень гучності приблизно такий самий як із вбудованого CD.

А ось далі починаємо думати – куди б вивести USB кабель. Найпростіше в моєму випадку виявилося прокинути кабель під кермом у маленький бардачок ліворуч від водія.


Сам адаптер засунув у нішу ззаду-ліворуч від магнітоли. Місця там небагато, після встановлення магнітоли на місце адаптер виявився там затиснутим кабелями, тому додатково закріплювати адаптер не потрібно.

На всіх форумах пишуть, що на магнітолі потрібна активізація чейнджера у сервісі. У мене все виявилося набагато простіше. Магнітола після включення сама визначила, що до неї підключений чейнджер, і його стало можливо вибрати через перемикач входів (радіо/CD/чейнджер).
Як виявилося, активізація потрібна не для магнітоли, а для дисплея, щоб він міг відображати інформацію для чейнджера.
Але півроку тому я китайці, молодці, надсилають дисплей з усіма активізованими функціями. Тож у мене все запрацювало без додаткової активізації.

Робота адаптера

Якість звуку.Порівняно з CD плеєром. Штатна акустика в автомобілі досить посередня, так що різницю зі штатним CD плеєром на моїй машині ви точно не почуєте.
Швидкість увімкнення. Менше кілька секунд після включення запалення на флешці з кількома десятками каталогів. На форумах пишуть, що за кількох сотень каталогів швидкість менша. Адаптер запам'ятовує, де він грав до вимкнення і починає грати з цього місця. Ця властивість є цінною для любителів послухати аудіокниги. Адаптер запам'ятовує місце з 4-х останніх флешок/
Перемикання треків.Частки секунди, немає різниці у тому ж чи іншому каталозі знаходиться трек. Під час перемикання немає жодних сторонніх звуків.
Заміна флешки.При працюючій магнітолі витягуємо флешку і засовуємо нову. Вона визначається протягом декількох секунд і відразу починає грати. Під час заміни може пролунати дуже тиха, коротка трель.

Адаптер розуміє 32 каталоги, в яких може бути по 32 підкаталоги, у кожному з яких може бути до 99 файлів. Але скоро я зрозумів, що перемикач дисків у мене перемикає лише перші шість дисків. Хоча в режимі Random адаптер бачить усі каталоги.

Задав питання на форумі Тріоми, підтримка відповіла дуже швидко та запропонувала варіанти організації каталогів. Проблема виявилася в тому, що на RD4 кнопки хоч і виконують функцію Disc+/Disk-, вони посилають на адаптер команди прямого вибору диска 1-6. Так що цими кнопками можна лише перемикати 6 кореневих каталогів або 6 підкаталогів.
І керувати 1024-ма каталогами на моїй магнітолі не вийде. Керувати можна всього 32 * 6 = 192-ма каталогами;)

В описі сказано, що кнопки FF/FR виконують подвійну функцію - зміну каталогів/підкаталогів та перемотування.
Але на RD4 Track+/Track- поєднані з FF/FR і для адаптера ці кнопки мають потрійне призначення:
1. Короткий натиск - Track+/Track-
2. Натискання 2-3сек, відтискання, коли пропаде звуквід поточного треку - перемикання каталогу
3. Довге натискання >3сек, йде прискорений приглушений звук - перемотування
Приблизний час, орієнтуватися треба на звук

Ще до покупки припускав, що запишу одну велику мегафлешку із сотнями каталогів. Але вже зараз бачу, що зручніше мати кілька флешок із різними добірками.
У мене зараз це:
1. Російська естрада 80-90-ті
2. Закордонна естрада 80-90-ті
3. Інструменталки

Разом.За відносно невеликі гроші я отримав безглючний адаптер із гарною якістю звуку та простим інтуїтивно зрозумілим управлінням. Покупкою дуже задоволений, Тріома – молодці!

Додаткові посилання

Міні ЧАВО

Якісь питання залишилися поза цим оглядом, їх я вирішив винести в окремий мініфак. Сюди ж додаватиму питання, які виникнуть у коментарях.
  • Що потрібно зробити для того, щоб назви (імена файлів, теги або взагалі хоч що-небудь) відображалося на дисплеї?
  • Адаптери Тріома, безумовно, «бачать» і теги, і імена файлів, і імена папок. Там, де це можливо, вони виводять текстові рядки на штатні дисплеї магнітол: BMW і всі автомобілі з оптичною шиною MOST. Можливо, скоро буде реалізовано виведення тексту для деяких апаратів Toyota/Lexus.
  • CD-чейнджери без проблем справляються із завданням.
  • Боюся, Ви помиляєтеся: нам невідомі зовнішні чейнджери, крім перелічених вище моделей, які справляються з цим завданням. Чейнджери, вбудовані в головний апарат - інша справа, там виведення тексту відбувається безпосередньо в контролер дисплея - це зовсім інший механізм.
  • Чи можна підключити додаткові пристрої до адаптера Тріома Фліппер 2?
  • До адаптера можна підключити або кабель-перехідник AUX-мініджек 3,5 тата
Планую купити +23 Додати в обране Огляд сподобався +21 +46

11

У мене є програма Linux, для якої я хотів би автоматизувати деякі тести, і його стан повинен змінюватися в залежності від стану певних пристроїв, тобто USB-пристроїв, WLAN-пристроїв, WAN-пристроїв. Однак у нас більше немає фізичних USB-пристроїв, WLAN, WAN і т. д. пристроїв, тому мені потрібно з'ясувати спосіб тестування цієї програми без фактичного підключення фізичних пристроїв, Включення / вимикання їх і т.д.

Я починаю з простого створеннявіртуального USB-пристрою, який я можу контролювати з користувальницького простору, але з мого боку виникає фундаментальний недолік знань, який заважає мені приймати будь-які схожі теми на цих форумах і застосовувати їх до мого проекту. Я відчуваю, що мені потрібно створити якийсь віртуальний драйвер USB, а потім зв'язати його з якоюсь програмою на рівні користувача, а не з usbfs. Однак, навіть якщо я створю цей віртуальний драйвер, як мені «підключити» цей пристрій з простору користувача і отримати мою програму, зареєстровану за допомогою цього конкретного драйвера? Чи є те, що я намагаюся зробити навіть можливо?

  • 2 відповіді
  • Сортування:

    Активність

0

Чи не можете ви протестувати програму у віртуальному середовищі за допомогою VMWare? Потім ви можете підключити будь-який віртуальний пристрій на своєму комп'ютері до гостьової. віртуальній машиніі протестувати програму таким чином.

8

Найкращий спосіб – використовувати драйвери та обладнання для гаджетів Linux, які дозволяють вам бути USB-пристроєм. Драйвер гаджета дозволяє комп'ютеру «прикидатися» будь-яким пристроєм. Тоді ваша тестована система має один кабель USB OTG для гаджета. Вам навіть не потрібно відключати кабель, якщо у вашого гаджета є відповідне обладнання. «Гаджет-скринька» може бути вашим робочим столом/ноутбуком під керуванням Linux(якщо він підтримує USB OTG) або навіть Android-телефоном чи малиною Pi. (Обережно, що USB кабелів висмоктувати Просто тому, що канатні припадки не означає, що він правильно підключений до USB OTG.).

Після того, як ви маєте право апаратного USB OTG, гаджет коробок все програмне забезпечення:

1) Якщо тестований пристрій підтримує OTG, переконайтеся, що ваш гаджет не намагається і не є USB-хостом. (Тоді ваш пристрій, що тестується, стане USB-клієнтом.) I.e. переконайтеся, що такі речі, як usb_storage, не завантажуються автоматично.

2) Ядро підтримує гаджети для USB-концентраторів, USB-Ethernet, USB-послідовних портів та USB-накопичувачів. Просто завантажте потрібні модулі у свій гаджет, і він просто працює. Наприклад, щоб створити USB-накопичувач, зробіть щось на зразок цього: "insmod g_file_storage.ko file=/dev/ram0". Далека сторона думатиме, що ви підключили USB-накопичувач.

Для послідовних пристроїв, гаджет може працювати в просторі користувача код, який «піднімає трубку» на/Dev/USBx»і переговори в пристрій під випробуванням. (Очевидно, модем 4G або будь-який інший.

Тони пристроїв дійсно «USB-серійний» під капотом, тому що виробник був занадто лінивий, щоб зрозуміти USB.

3) З невеликою повторною компіляцією або налаштуванням ви можете використовувати ці універсальні пристрої для гаджета, ID або повертати різні рядкипостачальника тощо. буд. Це буде таким самим, як «тестування реальному апаратне забезпечення», але принаймні ви тестуєте стандартну версію цих пристроїв.

4) Для типів пристроїв, які ще не знаходяться в ядрі (наприклад, Wi-Fi або ще щось), ви самі по собі. З достатньою кількістю поту та сліз крові ви можете написати свій власний тип гаджета. (В ідеалі, використовуйте якомога більше в просторі користувача і обробляйте тільки критично важливі компоненти в ядрі..)



Розповісти друзям