• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Декодирование tm1640

Bogdan91

New member
Здраствуйте. Есть некое устройство которое ведет некое измерения. Оно готовое и заводское. Прошивки и исходники нету. Прочитать информацию с табла демаю толька с входа tm1640. Изучая схему понял толька так.
Нада подключиться на шину ТМ1640 прочитать код которий посилаеться и декодировать обратно. Например в уарт или на веб сервер
Хто знает как делаютбся такие вещи
 

rst

Member
Нада подключиться на шину ТМ1640 прочитать код которий посилаеться и декодировать обратно. Например в уарт или на веб сервер
Хто знает как делаютбся такие вещи
Берёте любую отладочную плату на любом удобном МК с необходимым числом ног на разъёмах, подключаете Ваше табло к ним, пишете программу, мониторящую эти ноги, декодирующую и отправляющую инфу в любой порт (UART, Ethernet. etc.).
Всё.
 

Bogdan91

New member
та вот мучаюсь. не знаю куда копать точна. опита мала. логического анализатора нету. пробовал и2с сканер не помагает. уарт тоже там шина типа и2с но нет
 

tretyakov_sa

Moderator
Команда форума
та вот мучаюсь. не знаю куда копать точна. опита мала. логического анализатора нету. пробовал и2с сканер не помагает. уарт тоже там шина типа и2с но нет
А не проще ли логику платы сразу написать. Это что за устройство вы там ковыряете?
 

nikolz

Well-known member
Для начала можно прочитать на микросхемах под микроскопом
Потом по функциональному назначению найти аналог
Потом очевидно большой чип дешифратор - найти его и взять сигналы с его входа
Еще можно нарисовать схему по печатке и определить процессор.
Ну и так далее
------------------------------------------
Голь на выдумки хитра.
 

Bogdan91

New member
Микросхему определил. Она називаеться tm1640
Ето драйвер дешифратор
Подаеться 2 сигнала как в и2с
Clk Dio нашол библиотеку для етой микросхеми . судя по библиотеке дание идут в одну сторону. Но не понято какая шина тут и вроде МК не имеет адрес обрашения
 

nikolz

Well-known member
Собственно в документации все есть
DIN Data input 7 Serial data input; input data changed at low level
and transferred at high level of SCLK
SCLK Clock input 8 Input data at rising edge
------------------------
Т е последовательный интерфейс
Заводим их на два пина ESP и читаем информацию по протоколу TM1640
Проблемы нет все дальнейшее чисто программа.
------------------------
Относительно процессора на плате (хотя это и не надо для чтения с него) предположу что это AVR.
 

Bogdan91

New member
Не так уж просто. Библиотека наботает в одну сторону. Пока думаю как измениь библотеку.
 

nikolz

Well-known member
Не так уж просто. Библиотека наботает в одну сторону. Пока думаю как измениь библотеку.
Причем тут билиотека? А если там ремонт?
У вас есть диаграмма сигналов. Вот и принимайте их
Можно использовать прерывание по SCLK
Можно тупо в цикле чиать SCLK и по фронту читать DIN и формировать байты и записать их в файл на компе .
Потом немного покумекать и нарисовать алгоритм по которому отсылает процессор на дешифратор.
И никакой библиотеки для этого не надо.
 

Bogdan91

New member
Я пока пробовал завети сам модуль от есп. на атмеге 8 и на есп завелась на ура
Я новичок и пока не знаю как провильно считивать дание. если у кого есть предложения я попробую
 

Bogdan91

New member
вот решил начать с малого
Код:
int dataPin = 5;
int clockPin = 4;
void setup() {
  pinMode(dataPin, INPUT);
  pinMode(clockPin, INPUT);
  Serial.begin(115200);
 
}

void loop() {
  int dataState = digitalRead(dataPin);
  int clockState = digitalRead(clockPin);
  Serial.print("data ");
   Serial.print(clockState);
  
   Serial.print(" clock ");
   Serial.println(dataState);
}
пока 1 и нолики.
как ето превратить в дание
 

Bogdan91

New member
Я себе прикинул. тм имее свою память и сохраняет состояние каждой цифри. кажись декодирование не возможно
 

nikolz

Well-known member
вот решил начать с малого
Можно сделать так.
Возьмите Документацию и в качестве примера исходники любой библиотеки
Например этой
GitHub - vogelchr/tm1640-linux-gpio: Quick program to talk to a TM1640 7-segment LED display connected to two Linux GPIOs (e.g. Deal Extreme JY-MCU 16X)
В ней есть пара функций - инициализация(старта) и вывод команды
Вам надо сделать функции, которые будут принимать эти сигналы.
Т е надо сначала распознать сигнал инициализации (старта) , а потом принять команду.
 

Bogdan91

New member
не доходим до ума
не могу превратить данние с пота в байти
подскажите.
и2с или wire не канает. хочет адрес микросхеми. и не нада штоб вмешивалось в работу устройства
как превратить сигнал клок и дата в инфу?
 

nikolz

Well-known member
может кто знает. есп работает в и2с слейв, или толька мастер
Подсказать можно, но есть задачи для решения которых надо учиться.
----------------------
Надо сделать прерывания по фронту клок.
В колбеке надо читать пин данных и заталкивать его с помощью сдвига в байт.
 
Сверху Снизу