• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

TB-03F: примерно у 10% модулей неисправен АЦП?

aloika

Active member
Вы в этом уверены? Т.е. у вас есть все исходники либ? Или вы не используете SDK?
Скажем так - специально я их не включал, тем более, в мульти-сдк их и не было тогда, когда я это писал. Сейчас вроде они добавили что-то на эту тему, но я не трогал.

В новой мульти-сдк ещё глюк обнаружил тут - передача в UART перестает работать, если включить pwm и подать импульс. Т.е. передается какая-то ерунда, что-то с таймингами происходит. Пока не понял, что именно. Нужно перевключить девайс, тогда снова UART корректно работает. И до первого включения pwm. А в старой мульти-сдк это работало нормально, я всё отлаживал через UART и радовался.
 

aloika

Active member
Ага, сайт отвис. Рассказываю: уже не 10%, а 25%. Из 60 новых штук 15 забраковал.

Сдувал крышки. С виду всё одинаково у хороших и плохих модулей. Катушки имеются. Микросхемы не tlsr8253, а tlsr8250 везде. Часовых кварцев нет нигде. Смотрел опорное напряжение осциллографом. Одинаково, стабильно, не болтается ни там, ни там.

Менял микросхемы в модулях местами. Вывод: зависит от микросхемы, не от обвязки.

Надо думать дальше.
 

aloika

Active member
В новой мульти-сдк ещё глюк обнаружил тут - передача в UART перестает работать, если включить pwm и подать импульс. Т.е. передается какая-то ерунда, что-то с таймингами происходит. Пока не понял, что именно. Нужно перевключить девайс, тогда снова UART корректно работает. И до первого включения pwm. А в старой мульти-сдк это работало нормально, я всё отлаживал через UART и радовался.
Ладно, с этим понятно, надо было прерывания отключить в int uart_putc(char byte) (это там есть, но закомментировано)
 

aloika

Active member
Если изменить вот этот параметр с 5 на другое значение, то АЦП начинает работать нормально. "Зубы", показанные на графике в сообщении выше, исчезают. Можно сдвигать частоту как вверх, так и вниз. "Зубы" только на значении 5.

adc_set_sample_clk(5);

Проверил пока что на одном "плохом" модуле.
Сейчас другие "плохие" буду запаивать, смотреть.
 

aloika

Active member
В итоге:
1. Надо всё же ставить adc_set_sample_clk(4); , тогда нет "зубов".
2. Довольно большой разброс "нулевого" значения дифференциального АЦП, т.е. значения при закороченном входе. Где-то -8, а где-то и -32. В начале программы вход закорачивается, измеряется это значение, потом вычитается из считанных показаний.

На паре модулей проверил, всё заработало в итоге. Нужно статистику собирать.
В общем, дело в разбросе параметров экземпляров микросхем.
 

pvvx

Активный участник сообщества
Сдувал крышки. С виду всё одинаково у хороших и плохих модулей. Катушки имеются. Микросхемы не tlsr8253, а tlsr8250 везде. Часовых кварцев нет нигде. Смотрел опорное напряжение осциллографом. Одинаково, стабильно, не болтается ни там, ни там.
tlsr8250 имеет отличия от tlsr8253 в нескольких частях.
Не проверял ещё точно все варианты, но tlsr8250 установленные в MJWSD05MMC похоже имеют всего 48 килобайт RAM и другие мелкие отличия. Уже пришлось менять код асм загрузчика и ещё по мелочи (пока всё ещё в процессе - много надо накалякать).
 

pvvx

Активный участник сообщества
2. Довольно большой разброс "нулевого" значения дифференциального АЦП, т.е. значения при закороченном входе. Где-то -8, а где-то и -32. В начале программы вход закорачивается, измеряется это значение, потом вычитается из считанных показаний.
Это не АЦП, а входные переключатели на разные выводы и разная утечка входов. Замечено давно, ещё у TLSR826x. Будут разные показания от того, на какие входы включено измерение.
 

pvvx

Активный участник сообщества
Ранее выпущенные и все из имеющихся TLSR8251, TLSR8253, TLSR8258 шли с одинаковым кристаллом. Т.е. во всех было 64 килобайта RAM и никаких отличий, но документация от Telink говорит что это разные чипы :)
TLSR8250 похож на первенец серии TLSR825x и может иметь отличия.
 

pvvx

Активный участник сообщества
И вполне возможно, что Telink наштамповал новый удешевленный кристалл для большой серии (выпуск XIAOMI MJWSD05MMC в конце того года) и их налепили в новые модули, т.к. возможно, что на копеечку стоят меньше...
 

aloika

Active member
И вполне возможно, что Telink наштамповал новый удешевленный кристалл для большой серии (выпуск XIAOMI MJWSD05MMC в конце того года) и их налепили в новые модули, т.к. возможно, что на копеечку стоят меньше...
Везде теперь они (отсюда):
1674833857020.png
 

pvvx

Активный участник сообщества
В XIAOMI MJWSD05MMC TLSR8250F512ET32 имеют дату 2216. Т.е. достаточно свежие. А TLSR8253 у меня только 21 года...
Стоит уточнить что может быть изменено в TLSR8250...
 

