shambhala 0 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба Привет. Походу работы с GPIF столкнулся с рядом проблем. Первая это то, что уровень напряжения на шине данных (когда данные выставлены) где-то 2.4 В, что соответствует минимальному выдаваемому напряжению согласно даташиту. А на некоторых только 2 В, чего недостаточно. Процессор подключен по шине данных к этой микросхеме: http://www.holtic.com/products/2992-hi-3582a-hi-3583a.aspx. Вторая проблема, что не могу загрузить переменную WaveData[128], как только начинаю записывать процессор виснет. Можно записать только 63 байта. Сам GPIF интерфейс сгенерирован с помощью программки GPIF Designer. Подскажите в какую сторону копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Konst_777 0 11 сентября, 2013 Опубликовано 11 сентября, 2013 · Жалоба ...столкнулся с рядом проблем. Первая это то, что уровень напряжения на шине данных (когда данные выставлены) где-то 2.4 В,... А на некоторых только 2 В, чего недостаточно... Возможно, источник проблемы в подключении микросхемы HI-3582A/HI-3583A или разводке платы. Ну, или в сформированных временных диаграммах GPIF. ...Подскажите в какую сторону копать? Отключите выводы HI-3582A/HI-3583A от GPIF (~EN1=1, ~EN2=1, ~MR=0), посмотрите и попробуйте примеры: GPIF.rar из темы USB, EZ-USB FX2, Archive.rar из темы прием данных из АЦП в ПК по USB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shambhala 0 18 сентября, 2013 Опубликовано 18 сентября, 2013 · Жалоба С проблемой активного уровня разобрался. Просто одновременно происходила запись со стороны процессора и чтение со стороны микросхемы. Но вот вопрос с загрузкой переменной WaveData[128] остался актуальным. Исходный код могу скинуть, в чем может быть проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shambhala 0 19 сентября, 2013 Опубликовано 19 сентября, 2013 (изменено) · Жалоба Может это быть связано с компилятором? Я использую sdcc. Еще такое предположение, что записываются данные во внутреннюю память, а она только 256 байт. Как то можно "перенаправить" в external RAM, или может это настраивается как? Изменено 19 сентября, 2013 пользователем shambhala Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shambhala 0 23 сентября, 2013 Опубликовано 23 сентября, 2013 · Жалоба Вообщем проблема решена. Было допущены две ключевые ошибки. Первая это то, что в компиляторе нужно разделить области программной памяти и памяти переменных. В этом контроллере они по-умолчанию имеют одинаковые адреса. Вторая - это косяк с переменной Wavedate[128], в даташите как и GPIF Designer она называется именно так. Но в стандартном .h файле (fx2regs.h) она объявлена как EXTERN xdata _AT_(0xE400) volatile BYTE GPIF_WAVE_DATA ; где правильно указан начальный адрес необходимый для этой переменной (0xE400). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться