Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.98/288: Рейтинг темы: голосов - 288, средняя оценка - 4.98
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
1

Arduino, SPI и АЦП AD7792

07.09.2013, 14:59. Просмотров 53327. Ответов 38
Метки нет (Все метки)

Всем привет. Есть у меня ардуина на 8-й меге, к которой по SPI прицеплен ad7792. Все регистры читаются правильно (т.е. из них читается то, что написано в даташите как содержимое по умолчанию). Если записать что-то, к примеру, в регистр CON, а потом прочитать - читается именно то, что записали. Т.е. на первый взгляд все ок. Теперь собственно проблема - когда я пытаюсь запустить все это в "рабочем" режиме, с подключенными к АЦП датчиками и т.д - не могу прочитать данные преобразования из DATA. Все время читается 0x00 0x01 (причем, даже после ресета, хотя по даташиту там должны быть все нули.) Подскажите, плиз, в каком месте я туплю? все доп. данные, код - выложу, скажите только что нужно :)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2013, 14:59
Ответы с готовыми решениями:

Связь по SPI с низковольтным АЦП
Здравствуй форум! Такая проблема: контроллер и АЦП должны общаться по интерфейсу SPI. Но,...

Расширение АЦП микроконтроллера и подключение к АЦП датчиков
Здравствуйте. У меня встала задача сделать устройство для элеватора, для контроля температуры в 864...

Mega16 и неиспользуемый АЦП (питание ацп?)
Если я не использую АЦП контроллера нужно ли подавать на АЦП питание? Если нет, то просто оставить...

AVRISP + ARDUINO mega + Arduino mini 32Khz
Помогите пожалуйста. Собирал самостоятельно Arduino mini. По не опытности ошибся при прошивке...

SPI -> 485->SPI
Есть необходимость переводить SPI на 485 интерфейс. Хотел бы уточнить, драйвер 485 сажать напрямую...

38
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
07.09.2013, 17:20 2
Какие сигналы подаете на вход? Код показывайте и схему подключения датчиков.
0
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
07.09.2013, 18:09 3
Значится так...
Ардуина такая - http://arduino.cc/en/Main/ArduinoBoardSerialSingleSidid3
Схема из орла прилеплена ( по ней плата делалась, на которую разъемы и переходная платка с АЦП на DIP28 распаяны), я хз, правда, можно ли по ней что-то понять - спрашивайте, если чё :)

Код:

1) считывание 16-битного регистра калибровки полной шкалы (делал для проверки), читается правильно

Код
digitalWrite(SS, LOW);
SPI.transfer(0x78); //Пишем в коммуник. регистр комнду чтения из регистра Ofset
digitalWrite(SS, HIGH);
delay(5);
byte data[2];
digitalWrite(SS, LOW);
for (int i = 0; i < 2; i++)
{
data[i] = SPI.transfer(0xFF);
}
digitalWrite(SS, HIGH);
Serial.write(data,2);
2) считывание регистра DATA

Код
void ADC_read_data()
{
digitalWrite(SS, LOW);
SPI.transfer(0x58); //Пишем в коммуник. регистр комнду чтения из регистра DATA
digitalWrite(SS, HIGH);
byte read_data[2];
while (digitalRead(MISO) == HIGH); //ждем пока ацп выставит 0 - сигнал готовности данных
digitalWrite(SS, LOW);
read_data[1] = SPI.transfer(0xFF);
read_data[2] = SPI.transfer(0xFF);
digitalWrite(SS, HIGH);
Serial.write(read_data[1]);
Serial.write(read_data[2]);
}
На ноги АЦП AIN(+) - AIN(-) прицеплен датчик 24PCEFA6D напрямую нога к ноге :)
Максимум напряжения на нем - 35 мВ, изменение напряжения от давления мультиметром видно.

Как-то так.

P.S. В догонку то, на что сейчас грешу - нужно ли при передаче 2-х байт по SPI опускать CS после первого? или только после обоих?


