|
Стабильность передачи по изернет. |
|
|
|
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, 18:21
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Вах!:) По EMAC не прав конечно, вот он какой есть, файлик этот LPC24_EMAC.c.
Осознать бы, где чего смотреть. LPC24_EMAC.c из примера взято, собственно вся моя программа из примеров собрана, сам только собрал проект из ... двух проектов LEDClient и ADC. По поводу успевает ли приёмная сторона, период посылок 0.02 с (~45Гц), компьютер 3,4 ГГц 16Гб ОЗУ, думаю справляется. Но как я понимаю, если даже не справляется, то просто передача должна остановится, ошибки по памяти быть не должно. Как то она не предсказуемо падает, иногда минуты не работает, а иногда 10-15 минут работает. Поставил контроль выделяемой памяти, если адрес в очередном цикле меняется, то это фиксируется. Перед падением часто адрес менялся, но в пределах двух килобайт.
|
|
|
|
Сообщений в этой теме
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. а шарком не пробовали трафик посмотреть? может буд... Aug 12 2015, 17:31 Oleg_IT Посмотрел я шарком, ни чего интересного, просто не... Aug 17 2015, 04:33  smk Цитата(Oleg_IT @ Aug 17 2015, 07:33) Если... Aug 17 2015, 08:16   Oleg_IT Цитата(smk @ Aug 17 2015, 12:16) Была под... Aug 17 2015, 10:25 Golikov A. ну должен быть файл он обычно в имени имеет _EMAC_... Aug 17 2015, 05:24 Golikov A. все, да не все
драйвер EMAC_LPC... отдельным файл... Aug 17 2015, 10:56 Golikov A. кстати, по умолчанию в стеке все ошибки вываливают... Aug 17 2015, 12:01 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
|
|
|