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

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

В процессе сборки.

Ядра (CPU 0,1, DSP), USB, камера, дисплей, I2S-микрофон, I2S-усиилтель, подсветка для камеры(на фото - без рассеивателя) работают. 

На фоте слева провода - временно: там будет мини-колонка 20x30 мм.

Осталось допаять трансивер и проверить.

vt_wip.thumb.jpg.8b5b8cef1155255164e327af9c225e5b.jpg

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

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


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

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

дисплей,

Как-то наполовину работает))

1 час назад, Samum421 сказал:

T113-s3 с различными выходами. 

Эт я понял, думал это какой-то готовый модуль, спросить партномер)))

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


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

3 minutes ago, mantech said:

Как-то наполовину работает))

Вторая половина включится, когда появится в эфире собеседник ))

 

 

 

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


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

2 часа назад, repstosw сказал:

Вторая половина включится, когда появится в эфире собеседник

Ну я так и думал, что на экране должен быть собеседник, на себя-то зачем мне смотреть)))

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


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

33 minutes ago, mantech said:

Ну я так и думал, что на экране должен быть собеседник, на себя-то зачем мне смотреть)))

Затем, чтобы знать, что увидит собеседник.  Ваш КЭП. 🤠

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

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


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

Сделал свой загрузчик для NAND.

Как теперь из него прыгнуть в FEL ?

 

Логика проста, при включении питания из NAND грузится мой загрузчик, и если он видит, что нажата кнопка (не важно какая - в случае с моим загрузчиком), то не загружал приложение из NAND, а переходил в режим FEL.

 

Даташит на T113-s3 говорит, что есть два адреса:

Normal BROM FEL Address 0x20 и

Secure BROM FEL Address 0x64

 

Делал переходы на оба, в итоге загрузчик вызывается из NAND дважды,  а USB-соединение с ПК (для FEL) заламывается - винда пишет, что USB-устройство работает неверно.

 

Есть ли способ передать управление в точку, где запустится полноценный FEL, как в случае если нет ни одного бут-медиа при включении питания?

 

Или сделать горячий RESET с заранее проинициализированной переменной, которая игнорирует загрузку с NAND.

 

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

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


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

Обнаружил, что xfel не может шить NAND фрагментами.

loader.113 - свой загрузчик (ровно  64 кБ)

app.bin - приложение, стартующее с начала адреса DDR

 

Вот так не будет работать - последняя запись перетирает загрузчик:

xfel spinand write 0x00000000 loader.113
xfel spinand write 0x00010000 app.bin

 

А вот так - будет работать:

copy /B loader.113 + app.bin NAND.bin
xfel spinand write 0x00000000 NAND.bin

 

Чип NAND:  MX35LF1GE4AB

xfel: версия 1.2.8

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

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


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

15 minutes ago, repstosw said:

Обнаружил, что xfel не может шить NAND фрагментами.

Смещение от начала NAND, с которого начинается приложение, как минимум, должно быть кратно размеру блока 128KB NAND MX35LF1GE4AB

Тогда можно раздельно прошить.

Стирание идёт целым блоком.  1 блок для  MX35LF1GE4AB = 128 кБ:

xfel spinand write 0x00000000 loader.113
xfel spinand write 0x00020000 app.bin

 

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


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

2 часа назад, repstosw сказал:

Как теперь из него прыгнуть в FEL ?

Никак)) При сбросе, если пины boot сконфигурированы на загрузку с нанд то в буте проц не останется. Нужно либо задать усб-онли, отключить пин от флешки либо затереть сигнатуру в нанде. Так в любых процах делают...

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

Вот так не будет работать - последняя запись перетирает загрузчик:

Конечно не будет, нанд стирает перед записью блок (128к), при след. записи он его снова стирает, а у вас там уже прога зашита))

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

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


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

43 minutes ago, mantech said:

Никак)) При сбросе, если пины boot сконфигурированы на загрузку с нанд то в буте проц не останется. Нужно либо задать усб-онли, отключить пин от флешки либо затереть сигнатуру в нанде. Так в любых процах делают...

