Jump to content

artos5

Moderators
  • Content Count

    2904
  • Joined

  • Last visited

  • Days Won

    7

artos5 last won the day on January 22 2013

artos5 had the most liked content!

Community Reputation

298 Хороший

2 Followers

About artos5

  • Rank
    начинающий :)
  • Birthday 05/05/1985

Контакты

  • ICQ
    436015834
  • Skype
    artyomugr

Информация

  • Пол
    Мужчина
  • Город
    Украина, Ахтырка

Электроника

  • Стаж в электронике
    10-20 лет
  • Сфера радиоэлектроники
    Цифровая электроника, Силовая электроника, Аудио
  • Оборудование
    UNI-T UT71B, MASTECH MS8260E , LUKEY 852D, Паяльник 30W с тонким керамическим жалом, держатель плат с лупой.

Recent Profile Visitors

22397 profile views
  1. Все заработало. В даташите не доглядел этот пункт по термометру .
  2. Да , команду не ту отправлял всего лишь .. я отправлял 0х10 , а нужно было 0х08... Теперь всё работает . С термодатчиком только пока непонятно . Значения какие-то конские.
  3. Глупости. В чужой библиотеке все почти сделано. Небольшая доработка , и она готова под собственные задачи. Вот сейчас делаю все правильно , а считываются постоянно "0". сейчас скрины покажу. В итоге всегда читается 0.
  4. Так , уже "почти" заработало. Почему почти? Потому что данные теперь уже получаю , но получаю кашу . Буду дальше разбираться. Как доведу библиотеки "до ума" кому они нужны будут - скину по запросу в личку.
  5. Кто подскажет что за бит? : PGA_BYPASS обход чего-то , только чего? И какое значение нужно выставить? Вот даташит: http://www.ti.com/lit/ds/symlink/ads1220.pdf
  6. Не на тех ногах аппаратный SPI . Да и SPI вроде нормально программный работает . Проблема скорее в правильности конфигурации АЦП
  7. Я осциллографом замерял сигналы , вроде все как надо работает. Только АЦП не выдает данных.
  8. Приветствую всех на этом форуме! Есть необходимость измерять сигнал при помощи данного АЦП. С помощью этого АЦП можно измерять 4 аналоговых не дифференциальных сигнала . Схема следующая: Schematic_Temp_opto_sens_V2_20190817124112.pdf Картинками с более низким разрешением: библиотеку за основу взял эту: https://github.com/nsaspook/nidaq700/blob/master/supermoon/example/ADS1220.c Путем незначительного допиливания, получилась такая библиотека: Поправил только эти функции: void ADS1220SendByte(unsigned char Byte) { unsigned char Result = 0x01, i=0, flg=0; MOSI_LO; Delay_us(1); for(i=0;i<8;i++) { SCK_LO; //ADC_CLK=0 Delay_us(4); if (flg) MOSI_LO; Delay_us(1); SCK_HI; //ADC_CLK=1 Delay_us(1); if (Byte&Result){ MOSI_HI; flg=1; } else MOSI_LO; Delay_us(4); Result<<=1; } SCK_LO; //ADC_CLK=0 } unsigned char ADS1220ReceiveByte(void) { unsigned char Result = 0, i=0; for(i=0;i<8;i++) { Result<<=1; SCK_LO; //ADC_CLK=0 Delay_us(5); //Delay_us(5); SCK_HI; //ADC_CLK=1 Delay_us(3); if (MISO) Result++; Delay_us(2); } SCK_LO; //ADC_CLK=0 return Result; } И добавил эту функцию: void ADS1220Config_MUX_GAIN(uint8_t mux, uint8_t gain) { unsigned Temp; ADS1220ReadRegister(ADS1220_0_REGISTER, 0x01, &Temp); // clear prev value; Temp &= 0x0f; Temp |= gain; Temp |= mux; // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_0_REGISTER, 0x01, &Temp); ADS1220ReadRegister(ADS1220_1_REGISTER, 0x01, &Temp); // clear prev DataRate code; Temp &= 0x1f; Temp |= (ADS1220_DR_600 + ADS1220_CC); // Set default start mode to 600sps and continuous conversions // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_1_REGISTER, 0x01, &Temp); } ADS1220.h : в результате получаю такую осциллограмму : То есть , постоянно считывается 0. А вот регистры конфигурации: Задаю номер входа MUX и усиление : Читаю данные так: ADS1220Config_MUX_GAIN(ADS1220_MUX_0_G, ADS1220_GAIN_1); HAL_Delay(10); temp_[0] = ADS1220ReadData(); Это для 0 канала. Пробовал и так: ADS1220SetChannel(ADS1220_MUX_0_G); ADS1220SetGain(ADS1220_GAIN_1); temp_[0] = ADS1220ReadData(); Результат аналогичный. Кто что подскажет? Может кто заметит какой косяк в коде? Уже голова дымит ..
  9. Неправильно вы поняли. У меня программа уже больше половины написана. Пришло время к отладке модуля АЦП , и такой косяк вылез..
  10. Железо уже имеется . Оно "запилено" под STM32F100C8T6 . И в железе используется ЦАП. По этой причине STM32F103C8T6 не подойдет. Разве что , если вместо ЦАП применить ШИМ модуляцию. Я считал , получается если в документацию смотреть , то входное сопротивление 400 Ом при 1.5 такта. У меня на такой скорости какие то глюки с вольтметром и амперметром Но по две выборки вариант интересный ! Как раз вкладываемся в интервал
  11. Все немного проще . Просто не пойму как инициализировать правильно модули.
  12. Да, 4 ядра 8 потоков )) ... ... ... правда у моего ПК в процессоре. Нет , не внешним клоком. Нужно генерировать модулем ШИМ . В принципе при помощи таймера я это уже без проблем делаю, осталось только АЦП правильно настроить .
  13. Я хочу выполнять выборки например 0.5сек. непрерывно . Потом остановить регулярную группу и запустить инжектированную , измерить два канала и потом снова регулярную группу измерять. Нужно это очень быстро выполнять (в смысле переключаться между группами).
×
×
  • Create New...