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

Tarbal

Свой
  • Постов

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

  • Посещение

Репутация

4 Обычный

1 Подписчик

Информация о Tarbal

  • Звание
    Профессионал
    Профессионал

Контакты

  • ICQ
    Array

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

9 228 просмотров профиля
  1. Смешно получилось. Это мой вопрос по ссылке. Я его задал.
  2. У меня, похоже, нет физически PHУ. В device tree его нету и на схеме не могу найти.
  3. Пока не получил. Просто теоретически предположил. Что можно почитать по теме подскажите пожалуйста. Спасибо Надо детектировать сигнал.
  4. Когда мы делали FWT (интерфейс проводного телефона к мобильной сети), то именно так и вырабатывали звонок.
  5. Всем привет! Я немного далек от радио. Понадобился детектор излучения на 5 гигагерц. Сигнал в районе -80 dbm Вот думаю что проще, сначала усилить, а потом выпрямлять или поставить смеситель и усиливать уже разностные сотню мегагерц. Что посоветуете? Может есть готовые решения или модули уже готовые. Паять и отлаживать не проблема.
  6. SFP кто-нибудь подключал?

    Я знаю, что бывают transceivers с PHY и без него. А устройство куда они вставляются вроде всегда имет PHY. Проблема такая. Построил Линукс. Драйвер ethernet встать попробовал, а PHY не видит. Плата KRIA KR260 имеет модуль, схемы которого нету. Непонятно есть ли там PHY или нету. Может оно будет работать только с трансивером с PHY. А как их отличить?
  7. Я о связи барметала и Линукса писал. Тригер внутри барметала. Там можно на прерывании таймера сделать. Можно подобрать частоту SPI так, чтобы читало без остановки, выдавая с нужной скоростью результат.Как раз время транзакции SPI совпадет с sampling rate.
  8. Это иначе делают. Надо настроить DMA (прямой доступ в память) чтобы из одного адреса (вход с порта) в область памяти писал. К порту GPIO подключить источник информации и сигнал готовности данных настроить, чтобы синхронизировал DMA. По заполнению буфера вызывать прерывание, в котором переключать буфер, перенастроив DMA.
  9. Вам надо еще определиться с тем, что у вас за SPI контроллер стоит. Найти в дереве устройств описание. Что за Линукс у вас? Линукс уже стоит на устройстве? Какие файлы в /boot/ директории? Примеры можно найти в коде ядра: https://elixir.bootlin.com/linux/latest/source/drivers/spi Инструкции там же: https://elixir.bootlin.com/linux/latest/source/Documentation/spi Вам с нуля все будет непонятно. Спрашивайте. Глобально выглядит так: Каждому устройству соответствует его описание в дереве устройств. Режимы работы, адреса регистров и т.д.. Если одинаковых устройств несколько, то каждому индивидуальное описание и регистры точно будут другими в этих описаниях одного и тогоже типа устройства. Еще есть драйвер, который для работы с этим устройством. Вам надо и драйвер и описание в дерево добавить. В описании и драйвере есть признак, по которому для каждого описания ищется драйвер. Если нашелся драйвер, то устройство может быть использовано. В директории /sys/ можно посмотреть. Там каждому драйверу и каждому описанию посвящена директория. Вот дерево для вашего процессора: https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/allwinner/suniv-f1c200s-lctech-pi.dts или https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/allwinner/suniv-f1c200s-popstick-v1.1.dts Найдите этот файл в вашем коде ядра. Там та же директория. Одно SPI устройство уже описано. &spi0 { pinctrl-names = "default"; pinctrl-0 = <&spi0_pc_pins>; status = "okay"; flash@0 { compatible = "spi-nand"; reg = <0>; spi-max-frequency = <40000000>; }; }; Где compatible = "spi-nand"; есть признак ("spi-nand" -- признак), который должен совпасть с драйвером. У вас будет другой признак. Можете поискать среди драйверов. Вдруг найдете подходящий, тогда из него признак возьмете и впишите в свое дерево. Можно любой признак вписать. Напишите имя микросхемы, например. Главное чтобы в обоих местах имя в точности совпадало. Там еще ножки описаны: spi0_pc_pins: spi0-pc-pins { pins = "PC0", "PC1", "PC2", "PC3"; function = "spi0"; }; Вот похожий драйвер: https://github.com/torvalds/linux/blob/master/drivers/iio/adc/ad7476.c Он с правильного источника. То, что я давал выше -- производный источник (https://elixir.bootlin.com). В структуре static struct spi_driver ad7476_driver = { .driver = { .name = "ad7476", }, .probe = ad7476_probe, .id_table = ad7476_id, }; .name = "ad7476" "ad7476" -- признак, по которому будет найдено описание в дереве устройств для этого драйвера. Когда добавите код драйвера в соответствующее место в директории ядра, надо будет добавить описание вашего драйвера в Kconfig и Makefile. Посмотрите как сделано здесь: https://github.com/torvalds/linux/tree/master/drivers/iio/adc Потом в окне, созданном командой make menuconfig добавьте этот драйвер. Там будет строка, что вы добавили в Kconfig Теперь при компиляции ядра ваш драйвер будет присутствовать. При запуске Линукса на вашем устройстве, в директории /sys/ будет добавлена соответствующая директория.
  10. Это за 2015. Я и за 2018 находил. Только не работало как я и написал. Вот то что посоветовал erikN сработало. Правда, немного пришлось подрихтовть. К тому же синтаксис поменялся. IMAGE_INSTALL_append = " fw_printenv" Теперь надо с ':' писать IMAGE_INSTALL:append = " fw_printenv" Да и fw_printenv неправильно, а вот так работает. IMAGE_INSTALL:append = " u-boot-fw-utils" Но есть другая проблема. Почему-то результат становится меньше размером, busybox отсутствует и криво стартует. Разбираюсь.
  11. Спасибо! А рецепт вы сами написали или следовали какой-то инструкции? Может есть скрипт какой? Поищу что ракое recipe-util IMAGE_INSTALL_append = " fw_printenv" Эту строку я вставил, но рецепта нету рабочего. Последую вашей рекомендации. А не лучше сделать пробел и перед последней кавычкой? Для надежности. Вдруг в следующей IMAGE_INSTALL_append забудете поставить пробел. Здесь от практики конечно зависит, о которой я не знаю из-за неопытности в Yocto. Потому и предлпочитаю все предусмотреть.
  12. Есть здесь спецы по Yocto?

    Я хочу построить fw_printenw и поместить ее в /usr/bin Для этого надо скомпилировать инструменты из пакета u-boot. Вот из этой директории: https://github.com/u-boot/u-boot/tree/master/tools/env Никак не могу уговорить Yocto это сделать. С рецептом никак не получается. Нашел много разных рецептов, но ни один не работает. Yocto же строит u-boot может есть какой-нибудь рецепт в стандартном наборе?
  13. Все определяется тем, что подразумевается под эффективным способом. Для некоторых задач вполне подойдет userspace решение. Ну наполовину задача уже решена будет. А потребуется, то и на винду драйверы пишут обычные люди.
×
×
  • Создать...