Category: цветы

Category was added automatically. Read all entries about "цветы".

Костерок

Как в CANopen heartbeat-посылки выключают?

Хотим на основе pusirobot'овских драйверов ШД одну старую железку автоматизировать. Шаговиков там будет не меньше двух десятков, разнесены по объему в десяток кубометров.
Сижу, ковыряюсь с протоколом, и очень напрягает, что каждую секунду идут сообщения #0x0705 0x05. Пока устройство одно, это еще цветочки, но ведь если их там двадцать (или даже больше) будет на одной шине, они ж заспамят все напрочь! Вообще анализировать невозможно будет с CAN-сниффера!
Даташит на железку прочел, не нашел, как эту дрянь отключить. И гугол на этот счет молчит — неправильно ищу, видимо...
UPD: решено! На изиэлектрониксе подсказали, что это - pruducer heartbeat time (0x1017), отправил 0x0605 0x2b 0x17 0x10 0 0 0 0 0, все ОК!!

Трабл с таймером STM32

Что-то никак "не выходит каменный цветок" с таймером STM32.
Задача - генерить на выходе Output Compare импульсы Step для шагового двигателя.
Время между их передними фронтами меняется (разгон/торможение).
За основу взял известный принцип: 16-битный счетчик таймера считает постоянно по максимальному модулю 65536.
Очередная задержка формируется перезаписью регистра СС, с прибавлением её длительности к текущему значению СС.
Используется 2 канала CC, срабатывающих с фиксированным сдвигом.
Вначале срабатывает OC2; в его прерывании делаются расчёты и операции по подготовке шага.
Затем срабатывает OC1, по которому формируется собственно фронт шагового импульса.
Однако никак не получается запустить эти прерывания в нужной последовательности.
Сейчас застрял на том, что примерно один раз за цикл счетчика (~65 mc) возникают флаги прерывания в каналах СС 3 и 4, для которых и СС events, и генерация прерываний запрещены. Такое впечатление, что Update Event таймера сбрасывает все эти запреты, хотя оно тоже запрещено, да и даташиту такое поведение не соответствует.
Ниже - картинка с анализатора и текст обработчика прерывания.
Прошу не тратить буквы на то, чтобы лажать HAL и LL драйверы; тут явно в чем-то другом дело.

UPD: Описанная проблема решена, расчётные тайминги прерываний пошли. Но вот ещё вопрос, раз такое дело. Вот по CC Match изменился уровень внутреннего выходного сигнала OCxREF - я так понимаю, взвелся некий триггер. Как этот триггер программно вернуть обратно? Задать через регистр CCMR OCM=Forced active/inactive? И если да, сбрасывают ли его какие-то другие действия/события?



void TIM3_IRQHandler(void)
{
if (LL_TIM_IsActiveFlag_CC1(TIM3)) //начался импульс STEP1
{
LL_TIM_ClearFlag_CC1(TIM3);
sm_driver_PostStepA();
}
if (LL_TIM_IsActiveFlag_CC2(TIM3)) //подготовка к STEP1
{
LL_TIM_ClearFlag_CC2(TIM3);
speed_cntr_PreStep(0); //Из этой функции вызывается тестовый ногодрыг для Cannel1, дающий правильный тайминг
}
if (LL_TIM_IsActiveFlag_CC3(TIM3)) //начался импульс STEP2 - это прерывание и CC3 event запрещены!!!
{
LL_TIM_ClearFlag_CC3(TIM3);
//++++++++++++++++++++++++++++ А это тестовый ногодрыг для Cannel2, и сюда прога вообще не должна попадать
HAL_GPIO_WritePin(StpMotor2_Current_GPIO_Port,StpMotor2_Current_Pin,GPIO_PIN_SET); //Set PA4
HAL_GPIO_WritePin(StpMotor2_Current_GPIO_Port,StpMotor2_Current_Pin,GPIO_PIN_RESET); //Reset PA4
//++++++++++++++++++++++++++++
// sm_driver_PostStepB();
}
if (LL_TIM_IsActiveFlag_CC4(TIM3)) //подготовка к STEP2
{
LL_TIM_ClearFlag_CC4(TIM3);
// speed_cntr_PreStep(1);
}
}
DI HALT
  • di_halt

Странное

Есть железка. Работает на STM32F103VG. На железке внешняя АЦП на SPI, да всякая управляловка. Железка работает. Показывает данные с АЦП и все хорошо. Для железки есть хекс. Где то даже были сорцы, но пока они не интересны.

