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

Novatek NT96655 зависает

Видеорегистратор Viofo WR1 на процессоре Novatek NT96655 зависает через несколько десятков секунд после включения.
По питанию 2 ионистора,чуть-чуть сочится электролит из-под выводов. Выпаяла их, временно подпаяла ионистор 0,22Ф и конденсатор 1500 мкФ. Ничего не изменилось.
подключила UART, сняла логи. На каждом включении симптомы разные, ниже пара примеров. Это признаки битой памяти?

Фрагмент лога №1:
 

 *** CPU Exception!!! cause 0x02: TLB exception (load or instruction fetch)
epc - 0x45202928
$ra - 0x802ec0e8
$sp - 0x80c1c778
$fp - 0x80c1c778
general registers:
$zero : 0x00000003 $at : 0x00000003 $v0 : 0x45202928 $v1 : 0x00000000
$a0 : 0x80c1c798 $a1 : 0x00000000 $a2 : 0x00000000 $a3 : 0x00000680
$t0 : 0x00000000 $t1 : 0x00000051 $t2 : 0x000001ef $t3 : 0xffffffff
$t4 : 0x00000000 $t5 : 0x00000000 $t6 : 0x00000001 $t7 : 0x01650188
$s0 : 0x80c1c798 $s1 : 0x805e63b8 $s2 : 0x00000001 $s3 : 0x00000064
$s4 : 0x805e639c $s5 : 0x80570f04 $s6 : 0x80570f04 $s7 : 0xffffffff
$t8 : 0x807a7778 $t9 : 0x00000400 null : 0x800a0000 null : 0x00000003
gp : 0x805f7df0 sp : 0x80c1c778 fp : 0x80c1c778 ra : 0x802ec0e8
co-processor registers:
entrylo : 0x8f5c49e4 status : 0x00000008 vector : 0x0100c403 epc : 0x45202928
cause : 0x00000000 badvaddr : 0x00800008 hwrena : 0x00000400 prid : 0x00019655
entrylo : 0x009c8758
Task(id) :
AWB_Tsk(43)
stack :
range(0x80c1ae20 - 0x80c1cb7c)
call stack :
:
abort ($pc 45202928 is invalid address!)
*** CPU Exception in Task[]! cause=0x00000002, addr=0x45202928


Фрагмент лога №2:

ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <ASSERT FAIL: <ASSERT FAIL: <ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <ASSERT FAIL: <ASSERT FAIL: <ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <D5>sched.cxx[791]void Cyg_SchedThread::disinherit_priority() Non-positive mutex count
ASSERT FAIL: <

 

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


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

5 часов назад, firew0rker сказал:

По питанию 2 ионистора,чуть-чуть сочится электролит из-под выводов.

Надо тщательно промыть растекшееся разными растворителями, скорее оно всего уже разъело плату.

Поэтому отсмотреть все такие места по микроскопом, скорее всего будет видно.

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


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

11 часов назад, firew0rker сказал:

По питанию 2 ионистора

Смею предположить, что там есть еще и импульсные преобразователи входного напряжения питания в напряжение 5, 3.3, 2.5 или сколько там нужно этому процессору. С большой долей вероятности высохли выходные электролиты этих преобразователей и на питании процессора сейчас большие пульсации, которые и сводят его с ума.

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


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

2 часа назад, Сергей Борщ сказал:

высохли выходные электролиты этих преобразователей

Разве не керамику там уже ставят? В более-менее современных железках уже давно электролитов не вижу, керамика и немного тантала...

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


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

4 часа назад, mantech сказал:

Разве не керамику там уже ставят?

Понятия не имею. Фото бы...

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


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

На плату ничего не попало.
там есть импульсные преобразователи, и нет ни одного электролита, кроме впаянного мной на место ионистора.
там есть такая странность: чип BK2452, с отдельной антенной, для беспроводной мыши. Интересно, какую функцию он там выполняет?

Я как-то чинила камеру, у которой были похожие глюки. Подключила JTAG и игралась, загружая код в кэш процессора. Написала инициализацию и тест SDRAM, убедилась в её неисправности. У меня нашлась DIMM, с которой перепаяла микросхему ОЗУ. С этим видеорегистратором хочу так же сделать. Нужна микросхема K4B2G1646Q-BCK0 или аналог. Не завалялась у кого-нибудь?
Где можно скачать NT96650 SDK ?

photo_2022-04-10_11-23-32.jpg

PCB_WR1_2.JPG.JPG

PCB_WR1.JPG

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


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

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

чип BK2452, с отдельной антенной, для беспроводной мыши.

Этот чип - МК+радиоблок, можно залить любую программу. Почему вы решили, что это именно радио мышь?))))))))  

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

Где можно скачать NT96650 SDK ?

Наверно на сайте производителя, если это открытое ПО.

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

K4B2G1646Q-BCK0

Чипы такие есть, но т.к. вы живете не в моем городе, то пересылкой, к сожалению, не занимаюсь.

Это стандартная ДДР3  16 бит 256 Мбайт. Таких было полно в старых планшетах 2013-14 годов. Можно поспрашивать в местных сервисах..

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

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


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

BK2452 используются в беспроводной мыши - понятно зачем. А зачем в видеорегистраторе?
На видеокарте нашла S5ES1G1633HCF-25. Не нашла даташит, но судя по маркировке, это 1 Гбит. Будет ли работать с уполовиненной памятью, хотя бы плохонько?

 

P.S. Видеорегистратор на запчасти отдам недорого, если кому надо, пишите в личку.

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


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

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

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

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

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

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

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

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

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

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