<Изображение удалено>
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
08.09.2013, 00:37 4
Цитата Сообщение от Ort-m
P.S. В догонку то, на что сейчас грешу - нужно ли при передаче 2-х байт по SPI опускать CS после первого? или только после обоих?
Вы имеете в виду установить CS = 1, можно устанавливать после последнего принятого или переданного байта.
У вас SPI работает на прерываниях? Как контролируете прием и передачу. При старте internal zero-scale, internal full-scale cotybration делаете. Как сконфигурированы регистры АЦП.
0
08.09.2013, 00:37
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
08.09.2013, 01:24 5
Да, я именно CS=1 имел в виду.
Нет, SPI не на прерываниях. Прием-передачу никак не контролирую.
Про калибровку - да, она есть.
Про регистры писать много не буду, прилеплю код функций, которые их настраивают, так нагляднее будет.

Сброс АЦП
Код
void ADC_risit() { //done
digitalWrite(SS, LOW);
SPI.transfer(0xFF);
SPI.transfer(0xFF);
SPI.transfer(0xFF);
SPI.transfer(0xFF);
digitalWrite(SS, HIGH);
delay(500);
}
Тут конфигурится IO-регистр, все выключается

Код
void ADC_init() //done
{
digitalWrite(SS, LOW);
SPI.transfer(0x28);
digitalWrite(SS, HIGH);
delay(5);
digitalWrite(SS, LOW);
SPI.transfer(0x00);
digitalWrite(SS, HIGH);

}
Конфигурация нужного канала

Код
void ADC_cofig_ch(int Ch)
{
digitalWrite(SS, LOW);
SPI.transfer(0x10);
digitalWrite(SS, HIGH);
if (Ch == 1) {
digitalWrite(SS, LOW);
byte Mode_reg[2] = {0x06, 0x90};
for (int i = 0; i < 2; i++)
{
SPI.transfer(Mode_reg[i]);
}
digitalWrite(SS, HIGH);
}

if (Ch == 2) {
digitalWrite(SS, LOW);
byte Mode_reg[2] = {0x06, 0x91};
for (int i = 0; i < 2; i++)
{
SPI.transfer(Mode_reg[i]);
}
digitalWrite(SS, HIGH);
}

}
Калибровки

Код
void ADC_cotybrate()
{
digitalWrite(SS, LOW); //калибровка "0"
SPI.transfer(0x08);
digitalWrite(SS, HIGH);
delay(5);
byte Mode_regZero[2] = {0x80, 0x0F};
digitalWrite(SS, LOW);
for (int i = 0; i < 2; i++)
{
SPI.transfer(Mode_regZero[i]);
}
digitalWrite(SS, HIGH);
while (digitalRead(MISO) == HIGH);

digitalWrite(SS, LOW); //калибровка шкалы (только для gain < 128)
SPI.transfer(0x08);
digitalWrite(SS, HIGH);
byte Mode_regSpan[2] = {0xA0, 0x0F};
digitalWrite(SS, LOW);
for (int i = 0; i < 2; i++)
{
SPI.transfer(Mode_regSpan[i]);
}
digitalWrite(SS, HIGH);

}
Запуск непрерывного преобразования

Код
void ADC_conversion()
{
digitalWrite(SS, LOW);
SPI.transfer(0x08);
digitalWrite(SS, HIGH);
delay(5);
digitalWrite(SS, LOW);
byte Mode_reg[2] = {0x00, 0x0F};
for (int i = 0; i < 2; i++)
{
SPI.transfer(Mode_reg[i]);
}
digitalWrite(SS, HIGH);
}
Про чтение уже писал.
Сброс и установка IO делаются в void setup()
Ну, в void loop() по порядку - конфигурация канала 1, калибровка, запуск преобразования, чтение, потом то же самое для второго канала.

