Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM7X512 ADC и EMAC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
dxgrey
Доброго времени суток,
На AT91SAM7X512 реализован датчик, принимающий сигнал с АЦП и передающий данные по сети через tcp протокол.
Проблема: Если к АЦП входу подключить внешний источник напряжения, начинает некорректно работать EMAC интерфейс,
т.е. при опросе функцией EMAC_ReadPhy() статуа, флаг DM9161_LINK_STATUS всегда равен 0 в любом случае, присоединен сетевой кабель или нет.
Без подключенных к АЦП датчиков устройство работает нормально.
Функции для инициализации EMAC Интерфейса взял в одном из примеров AT91SAM7X-EK Software Package 1.5 от ATMEL
Код инициализации EMAC:
Код
    static const Pin emacRstPins[] = {BOARD_EMAC_RST_PINS};
    static const Pin emacPins[] = {BOARD_EMAC_RUN_PINS};
    EMAC_Init(AT91C_ID_EMAC, MacAddress, EMAC_CAF_ENABLE, EMAC_NBC_DISABLE);
    DM9161_Init(pDm, EMAC_PHY_ADDR);
    if (!DM9161_InitPhy(pDm, BOARD_MCK,  emacRstPins, PIO_LISTSIZE(emacRstPins), emacPins, PIO_LISTSIZE(emacPins))) {
        return -1;
    }
     // Auto Negotiate
    if (!DM9161_AutoNegotiate(pDm))
       return -1;
потом по таймеру с помощью функции EMAC_ReadPhy() я опрашиваю link status.

Код инициализации АЦП:
Код
    static const Pin pinsADC[] = {PINS_ADC};
    PIO_Configure(pinsADC, PIO_LISTSIZE(pinsADC));
    ADC_Initialize( AT91C_BASE_ADC, AT91C_ID_ADC, AT91C_ADC_TRGEN_DIS, 0, AT91C_ADC_SLEEP_NORMAL_MODE, AT91C_ADC_LOWRES_10_BIT, BOARD_MCK, BOARD_ADC_FREQ, 10, 1200);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_CHANNEL_0);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_CHANNEL_1);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_CHANNEL_2);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_CHANNEL_3);
    ADC_StartConversion(AT91C_BASE_ADC);


Кто-нибудь сталкивался с такой проблемой?
aaarrr
Цитата(dxgrey @ Feb 2 2010, 15:10) *
Кто-нибудь сталкивался с такой проблемой?

Едва ли кто-то мог бы столкнуться с такой проблемой, так как она носит ярко выраженный индивидуальный характер.
Или данные от АЦП в вашей программе перетирают что-то ценное, или же вход АЦП закорочен с каким-либо из сигналов DM9161. Кстати, как ведет себя светодиод Link?
vmp
Входной сигнал АЦП не превышает AVcc?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.