реклама на сайте
подробности

 
 
> вопрос по инициализации Cirrus EP9307
merk0
сообщение Mar 3 2009, 12:12
Сообщение #1


Участник
*

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



Нужна помощь по инициализации этого процессора.
Я не очень знаком с архитектурой ARM, но есть задача, в которой к данному процу подключены две флешки (Intel J3), для организации 32 разрядной флеш-памяти.
У меня есть исходники инициализации от платы EDB9315, но там стоит одна 16-рязрядная флешка.
в исходниках есть код для чтения 32 разрядной флешки(это определяется по 7 биту в регистре SysCfg 0x8093009C) куда бит ставится кодом начального загрузчика(он там проверяет куда память подключена, и обнаружив ее, в 32 режиме, ставит этот бит).
функция чтения флешки(ее кода производителя и типа девайса), проверяет этот бит и работает с флешкой либо 32 рязрядныи способом, либо 16-ти.
Читаю при это я довольно странные данные. Тип девайса вроде верный - 18H, но тип флешки - 89H(Intel), тогда как производитель - Micron(должно быть вроде 2сH).
Также похоже есть проблема с реальной шириной шины для этой пары флешек. Она похоже 16 разрядная(есть предположение).
Вопрос тут такой.
Нужно ли каким-то образом задавать при инициализации проца ширину шины для флешки(она сидит на CS6), или она (как видно по коду, что я имею) просто определяется по, фактически, ширине шины SDRAM???(чип селект 0).
Сразу предупреждаю, что схему разрабатывал не я, я не электронщик, а скорее программист.
и память и флешка по базовому адресу 0x60000000 отмаплены на их-же физ адреса, насколько я понимаю этот арм.

Короче - кто знает как правильно к EP9307 прикрутить 2 флешки, получить 32 битную флешку таким образом и что нужно делать при инициализации если такай 32 разрядная "флеша" стоит?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
merk0
сообщение Mar 17 2009, 23:13
Сообщение #2


Участник
*

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



там висит DS1339U - часы. но также i2с выходит на разьемы, куда будут вставленые всякие умные устройства...
так что напрягаться нужно по полной, протокол должен быть реализован по стандарту.
я вроде его реализовал, но эти часики читаться не хотят(адрес устройства брал из даташита-он верный).
пока я проверяю просто на послдеовательности вида

int ext_rtc_ping()
{
int lb;
i2c_start(); //Start Trasfer
lb=i2c_write (( DS1399_addr<<1) | 1); //Read Data
i2c_stop();
return (lb);
}

функция i2c_write, возвращает акноледж на байт, от слейва(то есть часов). должен быть нуль. возвращает единицу... то есть впечатление такое, что часов просто нет. поскольк они своим ключом должны занулить напрядение на data линии, на девятом клоке, генерируемом мастером.
может опять непропай какой-то...

Сообщение отредактировал merk0 - Mar 17 2009, 23:18
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 17 2009, 23:20
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(merk0 @ Mar 18 2009, 02:13) *
так что напрягаться нужно по полной, протокол должен быть реализован по стандарту.

Ну, совсем по стандарту вряд ли возможно сделать просто на GPIO. Мастер-то хоть один будет?

Можете проверить на этом. Не соответствует спецификации, зато точно работает.
CODE

//******************************************************************************

__inline void i2c_force_scl(void)
{
PGDR &= ~SCL;
}

__inline void i2c_release_scl(void)
{
PGDR |= SCL;
}

__inline void i2c_force_sda(void)
{
PGDR &= ~SDA;
PGDDR |= SDA;
}

__inline void i2c_release_sda(void)
{
PGDDR &= ~SDA;
}

__inline u_int i2c_read_sda(void)
{
return (PGDR & SDA);
}

//******************************************************************************

int i2c_ini(void)
{
// HW
EEDrive = 0x00;
PGDR &= ~SDA;
PGDR |= SCL;
PGDDR &= ~SDA;
PGDDR |= SCL;

return 0;
}

u_int i2c_write_byte(u_int data)
{
u_int a;

for(a = 0; a < 8; a++)
{
i2c_force_scl();
i2c_qp_dly();
data <<= 1;
if(data & (1 << 8)) i2c_release_sda();
else i2c_force_sda();
i2c_qp_dly();
i2c_release_scl();
i2c_hp_dly();
}

i2c_force_scl();
i2c_qp_dly();
i2c_release_sda();
i2c_qp_dly();
i2c_release_scl();
i2c_hp_dly();
if(i2c_read_sda()) return 1;
else return 0;
}