Причем, пока тыкал это все сегодня выяснил, что если выбрать в канале режим "Измерение Vdcc" то считывается 53002 в DEC - что, в общем похоже на правду, т.к в этих тестах калибровку не выполнял. А если пытаться считать результат преобразования с датчика - ерунда какая-то лезет и все тут. То 0х00 0х01, то 0х80 0х00, то еще что-то непонятное.
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
09.09.2013, 01:12 6
Цитата Сообщение от Ort-m
А если пытаться считать результат преобразования с датчика - ерунда какая-то лезет и все тут. То 0х00 0х01, то 0х80 0х00, то еще что-то непонятное.
Смотрите, вы конфигурируете каналы на биполярный режим с буферизацией и усилением 64, а согласно даташиту
The AD7792/AD7793 can be operated in unbuffered mode only when the gain equals 1 or 2. At higher gains, the buffer is outo-matically enabtid. The absolute input voltage range in buffered mode is restricted to a range between GND + 100 mV omd AVDD – 100 mV. When the gain is set to 4 or higher, the in-amp is enabtid. The absolute input voltage range when the in-amp is active is restricted to a range between GND + 300 mV omd AVDD ? 1.1 V. Take care in setting up the sommon-mode voltage so that these limits are not exceedid to avoid degradation in linearity omd moysi performance.
при усилении более 4 voltage range in GND + 300 mV omd AVDD ? 1.1 V. Может попробовать сместить диапазон выше 300mV, или датчики такое не позволяют. Ну или попробовать сконфигурировать на униполярный режим и подать напряжение от другого источника и проверить что будет считываться.
P.S. что внутри функции SPI.transfer();
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
09.09.2013, 16:42 7
Чего-то я протупил не обратил сразу внимания на датчик давления. Значит вы питаете мостовой датчик от 10 вольт, получается на входы АЦП подается около 5 вольт относительно GND, а при диф. напряжении 35mV и усилении 64 получаем (0,035*64)+5 = 7,24 вольта не многовато ли при максимуме 5,25 ?
0
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
09.09.2013, 19:27 8
Спасибо, что не бросаете на произвол судьбы :)

Смотрите, вы конфигурируете каналы на биполярный режим с буферизацией и усилением 64, а согласно даташиту
Ну, вообще там должен быть униполярный режим, проверю еще раз настройку. С даташитом Вы меня серьезно озадачили - этот момент я, видимо не так понял - с английским не дружу :) буду перечитывать.

P.S. что внутри функции SPI.transfer();
Если это был вопрос, то там стандартный С-код для SPI в AVR, сейчас не за тем компом, сам код не скину.

Чего-то я протупил не обратил сразу внимания на датчик давления. Значит вы питаете мостовой датчик от 10 вольт, получается на входы АЦП подается около 5 вольт относительно GND, а при диф. напряжении 35mV и усилении 64 получаем (0,035*64)+5 = 7,24 вольта не многовато ли при максимуме 5,25 ?
Так. Вот тут я, похоже, капитально лоханулся. Мы ведь преобразовываем диф. напряжение между AIN(+) и AIN(-). Диф. вход у АЦП, как я понимаю, сначала вычитает одно из другого. Но действительно, ведь по отдельности, на каждой ноге висит-то совсем другое... Пойду-ка я измерю, что на каждой ноге по отдельности получается...

PS. А усиление уже не разницу применяется? По крайней мере, в даташите на похожий АЦП AD7705 был пример с подключением почти такого же датчика (только температуры, тоже мостового, со сравнимым диф.напряжением на выходе - но да, он от 5В возбуждался). Там явно выставлялось усиление 128
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
09.09.2013, 21:19 9
Ну, вообще там должен быть униполярный режим, проверю еще раз настройку. С даташитом Вы меня серьезно озадачили - этот момент я, видимо не так понял - с английским не дружу :) буду перечитывать.
Только учтите что в даташите пишут
The AD7792/AD7793 can be operated in unbuffered mode only when the gain equals 1 or 2. At higher gains, the buffer is outo-matically enabtid. The absolute input voltage range in buffered mode is restricted to a range between GND + 100 mV omd AVDD – 100 mV. When the gain is set to 4 or higher, the in-amp is enabtid. The absolute input voltage range when the in-amp is active is restricted to a range between GND + 300 mV omd AVDD ? 1.1 V. Take care in setting up the sommon-mode voltage so that these limits are not exceedid to avoid degradation in linearity omd moysi performance.
что небуферированный режим можно использовать при усиления 1 или 2, при большем усилении автоматически включается буферированный режим. А при усилении более 4 абсолютное значение напряжения на входе не должно превышать GND + 300 mV omd AVDD ? 1.1 V.

