IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> MCP3550 нет преобразования
_pasha
сообщение 25.12.2009, 12:50
Сообщение #1


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Запостил на элхе тему

Цитата
Всем привет!
Беда:
- два устройства. Прикрутил сабж для измерения эдс термопары.
- после включения питания жду 1 секунду, опускаю /CS=0 и оставляю ацп в continuous mode
- жду когда упадет сигнал готовности SDO/RDY. SCK в это время =1.
SDO/RDY НЕ ПАДАЕТ.
Т.е. преобразования нету - по логике вещей не работает внутренний осциллятор?
Цифровые ноги заведены в контроллер через 100 Ом (в т.ч. /CS)
Перенапряжения и прочие гадости с питанием отсутствуют.
Что бы это могло быть?
 

Блин, мозг сломал, а толку нету. По управлению - и так и эдак. И single conversion пробовал, и continuous. Нихрена не получается. Английцы говорят, мол кондюка по питанию на ноги надоть. Мало того, что он есть, прямо на ноги припаял. Нихрена.

Заказал еще пару этих ацп - вдруг проблема не во мне. Но будут в понедельник. 
И главное ж - шо там сложного?! Наливай клок да пей из SDO. Вот зараза!

help.gif  памагите...

Может тут тонить юзал их?
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 25.12.2009, 16:46
Сообщение #2


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(maximiz @ 25.12.2009, 16:11) *
Аднак, вутэто выдерживается?

Акакже! 10мкс Я еще и период клока до 2мкс удлинял. И по включению жду 1сек.

Цитата
SCK должно быть, походу, нуль.

Я и так и сяк пробовал. 

Цитата
Долбаный мелкочип!

Вопрос пока в воздухе: то ли я, то ли они rofl.gif  

ЗЫ я еще по их аппликухе подергал:
[attachment=552:33.png]
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 25.12.2009, 17:15
Сообщение #3


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(maximiz @ 25.12.2009, 17:03) *
Павел, правильно ли я понимаю.

Не. Щаз как в аппликухе. Пусть хоть как-то задышит. Потом уж до continuous дойду

Код
Питание
ждем 1 секунду до установления всего  чего можно

МЕТКА:

опустили CS
выждали 10 мкс - проверили /ready
if(/ready нанэ) // а оно таки нанэ, собако
{
   подняли CS
   ждем 10 [b]милли[/b]сек 
   goto МЕТКА //до полного посинения заказчега
}
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 21.3.2010, 20:54
Сообщение #4


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Нормально все. Глюк в программе оказался неотсмотренный. Вот так работает
Код
Powered:
    if(get_time(powerUp) < TC_complete_test) return &&Powered;
    powerUp = get_time(0);
    MCP3550_clk_set(1);
    MCP3550_cs_set(0);    
    _delay_us(us_Timing*5);
    if(MCP3550_rd())
    {
        MCP3550_cs_set(1);
        return &&Powered;
    }
// read from mcp 3550
uint32_t value=0;
uint32_t msk= 1ULL << 23;

    for(uint8_t bits=0; bits < 24; bits++)
    {
            MCP3550_clk_set(0);
            _delay_us(us_Timing);
            MCP3550_clk_set(1);
            _delay_us(us_Timing);
            if(MCP3550_rd()) value |= msk;
            msk >>=1;
    }
    MCP3550_cs_set(1);//close

Пояснений, я думаю, особо не надо, кроме того, что используется GCC и конструкции типа return &&Label использую где надо и не надо для организации сопрограмм.
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 21.3.2010, 23:40
Сообщение #5


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Походу да. Спасибо.
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.3.2024, 7:34