|
|
  |
Назначение выводов EPM7128s |
|
|
|
Jan 8 2010, 22:55
|
Группа: Участник
Сообщений: 3
Регистрация: 3-06-09
Пользователь №: 49 912

|
Доброго времени суток! Осваиваю EPM7128SLC84-10N. Имею самодельную платку с установленной ПЛИС. К ПЛИС подведено питание 5В и JTAG. Создал простейший проект в Quartus: 83-й (GCLK1) вывод ПЛИС через инвертор завел на 6-й вывод. Зашил проект в ПЛИС самодельным ByteBlasterMV без проблем. Физически 83-й вывод ПЛИС подключил к выходу микроконтроллера (INT0 на ADuC812). На МК работает программка, которая поочередно, с некоторой задержкой выставляет 0 и 1 на выводе INT0. Ожидаемый результат: когда на INT0 - 1, на 6-м выводе ПЛИС - 0, и наоборот. Результат не подтвердился Выводы ПЛИС - OE1, OE2, GCLRn пробовал физически соединять и с GND, и с VCC, и просто в воздухе оставлял. Наверняка делаю что-то не так, как надо. Люди тут грамотные, может кто-нибудь просветит, зачем нужны эти выводы и как их использовать?
|
|
|
|
|
Jan 9 2010, 10:00
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 14-10-09
Пользователь №: 52 943

|
Уважаемый Elserpinum. Причин не работоспособности проекта, запускаемого не знающим человеком, может много и природа их разнообразна. В первую очередь это банальные ошибки. У Вас есть рапорт файл, на котором должна быть схема подключения. Необходимо тупо всё подключить, как там. Выводов питания и земли там несколько (по-моему не менее 4 пар). Вы создали простейший проект - инвертор. Но зачем Вы на вход комбинационного устройства подаёте сигнал через глобальный CLK? На сколько я помню у архитектуры MAX нет такой возможности - вывести глобальный CLK на внешний вывод, к тому же пропущенный через комбинациоонную часть ячейки. Сигнал этот предназначен только для тактирования триггеров и поступает он на вход С через внутренний мультиплексор (триггер ещё может тактироваться от выхода комбинационного блока). Внимательно посмотрите рапорт-файл, наверняка Вам было выдано предупреждение, а может быть компилятор и сам принудительно перенёс этот сигнал на другой вывод. Что бы ничего не перепаивать сделайте лучше простой делитель на 2, т.е. T - триггер. Вход его (в смысле вход С) подключите на 83, а выход триггера на 6. Посмотрите, какой тип выхода. Надо что бы не "открытый сток", а то придётся резистор подтягивающий вешать. Выводы ПЛИС - OE1, OE2, GCLRn - это глобальные сигналы разрешения (OE - output enable) и сброса (clear). Глобальные сигналы нельзя мешать с обычными переменными - т.е. если сигналы сброса и ОЕ участвуют в каких то термах (уравнениях, функциях), то их уже нельзя подавать на глобальные входы. Потому как глобальные сигналы не проходят через комбинационные блоки. Если хотите инвертор, то уберите все глобальные сигналы вообще, посмотрите куда будет заведён вход, туда и подавайте. Только зачем Вам для этого целый ADuM? К тому же используете вход прерываний для такой тривиальной задачи. Вы видите осциллографом эти импульсы, т.е. вы уверены, что правильно запрограммировали МК? Я бы вход инвертора подключил к "1", а потом тупо коротнул бы пинцетом в землю. А дальше, если инвертор "оживёт", тогда сделайте из Т2 генератор импульсов, а в ПЛИС счётчик. И в счётчике уже, Вы можете задействовать все глобальные сигналы - GCLK, OE, GCLRn. Удачи.
|
|
|
|
|
Jan 9 2010, 17:47
|
Группа: Участник
Сообщений: 3
Регистрация: 3-06-09
Пользователь №: 49 912