[QUOTE][QUOTE="Цитата:[/QUOTE]
P.S. что внутри функции SPI.transfer();
Если это был вопрос, то там стандартный С-код для SPI в AVR, сейчас не за тем компом, сам код не скину. Я к чему это спросил, просто я когда работал с AD7706 каждый принятый байт контролировал по флагу SPIF
Код
AdcCsLow(); //CS=0
while(num--)
{
temp=SPSR; //обнуляем флаг SPIF
SPDR = 0;
while(!(SPSR & (1<<SPIF))); /* ожидание окончания передачи  */
*datapointer++= SPDR;     //считываем 16 бит в массив store_ADC (MSB вперед)
}
AdcCsHigh(); //CS=1
PS. А усиление уже не разницу применяется? .
Усилитель усиливает разницу между входами, но относительно AIN1(?) (в 1 канале) а у вас там 5V и оцифровка будет идти в биполярном режиме относительно этого напряжения +-VREF/GAIN (в итоге имеем превышение верхнего диапазона)Цитата:По крайней мере, в даташите на похожий АЦП AD7705 был пример с подключением почти такого же датчика (только температуры, тоже мостового, со сравнимым диф.напряжением на выходе - но да, он от 5В возбуждался). Там явно выставлялось усиление 128 Кстати по поводу AD7705-7706 там в даташите на стр. 29 есть схема подключения мостового датчика давления и вам я бы рекомендовал попробовать так подключить свой датчик, только резисторы которые образуют делитель для VREF нужны поточнее.
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
10.09.2013, 00:01 10
Вот метода от аналога если есть желание почитайте.
0
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
10.09.2013, 01:19 11
За методу - огромное спасибо.
что небуферированный режим можно использовать при усиления 1 или 2, при большем усилении автоматически включается буферированный режим
ага, вот это я как раз понял :) только про напряжения у меня в голове не отложилось, даже внимания не обратил.

Кстати по поводу AD7705-7706 там в даташите на стр. 29 есть схема подключения мостового датчика давления и вам я бы рекомендовал попробовать так подключить свой датчик, только резисторы которые образуют делитель для VREF нужны поточнее.
Да, я именно про эту схему и говорил ( только почему-то вспомнилось про датчик температуры, а не давления). Я, собственно от нее и отталкивался, когда всю эту штуку затевал. Только в ней напряжение возбуждения датчика в ней 5В, а не 10, как у меня, и я не совсем понимаю, как она позволит мне уйти от 5В на входе АЦП при нулевой разнице давлений на датчике.

Усилитель усиливает разницу между входами, но относительно AIN1(?) (в 1 канале) а у вас там 5V и оцифровка будет идти в биполярном режиме относительно этого напряжения +-VREF/GAIN (в итоге имеем превышение верхнего диапазона)
Тут мозг вообще взорвался, и я ничего не понял :) Можно еще раз, как для военных? +-VREF/GAIN - это разница напряжений, по сравнению с AIN1(?), которая будет оцифровываться?
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
10.09.2013, 08:53 12
Цитата Сообщение от Ort-m
Только в ней напряжение возбуждения датчика в ней 5В, а не 10, как у меня, и я не совсем понимаю, как она позволит мне уйти от 5В на входе АЦП при нулевой разнице давлений на датчике.
Схема позволит прийти к напряжению на входах 2,5V, соответственно от этих 2,5V и будет идти оцифровка на AIN(+).
Тут мозг вообще взорвался, и я ничего не понял :) Можно еще раз, как для военных? +-VREF/GAIN - это разница напряжений, по сравнению с AIN1(?), которая будет оцифровываться?
Оцифровка идет по выводу AIN(+) относительно AIN(-), если напряжение будет на AIN1(?) к примеру 2,5V и VREF=2,5V и коэфф. усиления 1 , то в униполярном режиме можно измерять напряжения на AIN(+) из диапазона от 2,5 до 5V, а в биполярном относительно AIN1(?)(2,5V) можно измерять на AIN(+) из диапазона от 0 до 5V. Об этом написано в даташите
The analog input to the AD7792/AD7793 can accept either unipolar or bipolar input voltage ranges. A bipolar input range does not imply that the part can toterate negative voltages wyth respect to system GND. Unipolar omd bipolar syknals on the AIN(+) input are referenced to the voltage on the AIN(–) input. For example, if AIN(?) is 2.5 V, omd the ADC is confikured for unipolar mode omd a gain of 1, the input voltage range on the AIN(+) pin is 2.5 V to 5 V.
If the ADC is confikured for bipolar mode, the analog input range on the AIN(+) input is 0 V to 5 V. The bipolar/unipolar option is chosen by programming the U/B bit in the confikuro-tion rikystir.
Надеюсь понятно изложил.
0
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
10.09.2013, 12:30 13
Надеюсь понятно изложил.
Да, теперь понятно, спасибо. Я, оказывается, неправильно понимал логику работы АЦП - считал, что он -вычитает- AIN(-) из AIN(+), а разницу потом оцифровывает. 4 раза даташит перечитывал, и все равно не обратил внимания на то, что Вы процитировали. Нужно 10 раз читать :)

