-
umarsohod
-
Автор темы
-
Не в сети
-
Администрация форума
-
-
Сообщений: 815
-
Спасибо получено: 168
-
-
|
Публикую пару фотографий , надеюсь он на меня не обидится :(
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
Автор темы
-
Не в сети
-
Администрация форума
-
-
Сообщений: 815
-
Спасибо получено: 168
-
-
|
Для "dron".
Я посоветовал сделать так, а как на самом деле у Тохи заработало я не знаю, это надо с ним как-то связываться :( .
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Toxa
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 7
-
Спасибо получено: 1
-
-
-
-
|
всем сдрасти. сваял новую плату на плисе EP3C5E144 и экранчике 800x480 пикселов. сделал для начала фреймбуфер на SDRAMке и получил USB фоторамку
ВИДЕО РАБОТЫ
сейчас подключил microSD на 8GB и инициализирую ее в SD Mode (4х проводном) режиме. данные шлются в фрембуфер экрана.
для начала немного инфы, формат данных идущих по 4м проводам от SD карточки таков: на всех линиях лог 1 (подтяжка резисторами к +), когда карточка готова передать данные, то она на очередной клок прижимает все линии к земле. далее передаются 512 байт данных (1024 клока) и CRC + завершающий END bit на всех 4х линиях =1 и карточка освобождает линию (на линии опять лог 1), пока не будет готова передать новый пакет данных.
теперь о проблеме. пытаюсь нарисовать схему, которая бы ожидала старт бит, далее записывала бы 512 байт во в фреймбуфер и пропустив CRC и стоп бит снова ждала бы старт бита. третий день подряд ни черта не выходит, зверски бесит уже это дело :angry:
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
Автор темы
-
Не в сети
-
Администрация форума
-
-
Сообщений: 815
-
Спасибо получено: 168
-
-
|
Схема видна очень плохо, ничего не понятно.
Вы заархивируйте и выложите ".bdf" или пришлите на Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., если сюда не поместится.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Toxa
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 7
-
Спасибо получено: 1
-
-
-
-
|
ой, а я и не увидел, что изображение сжалось, прокол... вот
АРХИВ
с проектом. кст, симуляция на моем нетбуке не запускается, Quartus 9.1 говорит, что ему мало памяти. по этому проверяю работоспособность просто заливая код в кристалл. в принципе только вот этот кусочек и не работает как нужно.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
Автор темы
-
Не в сети
-
Администрация форума
-
-
Сообщений: 815
-
Спасибо получено: 168
-
-
|
Правильнее всего будет переделать эту схему в "синхронную", для этого:
1. Нужна тактовая частота более чем в два раза выше чем CLK_SPI , это будет управляющий клок.
2. На всех DFF создать вход CLOCK_ENADLE и подать на него то что сейчас идет на их клоки.
3. На все клоки, в том числе и счетчика, подать управляющий клок
4. Сделать на счетчике вход COUNT_ENABLE и подать туда то, что шло на клок
4. На входе CLK_SPI поставить схему выделения фронта -
marsohod.org/index.php/verilog/157-verilogedges
5. На триггере убрать сигнал с асинхронного сброса и подать его на вход D
6. На счетчике в место асинхронного сброса поставить синхронный.
На первый взгляд все, со счетчиком не очень могу сообразить, будет ли в нужный момент сбрасываться, нужно пробовать.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Toxa
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 7
-
Спасибо получено: 1
-
-
-
-
|
ок, спасибо! буду вечером пробовать.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Toxa
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 7
-
Спасибо получено: 1
-
-
-
-
|
5. На триггере убрать сигнал с асинхронного сброса и подать его на вход D
а клок триггера оставить прежним? просто фронт клока по задумке появляется на нем в момент установки на счетчике числа 1024 (11бит=1, 10бит=0).
кст вопросы у меня есть про логику работы триггера. если на асинхронном сбросе в 0 или установке в 1 активное состояние, то триггер не реагирует на сигнал клока? то есть сбросил я триггер асинх. сбросом в 0 и держу его так, а на входе триггера лог 1 и фронт клока нагрянул, то на выходе триггера что будет? так и останется 0 или по фронту клока установится 1? и кто из асинхронных сигналов более приоритетнее - сброс или установка? тоесть если оба активны, то что на выходе триггера?
еще вопрос про CLOCK_ENADLE. если на входе клока счетчика 1 и CLOCK_ENADLE сменит состояние 0->1, то счетчик не воспримет это как фронт клока? просто всегда думал что CLOCK_ENADLE в паре с CLOCK работает как элемент И.
а еще вопрос про асинхронные сброс и установку счетчика - они то же находясь в активном состояние не дадут счетчику считать по фронту клока или нет? и кто из них приоритетнее - сброс или установка?
извиняюсь за глупые вопросы, сам бы проверил в симуляторе, но как уже написал, он у меня не работает.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
Автор темы
-
Не в сети
-
Администрация форума
-
-
Сообщений: 815
-
Спасибо получено: 168
-
-
|
Вам нужно начать мыслить несколько иначе
- Про асинхронные сигналы вообще забудьте, считайте что их не существует.
- Не подавайте на клок любого триггера сигнал с комбинаторной логики. Подавать можно с PLL ,
входной ножки , если снаружи стоит хороший генератор, или с выхода другого триггера.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Toxa
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 7
-
Спасибо получено: 1
-
-
-
-
|
то есть вы асинхронными сигналами вообще не пользуетесь? а подавать на клок триггера сигналы с комбинаторной логики почему не следует? поясните пожалуйста)
ура, заработало! добавил к изначальной схеме паузу в 16 клоков, после окончания приема пакета, что бы не было ложных срабатываний на ложные start bitы в поле CRC. так же добавил обратную связь, что бы разрешать сброс счетчика, только тогда, когда триггер установлен в 1, а то счетчик оказывается сбрасывался при каждом ложном start bitе (почему я это сразу не увидел). и последнее изменение, которое я еще не могу объяснить - пришлось добавить установку счетчика не в единицы (2047), а в 2046, иначе пропускался первый полубайт пакета данных.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Toxa. Причина: добавил картинку
|
Время создания страницы: 0.452 секунд