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

Allwinner T113-s3 уделал HiFi4 DSP. Смеяться или плакать?

16 hours ago, repstosw said:

Вот тут ещё один умелец приделал tinyusb к Allwinner H3.

https://github.com/uli/allwinner-bare-metal

 

16 hours ago, repstosw said:

usb.h и usb.c  у названного выше проекта.  Для H3.

Надеюсь, что host HID Kbd  там нормально заработает

Пока не удалось нормально запустить TynyUSB с T113-s3.

Из того что удалось сделать: реагирует на прерывание при подключении и отключении устройства.

rhport_status & OHCI_RHPORT_CONNECT_STATUS_CHANGE_MASK

Работаю с USB который не OTG, порт справа.

Не хочет давать прерывание по завершению передачи данных:

int_status & OHCI_INT_WRITEBACK_DONEHEAD_MASK

int_status & OHCI_INT_WRITEBACK_DONEHEAD_MASK

Мало того, не доходит даже до парсинга дескриптора. Вот здесь замораживается:

  TU_ASSERT(configure_selected <= new_dev->configure_count); // TODO notify application when invalid configuration

configure_selected =1, new_dev->configure_count = 0

 

Основной цикл программы:

void main(void)
{
 LowLevel_Init();

 printf("\nT113-s3 USB Host Demo...\n\n");

 usb_phy_init(1);

 print_greeting();

 tusb_init();

 while(1)
 {
  tusb_task();
 }

}

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заработал TinyUSB с T113-s3.

Мышь и клавиатура работают.

 

Проблема была в этом месте - osal_none.h :

static inline bool osal_semaphore_wait (osal_semaphore_t sem_hdl, uint32_t msec)
{
  (void) msec;
  while (sem_hdl->count == 0) { }
  sem_hdl->count--;
  return true;
}

Нужно так:

static inline bool osal_semaphore_wait (osal_semaphore_t sem_hdl, uint32_t msec)
{
 DelayMS(msec);
 return true;
}

 

P.S. Задолбали эти семафоры и впихивание ОС в контроллеры.

 

Вторая проблема: нужно было объявить секцию в некешируемой памяти:

.uncached 0x47E00000 (NOLOAD) :
{
 _bstart2 = . ;
 *(UNCACHED);
 _bend2 = . ;
}

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С кешированием я решаю манипуляций с кешем перед операциями- отличия можно глянуть. Задержка не могла у меня влиять на опрщнаваемость ls устройств... а ehci при этом работает? Может ено (ehci) вообще мне не надо было включать например?

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

34 minutes ago, GenaSPB said:

а ehci при этом работает? Может ено (ehci) вообще мне не надо было включать например?

EHCI мне неинтересен (при совместном использовании с клавиатурой).

Обратите внимание на это:

1) https://github.com/uli/allwinner-bare-metal/tree/master/tinyusb/src/host/ohci

и

2) https://github.com/uli/allwinner-bare-metal/tree/master/tinyusb/src/host/ehci

Таких файлов нет в штатном архиве от TinyUSB, их написали при  портировании на Allwinner H3.

 

35 minutes ago, GenaSPB said:

С кешированием я решаю манипуляций с кешем перед операциями- отличия можно глянуть.

Знаю.  В данном случае легче объявить секцию.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, repstosw сказал:

Не хочет давать прерывание по завершению передачи данных

Зачем там вообще прерывания, все равно нужен поллинг в осн. программе, ИМХО...

1 час назад, repstosw сказал:
.uncached 0x47E00000 (NOLOAD) :
{
 _bstart2 = . ;
 *(UNCACHED);
 _bend2 = . ;
}

В смысле? Разве кэширование не в MMU задается?))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, mantech said:

В смысле? Разве кэширование не в MMU задается?))

Как компилятору скажете, чтобы он расположил часть переменных в некешированную область, которая настроена MMU ?  Будете указатели ни адреса памяти хардкодить? :-)))))))))))))

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подключил AT86RF215 к T113-s3 и к V3s (по SPI).

Пара приёмник-передатчик работает успешно. Пока удалось настроить FSK-режим. Планирую попробовать OFDM.

 

5.thumb.jpg.8292cd5b8cc3f0d410396338caa4431f.jpg 7.thumb.jpg.5b3af8f94edb64fc31556d67aed8653a.jpg 9.thumb.jpg.1e04764117a9032dc77b0e34b9856315.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

47 минут назад, repstosw сказал:

AT86RF215

А зачем под ней дыра(отверстие)? )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно хозяин-барин... но эту тему вряд-ли читают те кому может быть интересно или кто может поделится опытом применения at86rf чипов... может туда продублируйте или переместите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В свете тенденций последней пары лет (а реально ~10) ISM-трансиверы не Atmel (а так же TI, Silabs, и прочих AD ), а RDA "актуальны". Точь-в-точь ситуация: "белые" процы заменились "жёлтыми"...
По "доке" ситуация такая же - Atmel\TI\Silabs\AD не сравнимы с RDA...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, Obam said:

В свете тенденций последней пары лет (а реально ~10) ISM-трансиверы не Atmel (а так же TI, Silabs, и прочих AD ), а RDA "актуальны". Точь-в-точь ситуация: "белые" процы заменились "жёлтыми"...

На первый взгляд, минус очевиден - отсутствует программа, которая позволяет сконфигурировать этот трансивер, выдав массив настроек для регистров (типа RFPDK для CMT2300A или WDS для Si4463).  Но это только на первый взляд.

Читать даташит на AT86RF215 - одно удовольствие. Расписаны не только регистры и их биты, но и приведены базовые алгоритмы для установки нужных режимов приёмо-передатчика и рекомендации. Также сделаны ссылки внутри даташита на битовые поля регистров с разъяснениями.

Чего не скажешь о документации от Allwinner (к сожалению).

 

Quote

По "доке" ситуация такая же - Atmel\TI\Silabs\AD не сравнимы с RDA...

 А эти RDA могут OFDM? :-)

Если нет, то фтопку.

 

Ещё из плюсов AT86RF215  - большие FIFO буфера 2 кБ (отдельно - для приёмника и передатчика) и куча модуляций (2/4 FSK, BPSK, QPSK, OQPSK, QAM-16, OFDM)

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ох, обшибся я (как-никак 7 лет тому уж): RDA1846 - обычный NFM-трансивер, просто одновременно с "белыми" проходил (мимо), но наверняка они и ISM делают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 минут назад, Obam сказал:

RDA1846 - обычный NFM-трансивер

Ну да, это ж для аудио, радиостанций и пр, а тут в задаче пакетная передача данных...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, mantech said:

Ну да, это ж для аудио, радиостанций и пр, а тут в задаче пакетная передача данных...

Запустил AT86RF215 в режиме OFDM (Option 1, MCS=3): 800 кбит/c, QPSK rate 1/2.

Максимальная мощность в таком режиме: 12 dBm (~16 мВт) @ 438 MГц.

Пакеты принимаются без ошибок по всем комнатам помещения при движении приёмника (чего не было в случае с FSK).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...