|
Цитата(at89c51ed2 @ Jan 9 2010, 13:00)  Уважаемый Elserpinum. Причин не работоспособности проекта, запускаемого не знающим человеком, может много и природа их разнообразна. В первую очередь это банальные ошибки. У Вас есть рапорт файл, на котором должна быть схема подключения. Необходимо тупо всё подключить, как там. Выводов питания и земли там несколько (по-моему не менее 4 пар). Вы создали простейший проект - инвертор. Но зачем Вы на вход комбинационного устройства подаёте сигнал через глобальный CLK? На сколько я помню у архитектуры MAX нет такой возможности - вывести глобальный CLK на внешний вывод, к тому же пропущенный через комбинациоонную часть ячейки. Сигнал этот предназначен только для тактирования триггеров и поступает он на вход С через внутренний мультиплексор (триггер ещё может тактироваться от выхода комбинационного блока). Внимательно посмотрите рапорт-файл, наверняка Вам было выдано предупреждение, а может быть компилятор и сам принудительно перенёс этот сигнал на другой вывод. Что бы ничего не перепаивать сделайте лучше простой делитель на 2, т.е. T - триггер. Вход его (в смысле вход С) подключите на 83, а выход триггера на 6. Посмотрите, какой тип выхода. Надо что бы не "открытый сток", а то придётся резистор подтягивающий вешать. Выводы ПЛИС - OE1, OE2, GCLRn - это глобальные сигналы разрешения (OE - output enable) и сброса (clear). Глобальные сигналы нельзя мешать с обычными переменными - т.е. если сигналы сброса и ОЕ участвуют в каких то термах (уравнениях, функциях), то их уже нельзя подавать на глобальные входы. Потому как глобальные сигналы не проходят через комбинационные блоки. Если хотите инвертор, то уберите все глобальные сигналы вообще, посмотрите куда будет заведён вход, туда и подавайте. Только зачем Вам для этого целый ADuM? К тому же используете вход прерываний для такой тривиальной задачи. Вы видите осциллографом эти импульсы, т.е. вы уверены, что правильно запрограммировали МК? Я бы вход инвертора подключил к "1", а потом тупо коротнул бы пинцетом в землю. А дальше, если инвертор "оживёт", тогда сделайте из Т2 генератор импульсов, а в ПЛИС счётчик. И в счётчике уже, Вы можете задействовать все глобальные сигналы - GCLK, OE, GCLRn. Удачи. Спасибо за советы Переделал проект в Quartus. Завел 4-й вывод на инвертор, выход с инвертора на 5-й вывод. Перепрошил. Вроде заработало, но меня смущают уровни сигналов на выходе: 1 - 3,5В. Кстати, не понял, что за "рапорт файл, на котором должна быть схема подключения" и где выставлять тип выхода?
|
|
|
|
|
Jan 9 2010, 22:38
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 14-10-09
Пользователь №: 52 943

|
Уважаемый Elserpinum. Не понятно, почему у Вас уровень лог. 0 около 1 В. А Вы уверены, что подключили все сигналы VCCINT и VCCIO? Что касается 3,5В. Похоже предыдущий оратор прав (далее цитата из datasheet): --------------------------------------------------------------------- When VCCIO is 5.0 V, setting the output drain option is not necessary because the pull-up transistor will already turn off when the pin exceeds approximately 3.8 V, allowing the external pull-up resistor to pull the output high enough to meet 5.0-V CMOS input voltages. -------------------------------------- Плохо знаком с басурманским, но насколько я понял это, резистор ставить не обязательно и последующее у-во "поймёт" этот уровень 3,8В как единичный. Но, ради чистоты эксперимента и что бы освоить КАКТУС, установите тип выхода "Open Drain" и резистор подтягивающий (надеюсь, как поставить и номинал не надо указывать). Вот где и что искать в КАКТУСе подсказать Вам не смогу, потому как мои познания остановились на MAX 10.2. Точно могу Вам сказать, что у меня EPM3064 работает при VCCINT=VCCIO=3,3V вместе с AT89C51, последний под 5V. А "Open Drain" здесь нужен для обеспечения работы нескольких устройств на шине, некий аналог Z-состояния.
|
|
|
|
|
Jan 10 2010, 16:15
|
Группа: Участник
Сообщений: 3
Регистрация: 3-06-09
Пользователь №: 49 912

|
Всем спасибо за разъяснения В принципе, для последующих после ПЛИС микросхем хватит и 3,5 В. Буду воевать с этой штуковиной дальше
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|