вопрос по ассемблеру. PIC16f716 управляет симистором

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Питание
Открыл глаза
Сообщения: 63
Зарегистрирован: Пт июн 26, 2020 16:33:29

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение Питание »

Хм. Пока у вас еще только "в плане", я уже десять раз молча сделал этот "план"... И без глупого пипкомеряния. Проще надо быть, проще. И не думать, что "ты один дартаньян, а остальные вокруг дураки". А то потом неловкость как бы не получилась
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25265
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение КРАМ »

[uquote="Питание",url="/forum/viewtopic.php?p=3870083#p3870083"]без глупого пипкомеряния.[/uquote]
Пипкой тут размахиваете только вы.
Думая, что все вокруг полные идиоты. Никого не интересуют ваши 10 раз.
Заниматься сборкой чужих кубиков, выдавая это за свой проект - гомерически смешно.
Лучше ответьте мне на мой простой вопрос (тот что я выше написал), который я задал на одном из весьма солидном форуме и ответа так и не получил. Зато все "МР1-дартаньяны" 10 раз.
:tea:
ЗЫ. По результату ответа можно обсудить причину этого явления. Эта причина мне по прежнему не понятна. Наверное есть резоны, узнать которые было бы интересно.

Добавлено after 6 minutes 17 seconds:
[uquote="Питание",url="/forum/viewtopic.php?p=3870012#p3870012"]Да, спасибо, оценил ваш "уровень" знаний по этой галиматье :) Как говорится, спасибо, всё ясно, можете не продолжать, написанное весьма красноречиво вас представило как "спецыализта" :)[/uquote]
И что же вам не понравилось в моем вопросе? Конкретно.
Могу пояснить, если был неточен.
:wink:
Вы знаете как работает ДМА в F0?
Реклама
Питание
Открыл глаза
Сообщения: 63
Зарегистрирован: Пт июн 26, 2020 16:33:29

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение Питание »

Знаю. А вы?
Да, кстати, а ниче, что тут тема вообще про PIC16F и симистор? А вы тут со своими проблемами с DMA STM32F051 начали. Создайте новую тему с названием "Не могу настроить UART с DMA в STM32F051" - вот там и обсудим, что у вас не получается сделать.
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25265
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение КРАМ »

[uquote="Питание",url="/forum/viewtopic.php?p=3869823#p3869823"]Вы видели мануалы на тот же STM32? ..........Щас новое появилось, попробуй и не отставай от жизни, не теряй время!" И я последовал совету. Так то было 7 лет назад!
А сейчас, аж в 2020 году, когда советуешь "не отставать от времени и запрыгнуть на подножку уходящего поезда", находятся люди, которые будут тянуть назад, заявляя, что "начало тысячелетия - наше всё! не стремитесь вперед - впереди мрак и потьма".[/uquote]
То есть после этого беспонтового флуда вы смеете меня упрекать в отклонении от темы?
:facepalm:
Вы в своем уме, милейший?
Мало того, что вы влезли с никчемными советами в вообщем-то завершенную тему, так еще и показываете неосведомленность в конкретных вопросах тех самых СТМ32, на которые советуете переходить.
Вы НЕ ЗНАЕТЕ как работает ДМА в F0. Потому что мой вопрос очень прост для тех, кто хоть раз использовал ДМА не через SPL или HAL, вызывая без всякого понимания библиотечную инициализацию, а для тех, кто разбирался с рефмануалом и даташитом по настоящему. Ответ должен был последовать мгновенно. В моих действиях при перезапуске ДМА отсутствует одно единственное выражение.
Реклама
Эиком - электронные компоненты и радиодетали
Питание
Открыл глаза
Сообщения: 63
Зарегистрирован: Пт июн 26, 2020 16:33:29

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение Питание »

:) Смешно, смешно. То есть, стрелочник из вас отменный. Зачем вы вообще развели этот спор? Очень хотелось доказать, что вы тут самый большой мальчик? Ладно, вы - большой мальчик. Довольны?
Напрасно вы считаете других глупее себя, напрасно. Между прочим, я вам ничего плохого не делал. Зачем вы так на меня накинулись? Зачем? Не понимаю. Я вас не трогал. Иль вы считаете себя очень умным и очень главным? Ладно, хорошо - вы очень главный. Довольны? Ну и все, идите, гуляйте.