Как я понял - пины boot - это так называемые MISO и MOSI, на которых болтаются резисторы по 10 кОм.  На MISO подтяжка к питанию, на MOSI - подтяжка к земле.

Итого SEL[1:0] = 10, что соответствует последовательности загрузки: SD0 => NAND => other

Как я писал выше, на версии платы 1.1 производитель не расшарил пин MISO, из-за этого пришлось подпаять провода с кнопкой.   В релизе мне такое решение не нравится, хотелось бы переназначить эту кнопку, используя свой загрузчик, который бы во время включения устройства мог бы проконтроллировать кастомную кнопку и перейти в FEL, если она нажата.

FEL нужен только для отладки.

В даташите упоминаются некие eFuse SID  и регистр дан соотстветствующий для чтения.  Но нигде не сказано - куда записывать нужно в eFuse, чтобы изменить последовательность загрузки.

По хорошему, определить точку входа бы в BROM, начиная с которой пошла бы ветка для FEL USB, обойдя проверку загрузочной NAND.

 

А так получается - единственно, что можно сделать - это загрузчик, который стирает NAND при нажатии на кастомную кнопку.  Тогда следующий Reset приведёт в FEL, так как загрузчика больше нет в NAND или он повреждён.

Всё для того - чтобы использовать  кастомную кнопку (не на MISO которая) и не подпаивать проводки.

 

50 minutes ago, mantech said:

Конечно не будет, нанд стирает перед записью блок (128к), при след. записи он его снова стирает, а у вас там уже прога зашита))

С этим уже разобрался, пост выше.

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


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

3 hours ago, repstosw said:

Сделал свой загрузчик для NAND.

Как теперь из него прыгнуть в FEL ?

 

Вопрос решён.

Возврат FEL работает, по крайней мере, следующие команды  успешно выполняются:
 

xfel version
xfel ddr t113-s3

 

Чтобы перейти в FEL из своего загрузчика,  НЕ нужно делать 2 вещи:

1) Переносить вектора прерываний

2) Включать  MMU

 

Итого выходит последовательность действий:

1) асмовский стартап

2) Запрет прерываний

3) Разрешение SMP для CPU0 (6-й бит регистра Auxiliary Ctl)

4) Инит клоков

5) Инит GPIO

6) Инит UART

7) Инит SPI

8) Инит DDR

9) Сам загрузчик (в котором проверяется нажатие кнопки - если нажата - переход на адрес 0x00000020, если нет - чтение с NAND кода приложения и запись в DDR, с последущим переходом на адрес 0x40000000)

:sun_bespectacled:

Включить MMU  и перенести вектора прерываний уже можно после проверки кнопки.

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


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

Наверное, правильнее будет в загрузчике проверить кнопку - а только потом уже делать все перечисленные инициализации как при обычном запуске приложения? Это если кнопка - вывод процессора а не SPI/I2C/остальное периферия

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

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


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

11 minutes ago, GenaSPB said:

Наверное, правильнее будет в загрузчике проверить кнопку - а только потом уже делать все перечисленные инициализации как при обычном запуске приложения? Это если кнопка - вывод процессора а не SPI/I2C/остальное периферия

Собственно так и сделал, оставив инит SYS_Clock, GPIO и UART  перед проверкой кнопки.  Потому что перед этим загрузчику есть, что сказать по UART для ПК 😃

Остальной инит - после проверки кнопки.

Проверил загрузку кода с  FEL после отработки своего загрузчика NAND с нажатой кнопкой - работает. 

После нажатия на Reset - снова грузится вторая штатная программа с NAND.

Чего хотел - того добился:  припаянная сопля с кнопкой на MISO более не нужна.

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

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


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

Первый готов!

177270_1717387575_1.jpg

 

177271_1717387599_2.jpg177272_1717387622_3.jpg

 

Второй пока на макете.  На соплях )))

177273_1717387666_4.jpg

 

В ближайшее время сделаю второй - макет распаяю на плату.

 

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


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

3 часа назад, repstosw сказал:

Первый готов!

 

А для чего кнопка ресет на передней панели?

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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