Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: HDLC в STR71x
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Muxamor
Как заявляет производитель у него на камнях STR71x реализован HDLC.
На самом деле HDLC там с ошибками аппаратного уровня то есть на самом камне sad.gif.
В спецификации на HDLC тоже ошибки. Поддержку по нему они не осуществляют.
Сам ST рекомендует HDLC на STR71x не использовать. Вся информация от самого ST.

Блин надо же было так пролететь закладывал его только из за HDLC.
Ronin
хмм. однако...
соболезную вашей потере sad.gif

хорошо что мне там hdlc не нужен будет.
Ledol
Цитата(Muxamor @ Jun 19 2006, 15:01) *
Как заявляет производитель у него на камнях STR71x реализован HDLC.
На самом деле HDLC там с ошибками аппаратного уровня то есть на самом камне sad.gif.
В спецификации на HDLC тоже ошибки. Поддержку по нему они не осуществляют.
Сам ST рекомендует HDLC на STR71x не использовать. Вся информация от самого ST.

Блин надо же было так пролететь закладывал его только из за HDLC.


А из какого док-а информация?
Не так давно скачивал с их сайта дополнение к стандартным библиотекам STR71x, которое собственно из hdlc.c, hdlc.h, hdlc.pdf и состояло. Ни слова об отказе от заявленных фич небыло. Откуда шум?
Muxamor
НУ сейчас доки удалены и больше выкладываться не будут !
А вся информация от самого сапорта ST!
В следующих релизах док HDLC вообще уберут!
Вообщем то весь сыр бор начался из-за того что я тоже хотел скачать эти доки. Но когда не обнаружил их на сайте связался с сапортом и они вот такое выдали.
Ledol
Цитата(Muxamor @ Jun 21 2006, 10:01) *
НУ сейчас доки удалены и больше выкладываться не будут !
А вся информация от самого сапорта ST!
В следующих релизах док HDLC вообще уберут!
Вообщем то весь сыр бор начался из-за того что я тоже хотел скачать эти доки. Но когда не обнаружил их на сайте связался с сапортом и они вот такое выдали.



Ранее скачанный Add-он по HDLC прикладываю. Замену STR подыскали уже? Может посоветуете чего? ohmy.gif
Muxamor
ДА менять уже поздно! Это практически начинать проект с нуля !
Пока самое оптимальное решение которое видится это реализовывать HDLC программно!
Ну еще думаю проиграться все-таки с исходниками от ST!
Ledol
Цитата(Muxamor @ Jun 22 2006, 09:27) *
ДА менять уже поздно! Это практически начинать проект с нуля !
Пока самое оптимальное решение которое видится это реализовывать HDLC программно!
Ну еще думаю проиграться все-таки с исходниками от ST!


Буквально сегодня пробовал их HDLC example1 и 2. 2-й (с внешней частотой) не заработал (данные явно не цепляются за внешнюю ч-у). 1-й (на internal clk) выдает данные нормально. Но остался вопрос по CRC16. Выдает он ее MSB or LSB first? В доках ответа не нашел. Знаете может?
Muxamor
1 тест мало интресен так как не синхронный HDLC уже наврно и не импользуится.
2 тест запустил такаяже фигня была с частотой! Пернастроил делители вроди стал нармально!
Впринципе данные отправил и получил по петле ! Как удалось выяснить походы у них перпутаны биты REN и TEN местами! так как при отправке сбрасывает бит REN. И не хочет получать пока не установить бит TEN в единицу!
По CRC ничего сказть не могу !
Ledol
Цитата(Muxamor @ Jun 23 2006, 09:52) *
1 тест мало интресен так как не синхронный HDLC уже наврно и не импользуится.
2 тест запустил такаяже фигня была с частотой! Пернастроил делители вроди стал нармально!
Впринципе данные отправил и получил по петле ! Как удалось выяснить походы у них перпутаны биты REN и TEN местами! так как при отправке сбрасывает бит REN. И не хочет получать пока не установить бит TEN в единицу!
По CRC ничего сказть не могу !


Результат аналогичный. Только я PLL2 запретил ( HCLK проключил напрямую). С CRC беда. При передаче данных buf = {0,0,0,0,} по стандартному полиному CRC must be 0x0000. А там галиматья sad.gif . Хучь плачь.
Nikola Kirov
А резултат какой?

случайнно
0x1D0F или 0x84C0?
Ledol
Цитата(Nikola Kirov @ Jun 23 2006, 22:34) *
А резултат какой?

случайнно
0x1D0F или 0x84C0?


Точно подтвердить могу только в понедельник, но в принципе 0F вроде было . Есть какая то версия w00t.gif ???
Nikola Kirov
тут можно и прочест и скалкулироват

http://www.lammertbies.nl/comm/info/crc-calculation.html
Ledol
Цитата(Nikola Kirov @ Jun 24 2006, 09:42) *
тут можно и прочест и скалкулироват

http://www.lammertbies.nl/comm/info/crc-calculation.html


Почитал, понял, Вам a14.gif .
Muxamor
Цитата(Ledol @ Jun 23 2006, 18:09) *
Цитата(Muxamor @ Jun 23 2006, 09:52) *

