|
|
  |
вопрос по инициализации Cirrus EP9307 |
|
|
|
Mar 10 2009, 09:02
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
вопрос. а есть какие-то особенности работы с портом HGPIO, конкретно - пятый бит. У нас на железке это сигнал разрашения некоего напаянного устройства, что должно зажигать на себе светодиодики.пишу в HGPIO[5](сконфигурировав как выход) единицу-ничего не происходит(разрешение устройства по единице). Читаю бит порта обратно - единица стоит. или с железкой проблема...или я что-то с этим портом неверно сконфигурировал. я просто конфигурировал его как пин-выход, и прописал туда 1.
|
|
|
|
|
Mar 10 2009, 13:18
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
а у ep9307 такого бита нет - HonIDE. у него нет IDE интерфейса.
|
|
|
|
|
Mar 10 2009, 13:40
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
поиск HonIDE по доке - ep9307 user guide ничего не дает. визуальный осмотр битов регистра DeviceCfg - тоже ничего не дает. там правда есть три неназванных бита, b11, b10, что должны быть установлены в 1, и b5 в нуль. один из них я есть искомый бит? Цитата Т.е. интерфейса нет, а бит (11 бит DeviceCfg) есть, и он работает. сильный ход со стороны разработчиков! вот поди пойми, что это связано с H портом.  а чтение пинов сконфигурированных на вывод дает варианты 1.всегда нуль 2.всегда соотвествует записанному в пин 3.соответсвует реальному напряжению на ноге порта. вот какой? я взвел эти биты в DeviceCfg несколько пинов в H сконфигурированы как выход пишу в H порт 0xFF, читаю обратно - имею нуль.
|
|
|
|
|
Mar 10 2009, 13:51
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(merk0 @ Mar 10 2009, 16:40)  вот какой? Третий: Цитата Reading a data register returns the value on the corresponding GPIO pins. Правда, выходы никогда не читал.
|
|
|
|
|
Mar 10 2009, 14:17
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
у меня читаются стойкие нули из HDR. из регистра HDDR(направления) читается верно - те биты что аутпуты - там единицы. щас буду читать DeviceCfg, что там стоит...
ураа! заработало! короче была бага у меня, была нарисована макра установки бита по некоторому адресу. а я ею временами неверно пользовался, типа ставил биты в локальном слове. а потом это слово выводил в регистры проца. вообщем она ставила биты не в слове, а адресу в слове, рассматривая его как поинтер. то есть конфиги были частично неверны.
|
|
|
|
|
Mar 11 2009, 13:17
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
вопрос по uart3. инициализировал я его, запустил. на loopback он работает, то есть читает сам себя- я просто пишу а uart3 символы, потом читаю их, и вывожу через uart1(этот работает правильно) на консольную прогу в писюк. но читать устройство, по схеме присоединенное к ногам его, он не хочет. это устройство активно, мигает свтодиодиками, по паспорту должно стоять по умолчанию либо в 4800, либо в 9600, 8 бит символ, один стоп-бит, без четности. уарт3 так и выставлен(пробовал обе скорости). не читает. варианты - проблемы хардверные - с самим устройством(это gps модуль - может в него нужно сначала команды какие-то посылать? но разработчик божится, что оно должно на 9600 сразу стоять, и гнать данные в своем протоколе), с разводкой присоединения его к пинам уарт3...
или что-то софтверное, то есть у меня. могут ли быть какие-то подводные камни в инициализации этого порта, если он таки на loopback себя читает?
|
|
|
|
|
Mar 11 2009, 14:16
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
ну уарт3 особо ничего не подашь. он наглухо разведен на gps-приемник. если только на ноги самого приемника проводки крутить. но я дома работаю, да и плата мелкая. испорчу. пока ковыряю протокол приемника, может он просто не хочет отвечать, пока ему что-нить не скажут?
|
|
|
|
|
Mar 11 2009, 14:43
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
проверял на 115200, молчок. видимо gps модуль сильно умный. джет какой-нить команды в себя. пытаюсь запустить ему команду инициализации
|
|
|
|
|
Mar 12 2009, 09:54
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
посмотрел ноги gps модулю своим древним осциллографом. ничего он по нулевому своему порту не шлет, а все время шлет по первому(их в модуле - два). а я читаю его нулевой в свой третий. то есть железячники меня обманули.  ... заработало! после посылки команды инициализации в приемник, порт заговорил. эффект присутствия осциллографа. оказывается порт приемника выставляется в 4800, но молчит, если туда не записать команду. все оказалось хуже. на приемнике еще и непропай. он правильно работает, если его еше и пальцем к плате прижимать  ..это столько я бился с этим портом!!!
|
|
|
|
|
Mar 17 2009, 08:42
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
вопрос. в железке для общения по i2c используются пины EECLK и EEDAT проца. эти пины вроде есть пины G[0], G[1]. дабы настроить пины в инициализации i2c драйвера я делаю следующее PGDDR |=3 //ставим два младших бита в регистре направения G как выходы EEDRIVE |=3 //ставми эти же биты в регистре драйверов EECLK и EEDAT. они д.б. с открытым стоком. далее просто пишем и читаем(не переводя G[0]G[1] как входы) биты G[0],G[1] в программной реализации i2c. не нужны ли еще какие-то танцы с бубнами в данном случае?
кстати правильно ли я понимаю, что в случае если порт стоит как "открытый сток", запись единицы - размыкает выходной ключ, и напряжение тянется вверх резистором. а если записать нуль - ключ замыкается - и напряжение падает в нуль?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|