@telecatethysis

Страница 31 из 5118
LexsZero
08.11.2016
20:13:42
не проще ли выкинуть родные мозги и сделать свои? там вроде не так уж сложно должно быть.

Bastad
08.11.2016
20:13:49
а все эти наполнители - баловство

LexsZero
08.11.2016
20:14:10
на esp8266, чтоб кот в твиттер срал.

Google
Василий
08.11.2016
20:14:12
ну я так и знал, что обсуждение ТЗ пойдет вместо железа

Bastad
08.11.2016
20:14:47
это интеренты, чувак

AzZu
08.11.2016
20:14:54
а как ты вставал в разрыв с нуклео? родной ты выпаевал или как его отключал? мб просто от него какие воздействия, и то что ты слал ими портилось?

Василий
08.11.2016
20:15:40
я же грю - включился в разрыв, т.е. от родного отключил и подключил свою плату к считывателю, пытаюсь послать в него тоже, что и родной шлет

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

Для начала хотел протокол проверить - поработать самому со считывателем от лица контроллера, но тут уже сразу затык.

AzZu
08.11.2016
20:18:26
а, лол, точно, ты же не вместо котроллера, ты нуклео к контроллеру подключаешь так ведь? )

Василий
08.11.2016
20:18:54
нуклео к считывателю для начала мастером, в итоге буду слейвом к контроллеру, да

хотя наверное к считывателю оставлю ход тоже, чтобы контролировать что картридж на месте

AzZu
08.11.2016
20:20:26
ну мне кажется нужно для начала даташит на котроллер прочесть

я думаю, там будет ясно, что не так с i2c

хотя, не вру, не обязательно что оно там как переферия используется, может же и на джипио ручками сделан i2с

Василий
08.11.2016
20:21:45
да епть, имеется mbed в котором примеры есть, тока не работает чего-то. Шиты понятно уже перечитал вдоль и поперек. Ладно, надо все таки анализатор наладить, снять что там точно родной шлет, потом повторять слово в слово.

Google
Василий
08.11.2016
20:22:32
Я по простому подтягиваю SDL и SCL к питанию через резисторы, тут засады быть не может? Резисторы пробовал разные, фронты меняются, но эффекта нет.

Просто блин, это все в условиях туалетной комнаты приходится делать, между походами котэ и прочих членов семьи, веселая такая отладка...

AzZu
08.11.2016
20:27:10
там ведь связка получается: nfc метка на катридже <-> nfc считыватель <-> контроллер nfr&]

Василий
08.11.2016
20:27:17
Ага

AzZu
08.11.2016
20:27:18
так?*

Василий
08.11.2016
20:27:48
метка одноразовая, т.е. ее неперепрописать, только запретить на нее слать счетные импульсы

AzZu
08.11.2016
20:28:34
а ну так, ты же прочел шит на nfc-считыватель, значит получает програмно все вертно делаешь...

Василий
08.11.2016
20:29:15
да вроде верно, но он на адрес откликается как и должен, а дальше на команду уже молчит как партизан

т.е. даже ACK не дает

как будто отрубается, дальше шину чистим, опять пробуем адрес, опять откликается, дальше молчит

там вот этот считыватель

Контроллер такой: PIC16F877A, но это пока не важно

я с I2c первый раз, поэтому может детская какая ошибка.

есть у кого кусок кода, посылающий команду по адресу слейва в i2c?

Это тому, кто мне предлагал повторить борду. Думаете будет проще, чем протокол сэмулировать?

AzZu
08.11.2016
20:52:24
по-моему словами "сделать свои мозги" имели ввиду, вместо того что бы втыкаться между котроллером и nfc считывателем, тупо сразу заменить конроллер со своей прошикой.

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

так ведь? )

Василий
08.11.2016
20:53:39
я че сюда пришел? Мне стм нравится, а от пиков меня воротит еще до чтения даташитов. Потому надо как-то так с i2c разбираться, я думаю.

ну понятное дело контроллер там на все сразу один

Google
AzZu
08.11.2016
20:55:23
просто, у тебя есть даташит на нфси считыватель, и я хз как у тебя там что то может не работать с программной точки зрения =/

если ты и на осцилографе видишь что все как по даташиту

и... у тебя дома осцилограф есть? ^^

Василий
08.11.2016
20:56:19
i2c.start(); error=i2c.write(address<<1); i2c.stop(); if (error==0) { printf("0No ack!\n"); continue; } else printf("0Ack\n");

Вот этот кусок нормально всегда отрабатывает, т.е. Ack имеем.

i2c.start(); error=i2c.write(address<<1) error=i2c.write(buf[0]); if (error==0) { printf("1No ack!\n"); continue; } else printf("1Ack\n");

А вот такой уже нет, на адрес Ack есть, а на посылку данных уже не отвечает.

LexsZero
08.11.2016
20:59:18
Василий
08.11.2016
20:59:42
Есть, когда надо, и в сортире ?