1 тест мало интресен так как не синхронный HDLC уже наврно и не импользуится.
2 тест запустил такаяже фигня была с частотой! Пернастроил делители вроди стал нармально!
Впринципе данные отправил и получил по петле ! Как удалось выяснить походы у них перпутаны биты REN и TEN местами! так как при отправке сбрасывает бит REN. И не хочет получать пока не установить бит TEN в единицу!
По CRC ничего сказть не могу !


Результат аналогичный. Только я PLL2 запретил ( HCLK проключил напрямую). С CRC беда. При передаче данных buf = {0,0,0,0,} по стандартному полиному CRC must be 0x0000. А там галиматья sad.gif . Хучь плачь.



Вцелом вроди все стало нармально работать с петелей и бз петил !
Тоже заметили что биты местами перпутаны или нет ?
Про CRC сейчас посмотрю !!!
Ledol
Вцелом вроди все стало нармально работать с петелей и бз петил !
Тоже заметили что биты местами перпутаны или нет ?
Про CRC сейчас посмотрю !!!
[/quote]

Это они по ITU-T rec. I-403 сделали (как в LAPD) Данные идут LSB first, а CRC - MSB first. Все правильно. Полином используют CRCCCITT (базовая константа 0x1021, инициализация с 0xFFFF). Все работает правильно. "Вычислил" по приведенным выше ссылкам. Проверил на железе.
Muxamor
Цитата(Ledol @ Jun 26 2006, 15:25) *
Это они по ITU-T rec. I-403 сделали (как в LAPD) Данные идут LSB first, а CRC - MSB first. Все правильно. Полином используют CRCCCITT (базовая константа 0x1021, инициализация с 0xFFFF). Все работает правильно. "Вычислил" по приведенным выше ссылкам. Проверил на железе.


О гуд smile.gif а то я увяз с этим CRC!
Дак это тогда получаится что бит TCRCI должен стоять в '1' ?
Ledol
Цитата(Muxamor @ Jun 26 2006, 18:46) *
Цитата(Ledol @ Jun 26 2006, 15:25) *


Это они по ITU-T rec. I-403 сделали (как в LAPD) Данные идут LSB first, а CRC - MSB first. Все правильно. Полином используют CRCCCITT (базовая константа 0x1021, инициализация с 0xFFFF). Все работает правильно. "Вычислил" по приведенным выше ссылкам. Проверил на железе.


О гуд smile.gif а то я увяз с этим CRC!
Дак это тогда получаится что бит TCRCI должен стоять в '1' ?


Как раз таки нет! Когда он в нуле, все стандартно, (как выше писал). Чего происходит когда его уст. в 1 непонятно, но CRC меняется (не исключено, что они просто полярность бита перепутали, завтра проверю).
Забыл добавить, что CRC передается инверсно (соотв. ITU).
Muxamor
Кинте плиз ITU-T rec. I-403 или суда или можно на ящик: muxamor2000@mail.ru
Ledol
Цитата(Muxamor @ Jun 27 2006, 09:14) *
Кинте плиз ITU-T rec. I-403 или суда или можно на ящик: muxamor2000@mail.ru


Самой доки сейчас нет. Прикладываю файл с таблицей констант и ф-ей вычисления CRC.
Это оно и есть. Проверял по ней.
Ledol
Нажмите для просмотра прикрепленного файла Извините, не догнал
Muxamor
ОК спасибо!
С битом TCRCI не пробывали играться?
Ledol
Цитата(Muxamor @ Jun 27 2006, 17:31) *
ОК спасибо!
С битом TCRCI не пробывали играться?


Руки не дошли, все пытался получить ответ по шлейфу. Кроме Transmission Message Completed interrupt флага так ничего и не увидел.
Muxamor
НУ как получилось с той конструкцией?
НА новые багги не наткнулись ?
Я вот пока в HDLC больше ничего неприятного не нашел !
Ledol
Цитата(Muxamor @ Jun 28 2006, 09:42) *
НУ как получилось с той конструкцией?
НА новые багги не наткнулись ?
Я вот пока в HDLC больше ничего неприятного не нашел !


Да вроде все заработало. Сейчас отлаживаю работу HDLC по прерыванию.
Muxamor
НУ и отлично smile.gif можно сказть утоптался HDLC (три раза плюнул через левое плече и постучал по дереву)!

Подитожим :
ДЛя запуска HDLC тест 2 пернастрока делителей(или отключить PPL2)
Удлить вызов функций HDLC_Xmit_Control (можно совсем выкасить так как он бесполезные)
Настройкаи HDLC_Xmit_Frame :

HDLC->PCR= 0x0003;
HDLC_XmitFrameByteCountWrite(bytecount);
return 0;

Биты TEN и REN перпутаны (бит REN-пердача, Бит TEN- прием), подправить проверку в начале функции.

В конце функции HDLC_Recv_Frame добавить:

HDLC->PCR = (HDLC->PCR) | 0x0001;
return 0;



ПО CRC Ledol описал выше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.