Есть клон железки, сделан один в один. C тех же герберов за мизерными изменениями. На нем этот хекс не работает. Точнее все работает, но АЦП показывает обрыв датчика.

Всегда, даже когда модуля АЦП физически нет. Оригинал при отсутствии АЦП показывает 65.65 в показаниях. Сунулся логическим анализатором - данные в АЦП и из АЦП идут одинаковые в оригинале и в клоне. Инициализация АЦП и показания с АЦП которые уходят в STM32 плюс минус равны.

Тем более смена одного ацп на клонированный (он модулем сделан) не меняет диспозиции. Клон не работает, оригинал работает.

Вначале грешили на железку хотя там все просто, но мало ли. Перебросив процы с оригинала на клон, получили работающий клон и не работающий оригинал. Т.е. дело все только в мозгах главного МК.

Но мозги оригинала не залочены. Я подцепился STLINKом и слил прошивку с оригинала и (она немного различалась с хексом, но может просто старая версия), залил ее в клон.

Клон заработал (т.е. слитая прошивка не мусор, не шифрована или что то похожее) но также показывает обрыв датчика.

Поменял проц, правда на из той же партии. Залил и содранную прошивку и которая у меня была -- симптомы те же. ВСе работает, кроме того, что с АЦП идет не то.

Что это, не работающий SPI в контроллере который принимает левые значения? Но тогда бы он не отдавал нормальную инициализацию в АЦП, а там все разумно довольно. Как только АЦП говорит RDY контроллер тут же запрашивает DATA, а до этого в цикле спрашивает STATUS.

Есть правда подозрение, что я не все слил и что то где то осталось не считанной. Но схера ли она тогда вообще работает? Она ведь работает, рисует данные на экранчик по RS485, т.е. высшая нервная деятельность жива. Или у STM32 есть что-то вроде fuse или еще каких конфигурационных битов которые что то определяют?
Лампа
  • dlinyj

Отдаётся в хорошие руки эмулятор RFID!!!

Давным давно, когда интернет был молодым, а жж активным, с камрадом odinokij_kot мы замыслили сделать эмулятор RFID Mifare Classic, который используется в московском мтеро. Существует отличный проект "OpenPICC RFID Emulator Project" и мы взяли его за основу, заказали и изготовили платы, закупили часть деталек, но на этом наш запал кончился


Часть изделий

Во первых никто не гарантирует работоспособность платы (там были только гербера!). И судя по фоткам, они вешают сопли. А во вторых, там нужна куча индуктивностей, которых в нашей деревне купить проблематично. На этом проект валяется у меня в ящиках.

Я с удовольствием готов его передать в добрые руки, при условии изготовления и держания в курсе меня и Кота, о следовании проекта!

Забыл: Москва. Желательно без пересылки, но обсуждаемо
photo

Конвертация RGB-видео в композитный сигнал.

Завтра наконец иду на почту получать наголовный дисплей (очки с дисплеем-монокуляром 320*240 и композитным видеовходом). Загодя заказала переходник с VGA на видео, но пришел переходник с тремя "тюльпанами" - R, G и B. Попробовала подключить VGA к нетбуку, а один из видеовыходов переходника к композитному входу телевизора. На режиме 1024*768, 60Гц на экране появилось изображение - но явно со сбитым сигналом синхронизации, да и вместо одного экрана на ТВ вывелось три в ряд, сплющенных по горизонтали (как я понимаю, потому, что на вход поступает составляющая вместо трех).

Посоветуйте, как сделать из трех сигналов (R, G и B) один композитный? Естественно, адаптер VGA/Composite Vedeo я уже заказала, но очень уж не хочется ждать еще месяц...

усилитель КОРВЕТ 100У-068С

собственно сабж

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

удалить все лишнее типа баланса.. темброблок оставить..

вот какие переключатели типа П2К советуете применять?

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

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

так-же планирую сменить фронтальную панель.. оставить крутилку селектора, темброблок, маленькую кнопульку отключения (или вообще пассивный темброблок поставить..


как вы думаете без предусилителя он будет работать? а то может предусилитель удалить как класс? оставить пассивный регулятор громкости?


UPD:
залез.. поразился схемотехнике..
здоровенная плата с пятью П2К это селектор входов.. далее здоровенная плата с кучей деталей - коректор электропроигрывателя (пластинки.)
удалилл обе.. вход напрямую на предвар запаял.. Collapse )