AzZu
08.11.2016
21:01:33
так, а ниче что там по даташиту сначала DEV SEL идет, потом адрес и толкьо потом данные?

Василий
08.11.2016
21:02:44
ну понятно, что я первым делом DEV SEL (в buf[0] лежит) пытаюсь послать, речь про адрес слейва на i2c шине.

не стоп, погоди, ты о чем вообще? Я в нулевой регистр конфигурацию начинаю писать, что такое DEV SEL?

там адрес на плате считывателя жестко задан, он на адрес то откликается нормально

0x50 я ему в качестве адреса шлю

AzZu
08.11.2016
21:08:07
адрес считывателя это и есть DEV SEL, в котором последним битом указывается какая оперция будет производится, считывание или запись

Василий
08.11.2016
21:08:38
т.е. это нужный адрес + операция записи, 0 в последнем бите

addreess<<1 - это оно и есть

AzZu
08.11.2016
21:09:08
так ты разве не читать с него хочешь?

Василий
08.11.2016
21:09:57
нет, для начала в него надо адрес записать, того что я хочу прочитать, а следующей командой уже читать

точнее сначала его надо включить (чтобы радиочасть включилась)

Google
AzZu
08.11.2016
21:10:30
0х50 это присвоено переменной adress так?

Василий
08.11.2016
21:10:35
угу

AzZu
08.11.2016
21:12:07
в buf[0] адрес, и после него нет подтверждения, так?

Василий
08.11.2016
21:12:53
там 0, т.е. адрес конфиг регистра, и после него ACK не выдает на шину

ACK вроде после каждого байта должен быть

AzZu
08.11.2016
21:16:24
ты с chip enable кодом разобрался?

Василий
08.11.2016
21:17:26
эти 3 ноги задают адрес, они не подключенты, т.к. адрес 0x50 верный, что подтверждает отклик на этот адрес

AzZu
08.11.2016
21:18:34
что значит не подключены? они на плате, либо на землю, либо на питание должны быть, это же инпуты, не подключены? в воздухе инпуты весят?

Василий
08.11.2016
21:19:12
ну там в шите написано - если не подключены, читаются как 0. там internal pullup на них

Ibh
08.11.2016
21:19:28
https://twitter.com/nixcraft/status/788690145822306304

Василий
08.11.2016
21:19:40
я же не к чипу цепляюсь, а к плате уже готовой

AzZu
08.11.2016
21:20:05
а лол, да, не дочитал

Василий
08.11.2016
21:21:00
со скоростью шины пробовал играть, резисторы тоже, думал может электрически сигнал плохой, не помогло

AzZu
08.11.2016
21:22:36
ммм, просто уточнить хочу, я же не знаю на сколько хорошо ты разбираешься... резисторы к питанию +5В, да?

Василий
08.11.2016
21:23:03
естессно, как на картинке в шите

ну и на адрес то откликается, самое загадочное. Если бы подключил не так, то и не было бы ничего

AzZu
08.11.2016
21:23:46
ну да

от этого все не понятки

если есть первый ack, то все должно работать

Василий
08.11.2016
21:24:18
причем если долбить другими адресами, то ack не приходит

Google
Василий
08.11.2016
21:24:55
ладно буду ждать вдохновения сходить в туалет с логанализатором ?

AzZu
08.11.2016
21:25:24
я вот только одного понять не могу

толи я сонный, толи и в правду дичь какая-то, почему, при чтении, нет байта адреса? О_о

Василий
08.11.2016
21:26:53
в смысле?

Ему надо сначала записать адрес для чтения, а операция чтения следом прочитает данные

AzZu
08.11.2016
21:27:42
я так и думал

до этого момента

я чето не вижу, где там у него в регистрах пишется это адрес

Василий
08.11.2016
21:30:03
посмотри на 21 странице диаграмму. Там 2 варианта, можно читать текущий адрес, можно любой, по сути сначала записав адрес, потом читая

AzZu
08.11.2016
21:31:32
в название " RANDOM ADDRESS READ" тебя рандом не смущает?

Василий
08.11.2016
21:32:13
неа, в диаграмме видно, что сначала запись адреса, потом отдельная операция чтения

все логично

AzZu
08.11.2016
21:33:00
да все я понял

рандом подразумевае

подразумевается любой

а по обычному читать, он их по кругу выдает

i2c.write функция на вход только двух байтовое значание принимает? преопределений на другую размерность нету? ты не сомтрел по библиотеке?

а че за библиотеку используешь?

это же не SPL

блин, мне уже две платы c stm приехало, а программаторы все мимо, никак не одезжают, похоже нужно еще один уже ехать и тупо в чип дипе брать. А то по юарту шиться вообще убийство, по юзб не завевлось почемуто, ждать еще третий программор с китая уже нет сил.

Страница 31 из 5118