pvvx

Активный участник сообщества
TLSR8250F512ET32 2216
Код:
Chip TLSR825x ID: 0x5562, rev: 0x02
CPU PC=0x00000000 ([0x0602] = 0x05)
Flash JEDEC ID: 0xC86013, Size: 512 kbytes
-------------------------------------------------------
FLASH UID:
000000: 41 50 33 42 34 30 33 05 00 c0 00 4f 01 a9 ff ff 
000010: c8 01 ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
-------------------------------------------------------
FLASH:
000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
-------------------------------------------------------
ANALOG REGISTERS:
000000: 48 4c a2 4f 48 02 ff 19 05 00 00 38 c4 80 09 40 
000010: a8 72 0f ab a8 6a 00 00 00 00 00 00 00 00 00 ef 
000020: 77 00 40 10 00 00 50 00 00 00 00 de 5e 15 00 00 
000030: 20 16 64 85 80 20 00 00 00 ff 00 00 00 00 00 00 
000040: d8 96 80 00 86 00 00 00 00 00 00 00 c4 e1 43 00 
000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 
000080: 48 4c a2 4f 48 02 ff 19 05 00 00 38 c4 80 09 40 
000090: a8 72 0f ab a8 6a 00 00 00 00 00 00 00 00 00 ef 
0000a0: 77 00 40 10 00 00 50 00 00 00 00 de 5e 15 00 00 
0000b0: 20 16 64 85 80 20 00 00 00 ff 00 00 00 00 00 00 
0000c0: 02 97 80 00 86 00 00 00 00 00 00 00 c4 e1 43 00 
0000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 
-------------------------------------------------------
REGISTERS:
000060: 00 00 c0 ff 1f 37 06 00 02 00 02 00 01 02 1f 00 
000070: 00 04 00 04 00 00 00 00 00 00 00 64 00 02 62 55
TLSR8251
Код:
Chip TLSR825x ID: 0x5562, rev: 0x02
CPU PC=0x00000000 ([0x0602] = 0x05)
Flash JEDEC ID: 0xC86013, Size: 512 kbytes
-------------------------------------------------------
FLASH UID:
000000: 45 41 42 33 39 38 18 ff 01 11 00 6f 02 99 ff ff 
000010: c8 01 ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
-------------------------------------------------------
FLASH:
000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
-------------------------------------------------------
ANALOG REGISTERS:
000000: 48 4c a5 4f 48 02 ff 19 05 00 00 38 c4 80 00 48 
000010: 00 30 f0 00 00 40 00 00 00 00 00 00 00 00 00 ef 
000020: 77 00 00 00 00 00 40 00 00 00 00 de 5e 15 00 00 
000030: 20 26 67 77 87 20 00 00 00 ff 55 00 00 00 00 00 
000040: 90 eb 4a 00 86 00 00 00 00 00 00 00 f0 72 49 00 
000050: 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 
000080: 48 4c a5 4f 48 02 ff 19 05 00 00 38 c4 80 00 48 
000090: 00 30 f0 00 00 40 00 00 00 00 00 00 00 00 00 ef 
0000a0: 77 00 00 00 00 00 40 00 00 00 00 de 5e 15 00 00 
0000b0: 20 26 67 77 87 20 00 00 00 ff 55 00 00 00 00 00 
0000c0: bb eb 4a 00 86 00 00 00 00 00 00 00 f0 72 49 00 
0000d0: 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 
-------------------------------------------------------

REGISTERS:
000060: 7c f7 c7 83 08 30 06 00 02 00 02 00 01 02 1f 00 
000070: 00 04 00 04 00 00 00 00 00 00 00 64 00 02 62 55
По ID: 0x5562 и rev: 0x02 отличий нет. FLASH UID отличается, но это так и должно быть.
 

pvvx

Активный участник сообщества
Тест записи-чтения блоков по 64 килобайта с тестовыми значениями в RAM по swire показал, что чип TLSR8250F512ET32 имеет 64 килобайта RAM, как и все остальные TLSR825x.
В документации Telink указано что только 48 килобайт.
 

izhadapter

New member
В документации Telink указано что только 48 килобайт.
Возможно этот объём гарантированной стабильности записи чтения а всё остальное как повезёт.
Хотя Занимается ли кто-нибудь там отбраковка кристаллов... может да просто сделают продажный прайс
+ 1 коп
+ 2 коп + 3
В зависимости от объёма памяти заявленных документации☺

Подход верный, проверенный - компилятор будет ограничивать по названию чипа, а вручную никто не будет использовать не документированную память.
Так что платить будут.
 

pvvx

Активный участник сообщества
Все custom прошивки термометров используют 64 килобайта RAM на TLSR8251, а в доке указано всего 32 килобайта. И т.д. для разных внутренностей и возможности поддержки ZigBee.
Это нормально - кристалл везде одинаковый - от TLSR8258.
В даташите нужно смотреть только какие ноги выведены, а все остальное в доке по TLSR8258.
 
Сверху Снизу