|
Стабильность передачи по изернет. |
|
|
|
Aug 10 2015, 17:57
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
LPC2478, 12МГц. M = 17, N = 0. Есть простая программа, переработанный пример, по таймеру запускается АЦП, заполняется массив 512 двух байтовых слова и скидывается этот массив по изернет в компьютер. Библиотеку работы с изернет взял в инсталлированном Keil (TCP_ARM_L.lib). Когда частота оцифровки не большая, до 60 кГц программа работает стабильно, поднимаю частоту выше, до 100 кГц, начинаются сбои передачи, программа из библиотеки выходит по ошибке ERR_MEM_LOCK или ERR_MEM_FREE, таймер и АЦП продолжают работать. Сам я никакие динамические массивы не использую, только статика. По осциллографу видно, что запас по времени есть и не маленький, на пин вывожу 1 когда буфер заполнен, а снимаю 1, когда приходит сообщение TCP_EVT_ACK, период стабильной отправки заполненного массива равен 10,9 мс, время от начала передачи до прихода сообщение TCP_EVT_ACK - 240 мкс. При этом сигнала на АЦП нет. При подаче синуса, любой частоты передача прекращается. Стабильность передачи возобновляется только при периоде 16,4 мс. Частота таймера для передачи по изернет 10 мс, минимум рекомендованного. Не понятна зависимость наличия сигнала и периода стабильной передачи. Как заставить программу работать на частоте оцифровке 100 кГц? Правильно я понимаю, если в функцию tcp_callback пришло сообщение TCP_EVT_ACK, то данные отправлены и все буфера освобождены?
|
|
|
|
|
 |
Ответов
|
Aug 17 2015, 04:33
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Посмотрел я шарком, ни чего интересного, просто нет очередной посылки, сервер пытается несколько раз достучатся до клиента, но безуспешно и всё останавливается. Если ставлю низкую скорость оцифровки программа всё равно вылетает, но позже, несколько минут работает. Цитата(Golikov A. @ Aug 12 2015, 21:31)  Еще может драйвер мак уровня поглядеть? Может там что-то мешает и данные застревают где-то на пересылках? А где и как его смотреть?
|
|
|
|
|
Aug 17 2015, 10:25
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Цитата(smk @ Aug 17 2015, 12:16)  Была подобная ситуация. Заряжал АЦП на однотактное преобразование, по завершении вычитывал и запускал опять на преобразоваеие. В итоге получалось, что АЦП подвисал через разные промежутки времени от секунд до минут. Из ситуации вышел следующим образом. Зарядил АЦП на циклическое преобразование, а результат вычитывал по флагу завершения. Это помогло. Может и у Вас нечто сходное? Скорей всего не та ситуация, осциллографом вижу что и таймер и АЦП продолжают работать, нет именно передачи. По поводу _EMAC_. Там же всё в библиотеке, исходников стека у меня нет.
|
|
|
|
Сообщений в этой теме
Oleg_IT Стабильность передачи по изернет. Aug 10 2015, 17:57 Golikov A. ЦитатаПравильно я понимаю, если в функцию tcp_call... Aug 11 2015, 05:43 Oleg_IT Весь код работы с изернетом взял из примера и как ... Aug 11 2015, 17:03 Golikov A. main_TcpNet
как часто дергаете? Aug 11 2015, 18:41 Oleg_IT main_TcpNet использую как рекомендует Keil, т.е. в... Aug 12 2015, 04:31 Golikov A. АЦП когда молотит, оно это делает в прерывании или... Aug 12 2015, 05:08 Oleg_IT Померил период обращения к функции main_TcpNet, ма... Aug 12 2015, 16:31 Golikov A. ну должен быть файл он обычно в имени имеет _EMAC_... Aug 17 2015, 05:24 Golikov A. все, да не все
драйвер EMAC_LPC... отдельным файл... Aug 17 2015, 10:56 Golikov A. кстати, по умолчанию в стеке все ошибки вываливают... Aug 17 2015, 12:01 Oleg_IT Вах!:) По EMAC не прав конечно, вот он какой е... Aug 17 2015, 18:21 Golikov A. странно все это... может сам кеил спросить какого ... Aug 17 2015, 18:51 smk Немного не в тему, но какой самый быстрый из LPC с... Aug 17 2015, 19:12 Golikov A. http://www.nxp.com/parametrics/50809/#/p=1...s=0,s... Aug 17 2015, 19:26
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|