u_int i2c_read_byte(u_int ack)
{
u_int a, data;

data = 0;
for(a = 0; a < 8; a++)
{
i2c_force_scl();
i2c_qp_dly();
i2c_release_sda();
i2c_qp_dly();
i2c_release_scl();
i2c_hp_dly();

data <<= 1;
if(i2c_read_sda()) data |= 1;
}
i2c_force_scl();
i2c_qp_dly();
if(!ack) i2c_force_sda();
else i2c_release_sda();
i2c_qp_dly();
i2c_release_scl();
i2c_hp_dly();

return data;
}

void i2c_start(void)
{
i2c_force_scl();
i2c_qp_dly();
i2c_release_sda();
i2c_qp_dly();
i2c_release_scl();
i2c_qp_dly();

i2c_force_sda();
i2c_hp_dly();
}

void i2c_stop(void)
{
i2c_force_scl();
i2c_qp_dly();
i2c_force_sda();
i2c_qp_dly();
i2c_release_scl();
i2c_qp_dly();
i2c_release_sda();
i2c_qp_dly();
}

void i2c_qp_dly(void)
{
u_int a = 0x80;
while(--a) __asm{nop};
}

void i2c_hp_dly(void)
{
u_int a = 0x100;
while(--a) __asm{nop};
}