А по поводу вашего вопроса - я ж незря написал, что "это галиматья". Ибо.. ибо зачем таймер с запросами, когда сам UART имеет запросы DMA на передачу? Вы с этим запутались, не прочтя мануалы, поэтому я и составил мнение о вас. Всё честно. Вы сами это написали, вас никто не тянул за язык.

А советы мои - совершенно абсолютно правильные. Незачем в 2020 году пытаться изучить то, что отмерло уже лет 10 назад. Ну разве что если больше ничего не получается изучить.

И всё, на этом я заканчиваю диалог с вами окончательно. Можете писать че угодно, как угодно, хоть лбом биться о монитор, но мнение о вас уже составлено, и оно - ниже плинтуса, и мне глубоко побарабану, что вы и как вы. Мрак - он и есть мрак.
Вложения
2020-07-22.png
(69.42 КБ) 465 скачиваний
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25265
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение КРАМ »

[uquote="Питание",url="/forum/viewtopic.php?p=3870148#p3870148"]Ибо.. ибо зачем таймер с запросами, когда сам UART имеет запросы DMA на передачу?[/uquote]
Даладна!!! А пацаны то не знают... :))) :))) :)))
Блестящая у вас эрудиция. Прямо отменная...
Вы в курсе, что реквесты ДМА могут не иметь никакого отношения к источнику или приемнику данных?
Таймер при передаче в УАРТ, милейший, нужен, если требуется ИНТЕРВАЛ между байтами при передаче.
Если реквестить от самого буфера передатчика, то между байтами будет всего один клок самого УАРТа. Поскольку у меня УАРТ выбрасывает пакеты в HID USB кастомный мост на PIC18F14K50, идущие без зазора байты не позволяют на лету поллить пакет, чтобы выделить данные из синхронизации перед передачей в стек USB.
Таким образом, вы не только слили вопрос, но дополнительно продемонстрировали свою некомпетентность.
:dont_know:
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение Мурик »

КРАМ писал(а):Вы в курсе, что реквесты ДМА могут не иметь никакого отношения к источнику или приемнику данных?
Обычно так не делают. А если по той или иной причине байт не был передан, а по таймеру загружен другой? Что имеем? Правильно потерю данных! Нужно дождаться передачи байта и тогда отправлять другой, а для этого запускать DMA должен USART.
Я тоже удивился когда прочитал про USART+DMA и таймер. Таймер в этой связке явно лишний.
КРАМ писал(а):Поскольку у меня УАРТ выбрасывает пакеты в HID USB кастомный мост на PIC18F14K50
Может я чего-то не знаю, но разве в PIC18 есть DMA? В те времена когда с ними работал, его не было. Добавили в новых моделях?
Конкретно в PIC18F14K50 DMA нет.
КРАМ писал(а):идущие без зазора байты не позволяют на лету поллить пакет, чтобы выделить данные из синхронизации перед передачей в стек USB.
У МК производительности не хватает? Может стоило взять более мощный МК?
По моему решение должно быть простым. Передаете пакет без зазора и в конце пауза. По паузе определяете что пакет принят. Чем не вариант?
Аватара пользователя
valentinovich
Электрический кот
Сообщения: 1004
Зарегистрирован: Ср окт 04, 2017 20:47:40

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение valentinovich »

Дорогой тов. Питание. осмелюсь напомнить, что тему открыли не вы и ваша "Истина в последней инстанции" здесь мало уместна, засоряет топик и является по сути для ТСа пустым флудом. Т. е. топик вы угробили. Если вам это по силам и не претит вашему воспитанию, то попробуйте уважать чужие темы, другие мнения и научитесь давать советы, которые ждёт вопрошающий вместо "стучания себя пяткой в грудь". :)
А лучше откройте свою тему и там учите всех жить и рассказывайте какой вы есть крутой и умный. Ну а мы все тут будем коленопреклонённо потихоньку внимать величию и скрупулёзно всё конспектировать в цитатники. :))
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25265
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение КРАМ »

