Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не хватает портов SPI (AT91SAM7S64)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
rals
Стоит задача - подключить два ADS1251. Какие порты можно использовать? Имеющийся SPI уже занят, да и мало одного.
Переходить на другую серию AT91 не хотелось бы.
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Сергей Борщ
Цитата(rals @ Jul 2 2007, 18:14) *
Имеющийся SPI уже занят, да и мало одного.
Если я правильно понял ваш вопрос, то вы не до конца представляете как работает SPI. На один SPI можно повесить сколько угодно устройств, ибо выбор конкретного устройства осуществляется выводом ~CS устройства, а этот вывод вы можете управлять любым свободным выходом процессора. Если же вам "ну очень хочется" повесить устройства на разные SPI, то организуйте программный на любых свободных ножках PIO:
Код
uint8_t SPI_exchange(uint8_t data)
{
    uint8_t Counter;
    for(Counter = 0; Counter < 8; ++Counter)
    {
        on(SPI_CLK);
        if(data & (1<<7))
             on(SPI_MOSI);
        else
             off(SPI_MOSI);
        off(SPI_CLK):
        data <<= 1;
        if(signal(SPI_MISO))
            data |= 1;
     }
     return (data);
}
rals
Цитата(Сергей Борщ @ Jul 2 2007, 21:05) *
Если я правильно понял ваш вопрос, то вы не до конца представляете как работает SPI. На один SPI можно повесить сколько угодно устройств, ибо выбор конкретного устройства осуществляется выводом ~CS устройства, а этот вывод вы можете управлять любым свободным выходом процессора. Если же вам "ну очень хочется" повесить устройства на разные SPI, то организуйте программный на любых свободных ножках PIO


В ADS1251 неполный SPI - там нет Chip Select.
Использовать программный SPI на два 24 битных АЦП не реально (частота выборки 10 кГц). У проца других забот полно.
proba
програмныи SPI можно сделать через прерывание , от таимера. и считать данные из 2х АЦП одновременно. но если такои вожможности нет то стоит подумать о промежуточном накопителе на каком то 8битном, аттини / пик итд.
Сергей Борщ
Цитата(rals @ Jul 2 2007, 22:04) *
В ADS1251 неполный SPI - там нет Chip Select.
Скачал даташит. Нет там SPI. Т.е. этот синхронный интерфейс, но это совсем не SPI. Неверный вопрос - неверный ответ laughing.gif. В таком случае proba дал неплохой совет, можно еще поставить буфера с третьим состоянием и через них полключать АЦП на существующий SPI.
rals
Цитата(Сергей Борщ @ Jul 3 2007, 10:48) *
это совсем не SPI. Неверный вопрос - неверный ответ

Вопрос заключался не в том, SPI там или нет. (Хотя на мой взгляд к SPI это инетрфейс ближе всего). Вопрос в том, на какой порт их повесить, с минимальными затратами времени проца.

Использовать SSC (без Frame Sync) в режиме ПДП, а Clock через внешний коммутатор по таймеру переключать с одного АЦП на другой.
Так возможно?
_4afc_
Цитата(rals @ Jul 3 2007, 13:19) *
Вопрос заключался не в том, SPI там или нет. (Хотя на мой взгляд к SPI это инетрфейс ближе всего). Вопрос в том, на какой порт их повесить, с минимальными затратами времени проца.

Использовать SSC (без Frame Sync) в режиме ПДП, а Clock через внешний коммутатор по таймеру переключать с одного АЦП на другой.
Так возможно?


можно подключить один на SPI другой на SSC
Подключение на SPI неудобно вооще, ибо требует для чтения постоянной выдачи информации в SPI.
Использовать SSC можно. Можно его тактовать снаружи и RF и RK, и в том числе от встроенных таймеров АРМа. Но вот внешний коммутатор для данных вам необходим поскольку ваш АЦП не освобождает линию. Неким внешним блоком надо закоммутировать данные так, чтоб они приходили на RD по очереди. Частота RK =2*3*8*10000Гц. RF может быть на ваш вкус - или меандром соответствующим номеру канала или подсвечивать первый байт.
RF,RK,RD - как входы. При таком раскладе проще поставить PLD или вторую AT91 (Мне удавалось считать программно 4 канала АДМ частотой 130кГц, каждый со своей синхрой, фильтрануть скользящим окном с выдачей далее по SSC с частотой до 16кГц. На MCK=48МГц.)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.