• Система автоматизации с открытым исходным кодом на базе 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.
 
Сверху Снизу