//******************************************************************************
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- merk0   вопрос по инициализации Cirrus EP9307   Mar 3 2009, 12:12
- - aaarrr   Для нормальной работы 32-бит шины нужно соответств...   Mar 3 2009, 13:19
|- - merk0   Цитата(aaarrr @ Mar 3 2009, 16:19) Для но...   Mar 3 2009, 13:55
|- - aaarrr   Цитата(merk0 @ Mar 3 2009, 16:55) какой в...   Mar 3 2009, 14:07
- - AlexN   Цитата(merk0 @ Mar 3 2009, 18:12) Читаю п...   Mar 3 2009, 15:08
- - aaarrr   У них есть оба варианта. У микросхем с микроновск...   Mar 3 2009, 15:17
- - merk0   Огромное спасибо. Буду еще вопросы задавать.   Mar 4 2009, 07:16
|- - AlexN   Цитата(merk0 @ Mar 4 2009, 13:16) Огромно...   Mar 4 2009, 11:00
|- - HardJoker   Цитата(AlexN @ Mar 4 2009, 14:00) если не...   Mar 4 2009, 11:03
- - merk0   скорее всего они поставили и впрямь для увеличения...   Mar 4 2009, 12:59
|- - aaarrr   Цитата(merk0 @ Mar 4 2009, 15:59) finfo-...   Mar 4 2009, 13:10
- - merk0   ЦитатаНе самый надежный вариант. А если один из от...   Mar 4 2009, 14:07
|- - aaarrr   Цитата(merk0 @ Mar 4 2009, 17:07) имеете ...   Mar 4 2009, 14:11
- - merk0   еще тупой вопросик. читаю вот rtc, нужно ли запрещ...   Mar 4 2009, 16:54
- - aaarrr   А смысл запрещать? Регистр-то один.   Mar 4 2009, 17:17
- - merk0   ЦитатаА смысл запрещать? Регистр-то один. ну напри...   Mar 4 2009, 17:27
|- - aaarrr   Цитата(merk0 @ Mar 4 2009, 20:27) если оп...   Mar 4 2009, 18:04
- - merk0   а в данном устройстве навороты не нужны. нужно при...   Mar 4 2009, 18:30
- - aaarrr   Ну, воля Ваша. Я бы скорее организовал программное...   Mar 4 2009, 21:03
- - merk0   вы лучше скажите, ...вот я слышал что в некоторых ...   Mar 5 2009, 07:27
- - aaarrr   Лишнее можно отключить в регистрах PwrCnt и Device...   Mar 5 2009, 08:25
- - merk0   отлично! еще вопрос в догонку... позвонил разр...   Mar 5 2009, 08:48
- - aaarrr   Правильно понимаете. У цирруса есть родная утилит...   Mar 5 2009, 08:56
- - merk0   ЦитатаУ цирруса есть родная утилита для загрузки ф...   Mar 5 2009, 09:40
- - aaarrr   Да, код у них - говно редкостное. Для себя написа...   Mar 5 2009, 11:07
- - merk0   я хотел загручик записать в eeprom флешку. пока пр...   Mar 5 2009, 12:10
- - merk0   вопрос - у меня какие-то баги...есть подозрение, ч...   Mar 7 2009, 08:24
- - merk0   вопрос с порядком команд снимается. это я пускал u...   Mar 7 2009, 11:35
- - aaarrr   SoftLock можно безопасно писать на C - порядок vol...   Mar 7 2009, 12:00
- - merk0   aaarrr, - а вы какую ос ставили на этот проц? - е...   Mar 9 2009, 09:54
- - aaarrr   Пробовал Линукс, сейчас использую FreeRTOS со свои...   Mar 9 2009, 13:46
- - merk0   вопрос. а есть какие-то особенности работы с порто...   Mar 10 2009, 09:02
- - aaarrr   У порта H каких-то особенностей нет. Ставите HonID...   Mar 10 2009, 13:09
- - merk0   а у ep9307 такого бита нет - HonIDE. у него нет I...   Mar 10 2009, 13:18
- - aaarrr   У него есть такой бит Т.е. интерфейса нет, а бит ...   Mar 10 2009, 13:21
- - merk0   поиск HonIDE по доке - ep9307 user guide ничего не...   Mar 10 2009, 13:40
|- - aaarrr   Цитата(merk0 @ Mar 10 2009, 16:40) вот ка...   Mar 10 2009, 13:51
- - merk0   у меня читаются стойкие нули из HDR. из регистра H...   Mar 10 2009, 14:17
- - merk0   вопрос по uart3. инициализировал я его, запустил. ...   Mar 11 2009, 13:17
|- - aaarrr   А если на UART3 подать сигнал с UART1 или компьюте...   Mar 11 2009, 14:07
- - merk0   ну уарт3 особо ничего не подашь. он наглухо развед...   Mar 11 2009, 14:16
- - aaarrr   Осциллографом посмотрите тогда. Внутренний loopbac...   Mar 11 2009, 14:26
- - merk0   проверял на 115200, молчок. видимо gps модуль силь...   Mar 11 2009, 14:43
- - merk0   посмотрел ноги gps модулю своим древним осциллогра...   Mar 12 2009, 09:54
- - merk0   вопрос. в железке для общения по i2c используются ...   Mar 17 2009, 08:42
|- - aaarrr   Цитата(merk0 @ Mar 17 2009, 11:42) не нуж...   Mar 17 2009, 10:07
- - merk0   ЦитатаУ меня почему-то используется EEDrive = 0. Н...   Mar 17 2009, 13:20
- - aaarrr   Вы меня не поняли. SDA у меня является открытым ко...   Mar 17 2009, 13:54
- - merk0   нашел какие-то мутные непонятки с этими пинами в с...   Mar 17 2009, 22:46
- - aaarrr   А что у Вас на I2C висит? Может, не стоит и напряг...   Mar 17 2009, 22:51
- - merk0   мастер сам проц. все остальные слейвы. если проток...   Mar 17 2009, 23:27
- - aaarrr   Так пройдитесь по всем адресам, если не уверены. И...   Mar 17 2009, 23:31
- - merk0   за код спасибо, щас посмотрю его глазами.. он для ...   Mar 17 2009, 23:32
- - aaarrr   Нет, открытый коллектор только на SDA. Работать до...   Mar 17 2009, 23:32
- - merk0   а у вас EEdrive = 0; то есть по даташиту - это не ...   Mar 17 2009, 23:49
- - aaarrr   Да, у меня сделана программная эмуляция open drain...   Mar 17 2009, 23:51
- - merk0   ЦитатаДа, у меня сделана программная эмуляция open...   Mar 18 2009, 00:01
|- - aaarrr   Цитата(merk0 @ Mar 18 2009, 03:01) А не о...   Mar 18 2009, 00:12
- - merk0   ЦитатаНа SDA никогда не выставляется единица - дра...   Mar 18 2009, 00:23
|- - aaarrr   Цитата(merk0 @ Mar 18 2009, 03:23) а попр...   Mar 18 2009, 00:30
- - merk0   ну ладно..отличается-не отличается...главное что у...   Mar 18 2009, 00:42
|- - aaarrr   Цитата(merk0 @ Mar 18 2009, 03:42) ну лад...   Mar 18 2009, 00:50
- - merk0   ЦитатаА мой код работает, или тоже нет? а я так ср...   Mar 18 2009, 08:59
- - merk0   !!!!!!!!!...   Mar 18 2009, 11:00
- - aaarrr   Да, кризис в действии. Сочувствую. Обращайтесь, ес...   Mar 18 2009, 11:58


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01441 секунд с 7
ELECTRONIX ©2004-2016