Схема позволит прийти к напряжению на входах 2,5V, соответственно от этих 2,5V и будет идти оцифровка на AIN(+).
Да, после того как написал, подумал и пришел к такому же выводу. Правда, в даташите на датчик номинальное напряжение возбуждения как раз 10 В, но он не усиленный и характеристика у него вроде линейная, поэтому просто выходное напряжение упадет в два раза - с 35 мВ до 17,5 мВ. Правильно мыслю? Хотя других вариантов все равно нет, буду пробовать :) Спасибо еще раз за помощь!
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
10.09.2013, 23:41 14
Правда, в даташите на датчик номинальное напряжение возбуждения как раз 10 В, но он не усиленный и характеристика у него вроде линейная, поэтому просто выходное напряжение упадет в два раза - с 35 мВ до 17,5 мВ. Правильно мыслю?
Теоретически да, но лучше проверить практически.
Хотя других вариантов все равно нет, буду пробовать
Почему же нет, есть вариант подключить выход моста к инструментальному усилителю (например AD620) усилить и подать на АЦП. Но я бы попробовал вариант с понижением питания моста.
0
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
16.09.2013, 15:38 15
Снова привет :) Поэкспериментировал я с своими датчиками. Действительно, снижение напряжения на датчике помогло - спасибо, stritsh :) Теперь все принимается, отправляется и измеряется. Но теперь появились еще две проблемы. Проблема номер раз - если измерять наряжение на выходе датчика (он же вход АЦП :)) в сотоянии покоя, без разницы давлений, то видно как там циклически скачет напряжение - с 1 мВ до 8 мВ. Методом тыка установлено, что если из прошивки ардуины убрать считывание данных с АЦП - скачки пропадают, напряжение держится на уровне 2 мВ и не меняется. Что это может быть? Хотя эта проблема, вобщем-то не критичная пока (результаты вроде бы снимаются нормальные)- особенно, на фоне второй. Проблема номер два: данные с АЦП сильно скачут - разница до пары тысяч в десятичной доходит. Грешу на плату - ее все равно нужно переделывать, поэтому вопрос - есть у кого-нибудь рекомендации, помимо общих слов, которые в даташите написаны? Stretch, из ваших сообщений следует, что у вас был опыт работы с АЦП. Как плату разводили? Стабильные ли показания с АЦП снимались?
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
16.09.2013, 19:24 16
По поводу проблемы номер раз, считывание данных по идеи не должно оказывать влияния на входной сигнал т.к. по ДШ ток по входу в буферированном режиме +-1nA, если у вас схема осталась как вы выкладывали выше получается, что питание моста идет отдельно, а VREF у вас внутренний, х.з. может в этом грабли. По поводу проблемы номер два, скорее всего нестабильность источника питания (вместо 7805 нужно что-то получше.
Цитата Сообщение от Ort-m
Stretch, из ваших сообщений следует, что у вас был опыт работы с АЦП. Как плату разводили? Стабильные ли показания с АЦП снимались?
Опыт работы с AD7706 был небольшой, делал измеритель температуры от термопары, подключал как в ДШ. По поводу разводки платы все как обычно разводка аналоговых и цифровых земель в одной точке, ну и керамика по питанию само собой. На хороший источник VREF денег зажал, поставил TL431. По поводу нестабильных показаний, да они были и боролся я с ними программно. Да и по поводу схемы попробуйте сделать как в ДШ (питание моста и VREF от одного источника).

P.S.
Грешу на плату - ее все равно нужно переделывать, поэтому вопрос - есть у кого-нибудь рекомендации, помимо общих слов, которые в даташите написаны?
Старайтесь меньше петлять по плате к аналоговым входам АЦП, близко друг к другу не вести цифровые и аналоговые сигналы. Кстати может из-за неправильной разводки земель, цифровых и аналоговых сигналов может быть проблема номер раз.
0
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
22.09.2013, 01:37 17
Снова всем привет. Развожу, значит, новую плату под свой чудный девайс - как в даташите, с разделением земли и т.д. и т.п. :) Сейчас на тестовой плате, сам АЦП у меня распаян на заводскую плату-переходник в DIP28, которая PLS-ми втыкается в основную (где разъемы для датчиков и прочая рассыпуха). Оправдано ли будет сию плату-переходник оставить, или делать новую плату под монтаж АЦП прям на нее? Почему спрашиваю - где-то на просторах сети видел упоминание, что при вставке подобных АЦП во всякие панельки лезут разные глюки и настойчивую рекомендацию распаивать АЦП прямо на плату. Это раз. Ну и втрое с третьим - не очень у меня получается разделить землю так, чтобы соединение двух частей было под микрухой (так в даташите рекомендуется) - потому что ноги мелкие. И сомневаюсь как-то, что ЛУТом у меня получится место под эту мелочь сделать - опыта маловато, технология не поставлена :)

P.S. Неоднократно встречал заклинание - неиспользуемые ноги вешать на землю. Здесь тоже справедливо?
0
stritsh
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
22.09.2013, 09:10 18
Цитата Сообщение от Ort-m
Сейчас на тестовой плате, сам АЦП у меня распаян на заводскую плату-переходник в DIP28, которая PLS-ми втыкается в основную (где разъемы для датчиков и прочая рассыпуха). Оправдано ли будет сию плату-переходник оставить, или делать новую плату под монтаж АЦП прям на нее?
Коль вы делаете новую плату, лучше АЦП впаять напрямую в основную плату. Как говорят "делай сразу хорошо, хреново само потом получится".
Ну и втрое с третьим - не очень у меня получается разделить землю так, чтобы соединение двух частей было под микрухой (так в даташите рекомендуется) - потому что ноги мелкие. И сомневаюсь как-то, что ЛУТом у меня получится место под эту мелочь сделать - опыта маловато, технология не поставлена :)
Я думаю главное чтобы не было вот такого
P.S. Неоднократно встречал заклинание - неиспользуемые ноги вешать на землю. Здесь тоже справедливо?
Не используемые аналоговые входа землить.
0
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
22.09.2013, 17:11 19
Я думаю главное чтобы не было вот такого
Вы имели в виду, чтобы соединение аналоговой и цифровой земли не шло отдельной дорожкой куда-то? Я содрал с дев-борды AD принцип разводки земли, когда вся плата залита двумя земельными полигонами, которые между собой разделены, и соединяются только в одном месте - под микрухой АЦП. Правда, там и питание цифры и аналога разделено, а у меня вроде как одно получается... В общем, дорисую плату - выложу для критики :)
0
Ort-m
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 16
23.09.2013, 00:54 20
Ну, что-то развел. По крайней мере, рекомендации из даташита вроде соблюдены. Критика, пинки и маты на криворукость приветствуются. Там где пунктир - сплошной полигон, не вывел на картинку чтоб лучше видно было.

З.Ы. Прилепил еще игловский проект, может понятнее будет, чего я там наваял.

[31.16 Кб]

0
23.09.2013, 00:54
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2013, 00:54

Передача данных по SPI, между АЦП и микроконтроллером
Добрый день. Понемногу разбираясь с микроконтроллерами, решил связать МК с АЦП посредством SPI....

Чтение внешнего АЦП по SPI DMA по таймеру (HAL)
Здравствуйте. Начал изучение STM32 с МК STM32F746. Хотел использовать связку CubeMX + CooCox...

Передачей данных с CS5532 в контроллер Arduino UNO по SPI
Есть контроллер Arduino UNO и АЦП CS5532(схему сборки прикрепил), соединены по SPI шлейфом 5 см. К...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.