Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Начальная загрузка PEF22622
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISDN/G.703/E1
Kazap
Доброго всем времени суток
Не поделится ли кто алгоритмом или ссылкой загрузки firmware- по тому, что дал infineon разобраться не смог.
Волощенко
Привет!
Какая схема загрузки и какой используется вспомогательный микроконтроллер?
Какие есть загрузочные файлы и какая используется документация (наименование и дата)?
Есть ли соглашение с Infineon о неразглашении?
PEF22622 работает хорошо, только описание на него немного необычное...
Kazap
Цитата(Волощенко @ Aug 17 2006, 12:59) *
Привет!
Какая схема загрузки и какой используется вспомогательный микроконтроллер?
Какие есть загрузочные файлы и какая используется документация (наименование и дата)?
Есть ли соглашение с Infineon о неразглашении?
PEF22622 работает хорошо, только описание на него немного необычное...

Спасибо за ответ
Да соглашение NDA со Шмелевым делали
работаю по документам:
-socrates_ds1_v14datasheet.pdf-Data Sheet, DS 1, Jan. 2002
-SOC_uC_interface_load .pdf-Application Note, DS 1, July 2001
Контроллер Аt89s8253
Вот как раз в "необычности" и проблема- алгоритм загрузки и что-то типа программы, которые они дают в appNote не сходятся- не понятно -чем проверять, съел он блок или нет, что каждый раз писать в MODE_E. B и еще куча вопросов

Если есть инфа, которой можете поделиться,вышлите на anmur@rambler.ru
Волощенко
Та документация, что перечислена, достаточна для работы.
Видимо, немецкий инженер описывал ее на английском языке, поэтому написано мало.
У меня используется Atmega128, работаю с двумя PEF22622 (так как проект для регенератора), программа написана в С в среде ICCAVR от IAR. Алгоритм загрузки соответствует следующему:

/* 1. Set MODE_E to 80 to signal slave mpu that we want to do a memory download
1a.check STAT_E to see that HDLC is not busy
2. if not busy reset fifos via CMD_E
3. Send BYTE count in XBC_E - 2 address bytes + code data bytes
4. Put MSByte and LSByte of Slave Ram Address in the fifo XFIFO_E
5. Put 64 bytes of code data into fifo XFIFO_E
6. See if slave MPU is ready for another download via ISTA_E.1 bit
7. Download in blocks of 64 or less until finished loading the slave ram.
8. Make sure BYTE Cnt is correct for each block via XBC_E
9. Set BYTE Cnt to 2 but transmit only one byte to recognize next MODE_E
9. Signal slave mpu to send back calculated checksum via MODE_E = 0x80
10.wait till slave mpu signals that the fifo (XFIFO_E) contains the
checksum via STAT_E
11.comapre this checksum vs. the checksum in codetabl.h
12.when finished switch the slave mpu back to HDLC mode via MODE_E=0
*/

Для начала нужны функции записи/считывания байт в PEF22622 c учетом используемого Аt89s8253 и Вашей схемы, а затем сама функция загрузки (ниже мои прототипы):
void WR(byte Adr, byte Date);
byte RD(byte Adr);
byte FirmWare_Download_PEF22622(byte __farflash *pCode, word length);

Они у Вас уже написаны?
Вы должны считывать отдельные байты из PEF22622 еще до загрузки Firmware, это позволит проверить интерфейс между Аt89s8253 и PEF22622.
Какой файл используете для Firmware?
Kazap
Цитата(Волощенко @ Aug 18 2006, 11:33) *
Та документация, что перечислена, достаточна для работы.
Видимо, немецкий инженер описывал ее на английском языке, поэтому написано мало.
У меня используется Atmega128, работаю с двумя PEF22622 (так как проект для регенератора), программа написана в С в среде ICCAVR от IAR. Алгоритм загрузки соответствует следующему:

/* 1. Set MODE_E to 80 to signal slave mpu that we want to do a memory download
1a.check STAT_E to see that HDLC is not busy
2. if not busy reset fifos via CMD_E
3. Send BYTE count in XBC_E - 2 address bytes + code data bytes
4. Put MSByte and LSByte of Slave Ram Address in the fifo XFIFO_E
5. Put 64 bytes of code data into fifo XFIFO_E
6. See if slave MPU is ready for another download via ISTA_E.1 bit
7. Download in blocks of 64 or less until finished loading the slave ram.
8. Make sure BYTE Cnt is correct for each block via XBC_E
9. Set BYTE Cnt to 2 but transmit only one byte to recognize next MODE_E
9. Signal slave mpu to send back calculated checksum via MODE_E = 0x80
10.wait till slave mpu signals that the fifo (XFIFO_E) contains the
checksum via STAT_E
11.comapre this checksum vs. the checksum in codetabl.h
12.when finished switch the slave mpu back to HDLC mode via MODE_E=0
*/

Для начала нужны функции записи/считывания байт в PEF22622 c учетом используемого Аt89s8253 и Вашей схемы, а затем сама функция загрузки (ниже мои прототипы):
void WR(byte Adr, byte Date);
byte RD(byte Adr);
byte FirmWare_Download_PEF22622(byte __farflash *pCode, word length);

