16+
Понедельник
17 июня
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

ARM-контроллеры

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
Ксения  (10.06.2019 20:13 - 10.06.2019 20:29) , в ответ на Ксения, а можете обозначить нечто, близкое к идеальному решению вашей задачи? автор: Dingo
В случае, когда вместе с качественным ростом одновременно растет цена+трудозатраты, можно говорить лишь о компромиссе, но не об идеале. Огород до сих пор вскапывают лопатой, хотя лопата - далеко не идеальный инструмент. Мне же желателен компромисс 
ближе к дешевому/простому варианту, где я готова в какой-то мере поступиться качеством в точках, где отношение цены+трудозатраты к качеству растет скачкообразно. Скажем, минитрактор с культиватором многократно дороже лопаты, но он не может в то же число раз улучшить качество вскопанной грядки. Относительной моей задачи: 1. Самый простой/дешевый, но низкокачественный, вариант: по таймеру периодически опрашивать все порты, сравнивая их состояние с предыдущим. При обнаружении отличий пишется сообщение в FIFO-буфер для передачи в ПК, содержащее время события (= счетчик этого таймера), имя или номер порта, где это случилось, и новое состояние этого порта. События из FIFO-буфера отсылаются в свободное от прерываний время. Недостатки: МК не хватает тактовой частоты для частых прерываний, а они сами мешают работе USB-канала и ходу часов. Либо USB-канал и ход часов мешает строго регулярной периодичности прерываний. В ряде случаев нельзя определить, какой из бит изменился раньше, т.к. может оказывать влияние очередность чтения портов. 2. Вариант близкий к желаемому: наличие у МК PCINT (Pin Change Interrupts), подобного Arduino Atmega328, когда прерывание генерируется от изменения состояния любого пина порта. Таких прерываний должно быть столько же, сколько портов у МК (по одному на порт). В этом случае при возникновении прерывания в его обработчике ничего сравнивать не надо, а можно сразу писать в FIFO-буфер время+порт+состояние. Достоинство: нет лишних прерываний, последовательность изменившихся бит строго выдерживается. Недостатки: в классе AVR слишком мало портов, а классе STM32 нет возможности поставить все порты на "сигнализацию". 3. Вариант третий - FPGA. Думаю, что на FPGA возможно сделать всё :), вплоть до эмуляциии МК, но это дорогое решение, а для меня еще и предельно трудоемкое. Т.е. здесь качество не оправдывает цены, тогда как требуемая периодичность 1 мкс не столь уж мала, чтобы FPGA было бы единственным решением. Тем более что 1 мкс - просто круглое число, порядок величины, а потому и с частотой 5 мкс можно было бы согласиться, не слишком теряя в качестве. Ибо сама задача вытекает из необходимости проследить прохождение нервного импульса в головном мозгу подопытного домашнего :) животного, что проще всего сделать, имея карту, фиксирующую прохождение этих импульсов в контрольных точках. Подобно тому, как счетчики проходящих по дорогам автомобилей могут давать информацию о направлении грузопотоков, даже когда отдельные автомобили уникальную метку на себе не несут.
 [x][x][x][x][x][x] [x][x][x][x][x][x][x][x]

Тема выделяется по переводу строки или автоматом

 

Имя


Регистрация позволит вам редактировать и перемещать ваши сообщения и прикреплять к ним файлы.
 
Символы: á é ó ú ý « »
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX