Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CY7C68013A GPIF неисправная работа
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
shambhala
Привет.

Походу работы с GPIF столкнулся с рядом проблем. Первая это то, что уровень напряжения на шине данных (когда данные выставлены) где-то 2.4 В, что соответствует минимальному выдаваемому напряжению согласно даташиту. А на некоторых только 2 В, чего недостаточно. Процессор подключен по шине данных к этой микросхеме: http://www.holtic.com/products/2992-hi-3582a-hi-3583a.aspx.
Вторая проблема, что не могу загрузить переменную WaveData[128], как только начинаю записывать процессор виснет. Можно записать только 63 байта. Сам GPIF интерфейс сгенерирован с помощью программки GPIF Designer.
Подскажите в какую сторону копать?
Konst_777
Цитата(shambhala @ Sep 11 2013, 16:16) *
...столкнулся с рядом проблем. Первая это то, что уровень напряжения на шине данных (когда данные выставлены) где-то 2.4 В,... А на некоторых только 2 В, чего недостаточно...

Возможно, источник проблемы в подключении микросхемы HI-3582A/HI-3583A или разводке платы. Ну, или в сформированных временных диаграммах GPIF.

Цитата(shambhala @ Sep 11 2013, 16:16) *
...Подскажите в какую сторону копать?

Отключите выводы HI-3582A/HI-3583A от GPIF (~EN1=1, ~EN2=1, ~MR=0), посмотрите и попробуйте примеры:
GPIF.rar из темы USB, EZ-USB FX2,
Archive.rar из темы прием данных из АЦП в ПК по USB.
shambhala
С проблемой активного уровня разобрался. Просто одновременно происходила запись со стороны процессора и чтение со стороны микросхемы. Но вот вопрос с загрузкой переменной WaveData[128] остался актуальным. Исходный код могу скинуть, в чем может быть проблема?
shambhala
Может это быть связано с компилятором? Я использую sdcc. Еще такое предположение, что записываются данные во внутреннюю память, а она только 256 байт. Как то можно "перенаправить" в external RAM, или может это настраивается как?
shambhala
Вообщем проблема решена. Было допущены две ключевые ошибки. Первая это то, что в компиляторе нужно разделить области программной памяти и памяти переменных. В этом контроллере они по-умолчанию имеют одинаковые адреса. Вторая - это косяк с переменной Wavedate[128], в даташите как и GPIF Designer она называется именно так. Но в стандартном .h файле (fx2regs.h) она объявлена как EXTERN xdata _AT_(0xE400) volatile BYTE GPIF_WAVE_DATA ; где правильно указан начальный адрес необходимый для этой переменной (0xE400).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.