Size: a a a

Maxwell's Demons

2021 February 13

TK

Timur Khasanshin in Maxwell's Demons
а альтиум тоже отсылает?
источник

GK

Grigorii Kuzmin in Maxwell's Demons
Пора в треш, коллеги)
источник

VK

Vladimir Komissarov in Maxwell's Demons
Timur Khasanshin
а альтиум тоже отсылает?
источник

TK

Timur Khasanshin in Maxwell's Demons
а то я как раз на работе притаскиваю свой ноут с альтиумом и так работаю
источник

DS

Dmitriy Sh in Maxwell's Demons
для начала нужно подать на катод накал, чтобы электроны эмитировались из катода, и еще надо подать ускоряющее напряжение между катодом и анодом, там надо начинать от 15 кв для рентгена
источник

VK

Vladimir Komissarov in Maxwell's Demons
Timur Khasanshin
а то я как раз на работе притаскиваю свой ноут с альтиумом и так работаю
Ладно, давайте в лучших традициях - варез обсуждать во флудилке?
источник

TK

Timur Khasanshin in Maxwell's Demons
окей
источник

TN

Timur Nabiulin in Maxwell's Demons
Vladimir Komissarov
У вас совершенно бездарный троллинг, кстати.
нуу, у нас уже есть одна местная легенда которая смогла
источник

В

Владимир in Maxwell's Demons
Vladimir Komissarov
Ну, я для себя вывел формулу: если это приносит мне деньги (т.е. средство производства) — то конечно.
Если это для семьи фоточки обработать - то фифти-фифти.
Ты альтиум покупал штоли?
источник

TN

Timur Nabiulin in Maxwell's Demons
Timur Nabiulin
нуу, у нас уже есть одна местная легенда которая смогла
при том даже в поиске яндекса строчка есть при наборе его никнейма)
источник

DS

Dmitriy Sh in Maxwell's Demons
плюс это трубка с вращающимся анододом, можно его еще раскрутить
источник
2021 February 14

K

Kirill in Maxwell's Demons
Всё таки подход в libopencm3 в виде "один бит == функция" немного провальный и не на всю периферию можно натянуть.

Решил я тут запилить sdio для stm32 в libopencm3

Сделал всё по её спорным канонам, запись в регистр разбита на OVER_9999 отдельных функций. Типа:
...
void sdio_set_cpsm_long_response_mode(uint32_t sdio) {
 SDIO_CMD(sdio) |= SDIO_CMD_LONGRESP;
}
void sdio_set_cpsm_short_response_mode(uint32_t sdio) {
 SDIO_CMD(sdio) &= ~SDIO_CMD_LONGRESP;
}
void sdio_set_command_index(uint32_t sdio, uint8_t index) {
 SDIO_CMD(sdio) = (SDIO_CMD(sdio) & ~(SDIO_CMD_CMDINDEX_MASK << SDIO_CMD_CMDINDEX_SHIFT)) |
   (index << SDIO_CMD_CMDINDEX_SHIFT);
}
...


В общем, запилил. Пытаюсь юзать. И вот не работает никак. Пол дня убил.

Чужие примеры на регистрах работают идеально. А этот на функциях - никак. При том, что делаю тоже самое.

А потом заметил одну важную деталь. В коде с регистрами они записываются сразу целиком:
SDIO_CMD(sdio) = SDIO_CMD_CPSMEN | SDIO_CMD_WAITRESP | cmd;


А у меня каждый бит записывается отдельно, с чтением старых битов (как по канонам libopencm3):
SDIO_CMD(sdio) &= ~SDIO_CMD_CPSMEN;
...
SDIO_CMD(sdio) |= index;
SDIO_CMD(sdio) |= SDIO_CMD_WAITRESP;
SDIO_CMD(sdio) |= SDIO_CMD_CPSMEN;


И тут я как понял. В этой сраной AMBA PL180 регистры тормозят!
Ты в него записываешь бит, тут же читаешь - а его нет. Регистр ещё какое-то время возвращает своё старое значение.

Добавил delay после каждой функции - заработало.

У меня прям подгорело с этого. Написал тестер тормозящих регистров: https://pastebin.com/Z5xWECbt
Практически все тормозят: https://pastebin.com/4WAZ0C6g

Ну вот что это за пиздец?

Кажется теперь я знаю, почему так никто и не запилил sdio в libopencm3.
Это просто невозможно без нарушения принятых в ней подходов.
источник

Г

Георгий in Maxwell's Demons
Ребят, не подскажете, кто и зачем так группу переименовал?
источник

VK

Vladimir Komissarov in Maxwell's Demons
Георгий
Ребят, не подскажете, кто и зачем так группу переименовал?
Ребрендинг случился месяца два назад по коллегиальному решению админов 😉
источник

Г

Георгий in Maxwell's Demons
Без рогов значит нынче никак нельзя было обойтись?
источник

VK

Vladimir Komissarov in Maxwell's Demons
Георгий
Без рогов значит нынче никак нельзя было обойтись?
Ну, во-первых, чем вас это смущает?
А, во-вторых, кто мы такие чтобы критиковать великих?
Учите матчасть.
https://en.wikipedia.org/wiki/Maxwell%27s_demon
источник

Г

Георгий in Maxwell's Demons
Не знаю, что Вы называете великим, для меня все однозначно: либо да, либо нет, все остальное.. В общем каждому по вере его.
источник

VK

Vladimir Komissarov in Maxwell's Demons
Георгий
Не знаю, что Вы называете великим, для меня все однозначно: либо да, либо нет, все остальное.. В общем каждому по вере его.
С этим - во флудилку
источник

GK

Grigorii Kuzmin in Maxwell's Demons
Георгий
Ребят, не подскажете, кто и зачем так группу переименовал?
С подключением)
источник

GK

Grigorii Kuzmin in Maxwell's Demons
А, он вышел
источник