Они у Вас уже написаны?
Вы должны считывать отдельные байты из PEF22622 еще до загрузки Firmware, это позволит проверить интерфейс между Аt89s8253 и PEF22622.
Какой файл используете для Firmware?



Более -менее подразобрались. Файлы RT16_14.bin, , co16_14.bin. Socrates -14 После загрузки firmware- register fwvers дает 96н(это число вызывает сомнения), а romvers-12н(похоже на истину). Не знаете взаимосвязь между содержимым fwvers и версией FW? И еще вопрос- вы CL грузите или без него обходитесь-я так понял, возможно без него
Волощенко
Файлы и коды правильные.
Последовательность вхожения в работу у меня такая:
1. Reset PEF22622
2. Firmware Download
3. Capability List Download
4. Program RESTART
5. Wait for INITIALIZATION
6. IF Initial then PREACT or TRAIN
7. Init EOC
На Ваш адрес "rambler.ru" выслана помощь.
Волощенко
Еще одна картинка внутренних регистров в приложении (это по поводу кодов)
Kazap
Цитата(Волощенко @ Aug 18 2006, 16:34) *
Еще одна картинка внутренних регистров в приложении (это по поводу кодов)

Большое спасибо за помощь- более-менее с начальной загрузкой разобрались . Начинаем линковать
Kazap
Слинковался нормально, спасибо за помощь. Есть пара проблем-Если пересбросить в режиме линка один из Socrates, то линк уже не восстанавливается- нужно обязательно дать reset одновременно на оба в пределеах +- 1 сек. Используем режимTrain.
И второе -не удается принять Байты через HDLC-E. (так как HDLC BZ имеет ошибки, не хотим его использовать) Передача проходит как положено- а на приеме флаг готовности RPF_E не выставляется
Волощенко
Ваша программа что-то портит или Вы, возможно, еще не разобрались в работе с PEF22622 и не верно задаете настройки. Все заявленное в описании PEF22622 должно нормально работать.
Советую через управляющий микроконтроллер и RS-232 вывести для анализа трассу состояний PEF22622 и работать далее в режиме G.hs.
В приложении возможный вариант сервисной программы при снятии реальной трассы состояний.
Kazap
Насчет заявленного infineon- у меня есть errata, в которой говорится о проблемах с hdlc_bz, если
нужно могу выслать
Волощенко
Я использовал Errata Sheet DS 7, 2002-02-05. В частности, исправлял свою схему для соответствия Figure 2. Если есть что-то новое, то это будет интересно.
Uree
А можно Errata Sheet DS 7 выложить здесь? Или сбросить мне на мыло? А то у меня почему-то только 6-я... Может именно из-за этого половина чипов и не живетsad.gif Тем более если там изменения в схеме...
Волощенко
Выложил - Errata Sheet DS 7, да простит меня NDA....
Uree
СПАСИБО!!! Думаю проститsmile.gif Вообще у наших программистов есть соглашение, только они все прячут. И ерраты в том числе...
Skorp
Цитата(Волощенко @ Aug 18 2006, 14:34) *
Еще одна картинка внутренних регистров в приложении (это по поводу кодов)


Прошу прощения - я тут рассматривал приведенную картинку и не совсем понял ряд моментов:
1. регистр TRAN_CON_4 = 0x20 -> SSEST = 1 -> Сократ не в рабочем режиме, а в режиме игнорирования проблем;
2. RATE_CON_1 = 0x60 тогда как по описанию он не может быть более 0x24...
Это то что сразу попалось на глаза.
Если можно прокоментируйте. Спасибо.
Волощенко
Картинки может не самые лучшие, использовались при освоении PEF22622. Сейчас уже все "железно" работает и LTU, NTU, REG-C и REG-R.
По 1-му вопросу: SSEST = 1, это еще и для PSD Mesurement (p.68), видимо, так тогда и было.
По 2-му, там G.hs mode, и замеченно добавление "1" в 6-й разряд при считывании, т.е. RATE_CON_1 = 0x60, а это на самом деле там 32 тайм слота. Попробуйте считать RATE_CON_1 после завершения PREACT, у Вас эта единица тоже появится.
Skorp
А вот такой еще вопрос - а кто нибудь пробовал использовать Power Boost и какие это дает(не дает) реальные результаты?
Нужно ли для его установки что либо менять в CL кроме байтов 3 и 100?
@lex&er
Цитата(Skorp @ Sep 28 2006, 10:05) *
А вот такой еще вопрос - а кто нибудь пробовал использовать Power Boost и какие это дает(не дает) реальные результаты?
Нужно ли для его установки что либо менять в CL кроме байтов 3 и 100?


Я пытаюсь, но пока никак. Получаю состояние NOCOMMOD с кодом 04H= Clock Mode mismatch (Byte 81 or 90 of CL) Байты 81 и 90 содержат 4, что соответствует выбранной схеме синхронизации Clock 3a. В чем проблема, никак не могу понять? Может кто-нибудь из коллег подскажет?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.