Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
работаю с ацп max1301b - выдает или нули, или ничего
Отправлено
libr 29 июля 2008 г. 23:24
День добрый.
Приходится работать с max1301b, и не идет.
Пробовал и в режиме internal clock, и external clock, не работает.
В первом не выставляется сигнал готовности (sstrb в 1), во втором читаю только нули. Параметры SPI по даташиту (cpol=0, cpha=0, sclk=2MHz), частота контроллера = 48 МГц. Дифференциальный или нет режим, канал и диапазон вроде значения не имеют (меняются только три передаваемых значения).
Вот как делаю (куски на C с камментами):
| Инициализация:
| NSSMD0 = 0; // CS = low
| SpiWriteByte(adcAnalogInputConfigurationByte /*==0x81*/);
| NSSMD0 = 1; // CS = high
| NSSMD0 = 0; // CS = low
| SpiWriteByte(adcModeControlByte /*==0x88*/);
| NSSMD0 = 1; // CS = high
| Чтение данных:
| NSSMD0 = 0; // CS = low
| SpiWriteByte(adcConvertionStartByte /*==0x80*/);
| SpiWriteByte(0xFF /*dummy*/);
| bRetValue_H = SpiReadByte();
| bRetValue_L = SpiReadByte();
| NSSMD0 = 1; // CS = high
Может что не так пишется/читается? Не та инициализация? Или особенности какие есть? Дивайс вроде новый... Проверял на двух устройствах, результат один. Вряд ли оба дивайса битые...
Составить ответ | Вернуться на конференцию
Ответы