|
kobottyz7@kmoyt.som
|
|
Post карта на stm32f407vgt617.05.2017, 17:27. Показов 12691. Ответов 49
Метки нет (Все метки)
необходимо реализовать post-карту на stm32f407vg. считывание данных с компьютера происходит с PCI-шины, и выводится на дисплей LCD 1602. При этом заняты пины PC1, PC0, PC2 | PB11, PB12, PB13, PB14, PB15, PD8, PD9, PD10, куда будут выводиться post-коды на дисплей.
В прикреплениях находится описание шины PCI и post карта на ПЛИС. необходимо сделать то же самое, но на stm32f407vg. программирую на keil, поэтому было бы неплохо если проект был в keil. но это не так важно. будьте готовы объяснить как работает программа:) связаться можно с помощью цена договорная меняю ТЗ. необходимо реализовать post-карту, чтобы выходные сигналы подавались на stm32f407vg. т.е с помощью ПЛИС. не обязательно передавать все post-коды. просто чтобы последний post-код приходил на stm-ку.(лучше чтобы вместо индикаторов, post коды приходили на stm-ку). тут есть готовый проект http://njnmnp.narod.ru/proj/pci80/pci80.html. можно просто её переделать. и нужно будет мне объяснить как программировать на ПЛИС и т.д и т.п. (походу это будет основной проблемой). цена договорная срок до 15 июня |
|
| 17.05.2017, 17:27 | |
|
Ответы с готовыми решениями:
49
stm32f407vgt6 I2C3 Микроконтроллер STM32F407VGT6 OpenMV (stm32f407vgt6 + ov9650) |
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
| 20.05.2017, 16:58 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 4
|
|
| 20.05.2017, 17:05 | |
|
Не наговаривайте на себя.
0
|
|
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||
| 20.05.2017, 17:19 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 73
|
|
| 20.05.2017, 17:53 | |
|
Предлагаю ТС-у всёже приладить камень к шине, поискать там CLK, если он не будет просто так даваться контроллером PCI то прикинуться устройством, и в прерывании от порта по CLK линии читать что-там на ногах в буфер - сразу целиком регистр порта, а не попиново, и смотреть что получится. Или не получится, это тоже результат.
0
|
|
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 4
|
||
| 20.05.2017, 18:15 | ||
Вы хотите опровергнуть факт того, что процессор способен считывать сигнал равный 1/2 частоты своего тактирования ? Боюсь вы ошибаетесь. Про АЦП речь не идет, но вы наверное про синусоиды подумали или аналоговый сигнал. Тут речь про обычный меиндр. Открою секрет, АРМ может еще и генерировать меиндр на частоте своего тактирования, до 70 МГц, уж точно.
0
|
||
|
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 73
|
|
| 20.05.2017, 18:20 | |
|
Меиндр тоже кстати не совсем верно звучит, меиндр можно просто оцифровывать по внутреннему таймеру, может получится не очень.
А тут есть клок (или фрейм) фронт которого послужит синхроимпульсом для запуска выборки. Шина то синхронная.
0
|
|
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 4
|
|
| 20.05.2017, 19:28 | |
|
Оцифровывать думаю не нужно, проще по прерыванию ловим фронт (подъем или спад) и делаем что-нить полезное. У нас же не просто прямоугольные импульсы с разной скважностью, а именно со скважностью 2 (или 0.5 заполнением), т.е. меиндр.
0
|
|
|
kobottyz7@kmoyt.som
|
|
| 20.05.2017, 20:15 | |
|
А как сделать так, чтобы данные из PCI шины в виде 20 регистров параллельно записались в память stm-ки?
т.е нужно зациклить программу -> while(1){} и поставить обработку прерываний по #FROME. в обработчике прерываний пишем что то вроде: void frame(){ pin1 = GPIO_Pin_0; .. pin 20 = GPIO_Pin_20; } однако, разве так программа не будет выполняться последовательно(что приведет к потере тактов, и скорости действительно не будет хватать)? спустя некоторое время прерываем цикл и обработываем pin1..pin20. из 2 СС -> 16 СС, комментарии к кодам и т.д |
|
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||
| 20.05.2017, 20:36 | ||
Как известно STM это архитектура RISC, т.е. выполнение одной команды - один клок тактовой частоты ядра. Предположим стандартная частота 72 Мгц. При максимальной скорости, т.е. забития памяти командами NOP частота Котельникова составит 36 Мгц, но и контролер при этом ничего не делает. Обработчик прерывания. Вызов прерывания не бесплатный, не знаю STM, но допустим один клок. Еще один - команда выхода из прерывания. Даже при при таком раскладе частота Котельникова составит уже 18 Мгц. >> как сделать так, чтобы данные из PCI шины в виде 20 регистров параллельно записались в память stm-ки? Опять же не знаю STM, но допустим у нас добавилось в прерывание еще 20 команд. Всего 22 клока тактовой частоты. Частота Котельникова уже меньше 2 Мгц, при этом мы еще ничего не сделали. А ведь еще нужно читать и анализировать адрес на адресной шине, расшифровывать код ошибки, выводить его на индикатор и т.д.
0
|
||
|
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 73
|
|||||||
| 20.05.2017, 21:09 | |||||||
Может взять туже плату марсохода с ОЗУ в качестве сниффера? А мк будет анализировать. В дипломе можно будет написать что так и так оно не успевает, и поэтому мы делаем буфер.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
| 20.05.2017, 21:13 | |
|
Если у вас уже есть Pinboard II, лучше взять модуль Ottira MAX II EPM240T100C5N:
<Изображение удалено> Только при таком раскладе stm32f407vgt6 получается как бы лишний.
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 270
|
|
| 20.05.2017, 22:05 | |
|
Учитывая, что частота будет 33Мгц, что мешает просто
по прерыванию синхросигналов считывать данные? То есть 1 порт целиком под шину данных, что бы не надо было из битовых масок данные вычлинять. Как бы 16 бит целиком проверить на соответствие адреса и в случаи совпадения следующие данные на шине вывести на дисплей думается будет не сложно. В задачу ведь не входит полный анализ всего происходящего на шине.
0
|
|
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
| 20.05.2017, 22:13 | |
|
Шина PCI изначально 32 разрядная, и адрес на ней 32 разрядный. Клок шины 33 Мгц. С такой частотой надо считывать и анализировать адрес на шине, если поймали нужный - проводить дальнейшие действия.
0
|
|
|
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 73
|
|
| 20.05.2017, 22:32 | |
|
Даже если не поймали и вообще НЕ анализировать ПРИ считывании - выходит за время прерывания (при 33МГц) надо войти в прерывание, очистить флаг, считать один порт (16бит) в буфер, еще один, инкрементировать указатель и выйти из прерывания. И всё за 5 тактов при 168МГц тактовой. ( 168/33 = 5.09 ).
0
|
|
|
kobottyz7@kmoyt.som
|
||
| 21.05.2017, 00:07 | ||
|
я понял, что микроконтроллер не успевает обработать ВСЕ приходящие из PCI шины POST коды.
Но ведь мне не важны ВСЕ сигналы. А только последний. на интелевском сайте написано:
|
||
|
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 73
|
|
| 21.05.2017, 02:00 | |
|
Если я правильно понимаю порт 80 это адресное пространство, и его считать нельзя, но если нужно только последнее состояние и только в момент ошибки, то получается сидеть в прерывании и запускать ожидание что другого прерывания не наступит (т.е. ошибка) и если я правильно понял фреймы и шина действительно "останаливается" и оставляет хвост фрейма то останется только считать его. Если клок прощелкивает и фрейм завершается сбросом линий в дефолтное состояние то не выйдет.
Если будет "снимок попадания в аварию", можно будет сказать точнее.
0
|
|
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 4
|
|
| 21.05.2017, 03:08 | |
|
POST-коды порта 80h
Во время теста POST BIOS генерирует коды прохождения (POST-коды) и направляет их в порт ввода/вывода 80h. Если процедура POST завершилась неудачно, последний сгенерированный POST-код остается в порту 80h. Этот код можно использовать для определения причины ошибки. Т.е. тут просто надо считывать порт и смотреть что там есть. Даже ловить ничего не нужно.
0
|
|
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
| 21.05.2017, 07:36 | |
|
А как узнаете что вы читаете из порта 80h, а не например 61h (PC Spioker)? Повторяю, адрес на PCI шине 32 разрядный.
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 270
|
|
| 21.05.2017, 11:04 | |
|
Можно же высвободить время за счет ДМА:
Таймер-захват --> ДМА (данные из порта в массив). И по мере заполнения массива анализировать. Учитывая что проц свободен, можно выводить не просто коды, а уже расшифрованные текстовые подсказки. Вопрос только сколько времени пройдет от момента захвата до копирования (скорее всего успеет). В приведенных ТСом доках описывается 16 битная шина. И схема там на 16 бит. И еще 4 бита указывающие на то что именно на шине данных.
0
|
|
|
kobottyz7@kmoyt.som
|
||
| 21.05.2017, 13:19 | ||
|
||
| 21.05.2017, 13:19 | |
|
Внешний кварц для STM32F407VGT6 Прошиваем STM32F407VGT6 c помощью stm32f4discovery Post карта для ноутбуков Post карта для материнки ASUS POST-Карта для PCI-e существует? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|