[uquote="Мурик",url="/forum/viewtopic.php?p=3870161#p3870161"]Нужно дождаться передачи байта и тогда отправлять другой, а для этого запускать DMA должен USART.
Я тоже удивился когда прочитал про USART+DMA и таймер. Таймер в этой связке явно лишний.[/uquote]
Уважаемый, неужели я столь косноязычен? :dont_know:
Чтобы обеспечить зазор между байтами, таймер должен выдавать реквесты с ТРЕБУЕМЫМ периодом следования байт. Если скорость УАРТа 115200, то байт передается за 89 мкс. Делаем период таймера 120 мкс и имеем зазор между байтами 120-89=31мкс. В каком месте УАРТ может не успеть передать байт? Что может не дать ему это сделать? :tea:
Наконец, предложите иное решение с использованием ДМА и зазорами между байтами.

По поводу PIC18F14K50.
Видимо вечер не задался... Не у меня.
1. Это ДРУГОЙ контроллер. УАРТ о котором шла речь относится к STM32F051. И этот 051-ый с помощью ДМА формирует посылки в PIC18F14K50. Через гальваноразвязку, кстати. Это чтобы меня кто-нибудь не стал учить как делать HID USB на STM32. Ну чтобы типо на одном МК. :tea:
2. Поскольку PIC18 принимает пакет в свой УАРТ через прерывания, а пакет имеет синхронизацию, позволяющую слать пакеты один за другим как единый поток, то на поллинг этих пакетов нужно некоторое время, которое и дает зазор между байтами.
3. ДМА в PIC18F14K50 таки есть. Специально для USB. Но это так, для строгости суждений... К теме отношения не имеет.
:)

Мурик, а вы можете дать ответ на поставленный мной вопрос - почему второй и последующие пакеты не желают передаваться? Первый отлично выдается.
Еще раз напомню. При запуске передачи очередного пакета имеется ровно три выражения в Си:

Код: Выделить всё

    TIM16->CNT = 0;
    DMA1_Channel4->CCR |= DMA_CCR_EN;
    TIM16->CR1 |= TIM_CR1_CEN;
Какой строки не хватает и почему?

[uquote="Питание",url="/forum/viewtopic.php?p=3870180#p3870180"]Вот и выдумывает мрак всякий вместо прямых и очевидных решений.[/uquote]
И эти люди запрещают нам ковырять в носу... (с) ФГР
:music:
Милостивый государь, вам противопоказано учить людей жить. Скажу прямо. Ваша тупость не имеет границ и видимо уже терминальна.
Идите с Богом...
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение oleg110592 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=3870224#p3870224"]При перезапуске передачи очередного пакета имеется ровно три выражения в Си...[/uquote]
да надо бы в соответствующий раздел перенести.
В снипетсах от производителя тоже три строки

Код: Выделить всё

  /* start 8-bit transmission with DMA */
  DMA1_Channel2->CCR &=~ DMA_CCR_EN;
  DMA1_Channel2->CNDTR = sizeof(stringtosend);/* Data size */
  DMA1_Channel2->CCR |= DMA_CCR_EN;
там в прерывании от кнопки, но можно в прерывании от таймера. Интересно почему пакет больше не формируется при ручном запуске таймера.
На STM32F091 это применял в проектике на 4-5 USART и пакеты и принимаются и передаются через DMA асинхронно
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25265
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение КРАМ »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3870241#p3870241"]В снипетсах от производителя тоже три строки[/uquote]
Олег, это ДРУГИЕ три строки. :tea:
Во первых, это для случая реквеста от самого модуля, а не от стороннего таймера (который нужно перезапустить), во вторых сниппетсы не являются частью даташита, в третьих В ДАННОМ случае в этом сниппетсе есть ответ на вопрос.
Но этот ответ совершенно не очевиден.
Проблема в том, что по каким то совершенно неведомым мне причинам, при апдейте ДМА в новом цикле транзакций, В РЕЖИМЕ CIRCULAR происходит апдейт счетчика транзакций из буфера CNDTR, а В РЕЖИМЕ ONE SHOT (!CIRCULAR) такого не происходит и нужно РУЧКАМИ перезаписывать количество транзакций в CNDTR.
Почему сделано столь кривое решение - мне непонятно. В F4 это не так. Во всех многочисленных архитектурах DMA у Микрочипа (любой разрядности) - это не так, у Техаса - не так. Я вообще в первый раз встретил подобное.
Строго говоря, даже передергивание самого канала ДМА (выкл-вкл) перед стартом тоже непонятно зачем сделано. Но так и в F4.
Человеческим решением было бы автоматическое выключение канала ДМА одновременно с формированием флага прерываний по завершению пакета. И одновременный апдейт счетчика из буфера, ну или апдейт счетчика при старте новой сессии. Ведь в режиме "циркуляр" именно так и работает... Тогда при старте новой сессии потребовалось только включить канал и запустить реквесты.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение oleg110592 »

вроде в документации написали
If the channel is configured in non-circular mode, no DMA request is served after the last
transfer (that is once the number of data items to be transferred has reached zero). In order
to reload a new number of data items to be transferred into the DMA_CNDTRx register, the
DMA channel must be disabled.
у F0 в DMA и FIFO нет в отличии от старших братьев, если бы все было - можно без старших было бы легко обходится
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25265
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение КРАМ »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3870253#p3870253"]можно без старших[/uquote]
Я эту цитату как то не нашел. Видимо не хватило усердия. Но решил проблему примерно за полдня.
Однако даже в PIC18FxxQ43 ДМА работают штатно - с апдейтом счетчиков. И даже бурст-режим есть довольно продвинутый, с автоматическим определением счетчика для бурста (сорец или дестинатор). И мультиплексоры источников реквестов идентичные на все 6 каналов ДМА - полная и длинючая на две страницы таблица всех возможных источников реквестов.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение Мурик »

КРАМ писал(а):Мурик, а вы можете дать ответ на поставленный мной вопрос - почему второй и последующие пакеты не желают передаваться? Первый отлично выдается.
Я хз что у вас в коде. У меня на F0 все передается.
КРАМ писал(а):Какой строки не хватает и почему?
Как минимум нужно задать число байт для передачи через DMA если он в нормальном режиме. В циркулярном в этом нет необходимости. Какой у вас режим неизвестно.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25265
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение КРАМ »

[uquote="Мурик",url="/forum/viewtopic.php?p=3870344#p3870344"]Как минимум нужно задать число байт для передачи через DMA если он в нормальном режиме. В циркулярном в этом нет необходимости. Какой у вас режим неизвестно.[/uquote]
Мы уже с Олегом обменялись мнениями на этот предмет. В режиме передачи пакетов через УАРТ циркулярный режим противоестественен, как вы сами понимаете.
При наличии буфера счетчика транзакций для циркулярного режима, требование апдейтить счетчик руками путем вписывания одного и того же значения в буфер выглядит очень странным, если не сказать грубее. И в F4 такого безобразия нет.

Добавлено after 1 minute 22 seconds:
[uquote="Мурик",url="/forum/viewtopic.php?p=3870344#p3870344"]У меня на F0 все передается.[/uquote]
У меня тоже. Читайте выше.
vladserebrya
Родился
Сообщения: 13
Зарегистрирован: Пн авг 03, 2015 23:58:21

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение vladserebrya »

скажите, кто сможет мне написать код, по теме? и сколько будет стоить этот труд? для меня это будет пример, и легче понять куда и что.
на начальном этапе, чтоб при включении в сеть, сим открывал нагрузку от 50в до 220в, в течение 5секунд
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15574
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение BOB51 »

Это случаем не замена/ремонтные страсти по такой платке?
https://www.radiokot.ru/forum/viewtopic ... 1#p2769991
:roll:
vladserebrya
Родился
Сообщения: 13
Зарегистрирован: Пн авг 03, 2015 23:58:21

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение vladserebrya »

нет, это мне надо в томас прошивку написать, у них лоченые пики стоят. 12с509. если понадобиться, чтоб можно было код под любые порты любого пика написать. а тут от самсунга плата готовая лежит, потому на ней и хочу реализовать вначале
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15574
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение BOB51 »

Чтоб "дистанционно" чего написать нужна и полная схема и описание хотелок...
Не "с потолка" же прожку писать.
Т.е. рисуем схемку в стандартно-любительском splan7, пишем описание работы входных кноп и желаемый результат на выходе.
А уж там и с прожкой понятнее будет.
:beer:
vladserebrya
Родился
Сообщения: 13
Зарегистрирован: Пн авг 03, 2015 23:58:21

Re: вопрос по ассемблеру. PIC16f716 управляет симистором

Сообщение vladserebrya »

можно от руки нарисую? а то еще сплан осваивать-жизни не хватит)))
Ответить

Вернуться в «Разные вопросы по МК»