| Ваш IP: 44.197.197.23 | Online(49) - гости: 6, боты: 43 | Загрузка сервера: 0.69 ::::::::::::

Простой осциллограф на Arduino Nano (Uno) + TLC5540 + TFT-дисплей SPI 320×240

Ранее на странице https://rcl-radio.ru/?p=63088 рассматривался пример создания осциллографа с использованием быстродействующего АЦП TLC5540 с выводом информации на LCD дисплей 84×48 Nokia 5110. На этой странице показан пример аналогичного осциллографа, но с использованием TFT-дисплея SPI 320×240 на контроллере ILI9341C.

TLC5540 — представляет собой быстродействующий 8 битный АЦП, который осуществляет преобразование с производительностью до 40 MSPS. Тактовые импульсы для АЦП поступают с 9 цифрового выхода Arduino. Частота тактовых импульсов 8 МГц. Полоса пропускания осциллографа до 500 кГц, при частоте входного сигнала выше 500 кГц форма сигнала сильно искажается, поэтому на последнем пределе развертки 0,002 мкс применена программная обработка данных АЦП, которая позволяет отображать на экране логический уровень входного сигнала (любая форма сигнала преобразуется в импульсы).

Максимальное напряжение (только положительное) АЦП TLC5540 2.28 В (перегруз до напряжения питания), поэтому на входе АЦП необходим делитель напряжения. Показанный на схеме делитель напряжения позволяет осциллографу работать с сигналом уровня TTL. Порт PORTC Aduino имеет контакты А0…А5, хотя АЦП TLC5540 8 бит, можно использовать только 6 бит порта Arduino, поэтому два младших бита АЦП TLC5540 не используются. В итоге в процессе преобразования аналогового напряжения в цифровое значение можно получить числа от 0 до 63.

Управление осциллографом очень простое, кнопками «+» и «-» можно менять период развертки, а кнопка «HOLD» «замораживает» изображение, в режиме «HOLD» кнопками «+» и «-» можно двигать по горизонтали изображение осциллограммы (два полных экрана).

Библиотека — UTFT (1).zip

#include <UTFT.h>
#include <EEPROM.h>
UTFT myGLCD(DMTFT28105, 8, 7, 12, 11, 10); // SDI (MOSI), SCK, CS, RESET, DC
extern uint8_t SmallFont[];
 
  int i,x,y,raz,hold,hh,sek,fff;
  unsigned long time;
  float times;
  int h0,h1,w=1,w2=1;
  byte data[640],data_old[640],arr_max=0,arr_min=255,arr_sum,arr;
 
void setup(){
  myGLCD.InitLCD(1);myGLCD.clrScr();myGLCD.setFont(SmallFont);
    pinMode(4,INPUT); ///  +++
    pinMode(3,INPUT); ///  ---
    pinMode(2,INPUT); /// hold
    pinMode(9, OUTPUT);
    raz = EEPROM.read(0);
    TCCR1A = 0x40;TCCR1B = 0x09;OCR1A = 0;
}
void loop(){
     if(digitalRead(2)==HIGH){hold++;hh=0;w2=0;if(hold>1){hold=0;}delay(200);}
   if(digitalRead(4)==HIGH&&hold==1){hh=hh+5;if(hh>320){hh=320;}delay(200);}
   if(digitalRead(3)==HIGH&&hold==1){hh=hh-5;if(hh<0){hh=0;}delay(200);}
   if(digitalRead(4)==HIGH&&hold==0){raz++;myGLCD.setColor(0,0,0);
  myGLCD.fillRect(0,34,320,230);hh=0;w=1;if(raz>13){raz=13;}delay(200);}
   if(digitalRead(3)==HIGH&&hold==0){raz--;myGLCD.setColor(0,0,0);
  myGLCD.fillRect(0,34,320,230);hh=0;w=1;if(raz<0){raz=0;}delay(200);}
 
 ////////////////////// ИЗМЕРЕНИЕ /////////////////////////////////////////////////////////////////////////////////////////////
    if(hold==0){ 
       if(times>0.05){i=0;sinn();while(i<640){data[i]=PINC;delayMicroseconds(sek);i++;};i=0;}
       if(times==0.05){i=0;sinn();while(i<640){data[i]=PINC;i++;}i=0;}
       if(times<=0.02){sinn();  
  data[0]=PINC;data[1]=PINC;data[2]=PINC;data[3]=PINC;data[4]=PINC;
  data[5]=PINC;data[6]=PINC;data[7]=PINC;data[8]=PINC;data[9]=PINC;
  data[10]=PINC;data[11]=PINC;data[12]=PINC;data[13]=PINC;data[14]=PINC;
  data[15]=PINC;data[16]=PINC;data[17]=PINC;data[18]=PINC;data[19]=PINC;
  data[20]=PINC;data[21]=PINC;data[22]=PINC;data[23]=PINC;data[24]=PINC;
  data[25]=PINC;data[26]=PINC;data[27]=PINC;data[28]=PINC;data[29]=PINC;
  data[30]=PINC;data[31]=PINC;data[32]=PINC;data[33]=PINC;data[34]=PINC;
  data[35]=PINC;data[36]=PINC;data[37]=PINC;data[38]=PINC;data[39]=PINC;
  data[40]=PINC;data[41]=PINC;data[42]=PINC;data[43]=PINC;data[44]=PINC;
  data[45]=PINC;data[46]=PINC;data[47]=PINC;data[48]=PINC;data[49]=PINC;
  data[50]=PINC;data[51]=PINC;data[52]=PINC;data[53]=PINC;data[54]=PINC;
  data[55]=PINC;data[56]=PINC;data[57]=PINC;data[58]=PINC;data[59]=PINC;
  data[60]=PINC;data[61]=PINC;data[62]=PINC;data[63]=PINC;data[64]=PINC;
  data[65]=PINC;data[66]=PINC;data[67]=PINC;data[68]=PINC;data[69]=PINC;
  data[70]=PINC;data[71]=PINC;data[72]=PINC;data[73]=PINC;data[74]=PINC;
  data[75]=PINC;data[76]=PINC;data[77]=PINC;data[78]=PINC;data[79]=PINC;
  data[80]=PINC;data[81]=PINC;data[82]=PINC;data[83]=PINC;data[84]=PINC;
  data[85]=PINC;data[86]=PINC;data[87]=PINC;data[88]=PINC;data[89]=PINC;
  data[90]=PINC;data[91]=PINC;data[92]=PINC;data[93]=PINC;data[94]=PINC;
  data[95]=PINC;data[96]=PINC;data[97]=PINC;data[98]=PINC;data[99]=PINC;
  data[100]=PINC;data[101]=PINC;data[102]=PINC;data[103]=PINC;data[104]=PINC;
  data[105]=PINC;data[106]=PINC;data[107]=PINC;data[108]=PINC;data[109]=PINC;
  data[110]=PINC;data[111]=PINC;data[112]=PINC;data[113]=PINC;data[114]=PINC;
  data[115]=PINC;data[116]=PINC;data[117]=PINC;data[118]=PINC;data[119]=PINC;
  data[120]=PINC;data[121]=PINC;data[122]=PINC;data[123]=PINC;data[124]=PINC;
  data[125]=PINC;data[126]=PINC;data[127]=PINC;data[128]=PINC;data[129]=PINC;
  data[130]=PINC;data[131]=PINC;data[132]=PINC;data[133]=PINC;data[134]=PINC;
  data[135]=PINC;data[136]=PINC;data[137]=PINC;data[138]=PINC;data[139]=PINC;
  data[140]=PINC;data[141]=PINC;data[142]=PINC;data[143]=PINC;data[144]=PINC;
  data[145]=PINC;data[146]=PINC;data[147]=PINC;data[148]=PINC;data[149]=PINC;
  data[150]=PINC;data[151]=PINC;data[152]=PINC;data[153]=PINC;data[154]=PINC;
  data[155]=PINC;data[156]=PINC;data[157]=PINC;data[158]=PINC;data[159]=PINC;
  data[160]=PINC;data[161]=PINC;data[162]=PINC;data[163]=PINC;data[164]=PINC;
  data[165]=PINC;data[166]=PINC;data[167]=PINC;data[168]=PINC;data[169]=PINC;
  data[170]=PINC;data[171]=PINC;data[172]=PINC;data[173]=PINC;data[174]=PINC;
  data[175]=PINC;data[176]=PINC;data[177]=PINC;data[178]=PINC;data[179]=PINC;
  data[180]=PINC;data[181]=PINC;data[182]=PINC;data[183]=PINC;data[184]=PINC;
  data[185]=PINC;data[186]=PINC;data[187]=PINC;data[188]=PINC;data[189]=PINC;
  data[190]=PINC;data[191]=PINC;data[192]=PINC;data[193]=PINC;data[194]=PINC;
  data[195]=PINC;data[196]=PINC;data[197]=PINC;data[198]=PINC;data[199]=PINC;
  data[200]=PINC;data[201]=PINC;data[202]=PINC;data[203]=PINC;data[204]=PINC;
  data[205]=PINC;data[206]=PINC;data[207]=PINC;data[208]=PINC;data[209]=PINC;
  data[210]=PINC;data[211]=PINC;data[212]=PINC;data[213]=PINC;data[214]=PINC;
  data[215]=PINC;data[216]=PINC;data[217]=PINC;data[218]=PINC;data[219]=PINC;
  data[220]=PINC;data[221]=PINC;data[222]=PINC;data[223]=PINC;data[224]=PINC;
  data[225]=PINC;data[226]=PINC;data[227]=PINC;data[228]=PINC;data[229]=PINC;
  data[230]=PINC;data[231]=PINC;data[232]=PINC;data[233]=PINC;data[234]=PINC;
  data[235]=PINC;data[236]=PINC;data[237]=PINC;data[238]=PINC;data[239]=PINC;
  data[240]=PINC;data[241]=PINC;data[242]=PINC;data[243]=PINC;data[244]=PINC;
  data[245]=PINC;data[246]=PINC;data[247]=PINC;data[248]=PINC;data[249]=PINC;
  data[250]=PINC;data[251]=PINC;data[252]=PINC;data[253]=PINC;data[254]=PINC;
  data[255]=PINC;data[256]=PINC;data[257]=PINC;data[258]=PINC;data[259]=PINC;
  data[260]=PINC;data[261]=PINC;data[262]=PINC;data[263]=PINC;data[264]=PINC;
  data[265]=PINC;data[266]=PINC;data[267]=PINC;data[268]=PINC;data[269]=PINC;
  data[270]=PINC;data[271]=PINC;data[272]=PINC;data[273]=PINC;data[274]=PINC;
  data[275]=PINC;data[276]=PINC;data[277]=PINC;data[278]=PINC;data[279]=PINC;
  data[280]=PINC;data[281]=PINC;data[282]=PINC;data[283]=PINC;data[284]=PINC;
  data[285]=PINC;data[286]=PINC;data[287]=PINC;data[288]=PINC;data[289]=PINC;
  data[290]=PINC;data[291]=PINC;data[292]=PINC;data[293]=PINC;data[294]=PINC;
  data[295]=PINC;data[296]=PINC;data[297]=PINC;data[298]=PINC;data[299]=PINC;
  data[300]=PINC;data[301]=PINC;data[302]=PINC;data[303]=PINC;data[304]=PINC;
  data[305]=PINC;data[306]=PINC;data[307]=PINC;data[308]=PINC;data[309]=PINC;
  data[310]=PINC;data[311]=PINC;data[312]=PINC;data[313]=PINC;data[314]=PINC;
  data[315]=PINC;data[316]=PINC;data[317]=PINC;data[318]=PINC;data[319]=PINC;
  data[320]=PINC;data[321]=PINC;data[322]=PINC;data[323]=PINC;data[324]=PINC;
  data[325]=PINC;data[326]=PINC;data[327]=PINC;data[328]=PINC;data[329]=PINC;
  data[330]=PINC;data[331]=PINC;data[332]=PINC;data[333]=PINC;data[334]=PINC;
  data[335]=PINC;data[336]=PINC;data[337]=PINC;data[338]=PINC;data[339]=PINC;
  data[340]=PINC;data[341]=PINC;data[342]=PINC;data[343]=PINC;data[344]=PINC;
  data[345]=PINC;data[346]=PINC;data[347]=PINC;data[348]=PINC;data[349]=PINC;
  data[350]=PINC;data[351]=PINC;data[352]=PINC;data[353]=PINC;data[354]=PINC;
  data[355]=PINC;data[356]=PINC;data[357]=PINC;data[358]=PINC;data[359]=PINC;
  data[360]=PINC;data[361]=PINC;data[362]=PINC;data[363]=PINC;data[364]=PINC;
  data[365]=PINC;data[366]=PINC;data[367]=PINC;data[368]=PINC;data[369]=PINC;
  data[370]=PINC;data[371]=PINC;data[372]=PINC;data[373]=PINC;data[374]=PINC;
  data[375]=PINC;data[376]=PINC;data[377]=PINC;data[378]=PINC;data[379]=PINC;
  data[380]=PINC;data[381]=PINC;data[382]=PINC;data[383]=PINC;data[384]=PINC;
  data[385]=PINC;data[386]=PINC;data[387]=PINC;data[388]=PINC;data[389]=PINC;
  data[390]=PINC;data[391]=PINC;data[392]=PINC;data[393]=PINC;data[394]=PINC;
  data[395]=PINC;data[396]=PINC;data[397]=PINC;data[398]=PINC;data[399]=PINC;
  data[400]=PINC;data[401]=PINC;data[402]=PINC;data[403]=PINC;data[404]=PINC;
  data[405]=PINC;data[406]=PINC;data[407]=PINC;data[408]=PINC;data[409]=PINC;
  data[410]=PINC;data[411]=PINC;data[412]=PINC;data[413]=PINC;data[414]=PINC;
  data[415]=PINC;data[416]=PINC;data[417]=PINC;data[418]=PINC;data[419]=PINC;
  data[420]=PINC;data[421]=PINC;data[422]=PINC;data[423]=PINC;data[424]=PINC;
  data[425]=PINC;data[426]=PINC;data[427]=PINC;data[428]=PINC;data[429]=PINC;
  data[430]=PINC;data[431]=PINC;data[432]=PINC;data[433]=PINC;data[434]=PINC;
  data[435]=PINC;data[436]=PINC;data[437]=PINC;data[438]=PINC;data[439]=PINC;
  data[440]=PINC;data[441]=PINC;data[442]=PINC;data[443]=PINC;data[444]=PINC;
  data[445]=PINC;data[446]=PINC;data[447]=PINC;data[448]=PINC;data[449]=PINC;
  data[450]=PINC;data[451]=PINC;data[452]=PINC;data[453]=PINC;data[454]=PINC;
  data[455]=PINC;data[456]=PINC;data[457]=PINC;data[458]=PINC;data[459]=PINC;
  data[460]=PINC;data[461]=PINC;data[462]=PINC;data[463]=PINC;data[464]=PINC;
  data[465]=PINC;data[466]=PINC;data[467]=PINC;data[468]=PINC;data[469]=PINC;
  data[470]=PINC;data[471]=PINC;data[472]=PINC;data[473]=PINC;data[474]=PINC;
  data[475]=PINC;data[476]=PINC;data[477]=PINC;data[478]=PINC;data[479]=PINC;
  data[480]=PINC;data[481]=PINC;data[482]=PINC;data[483]=PINC;data[484]=PINC;
  data[485]=PINC;data[486]=PINC;data[487]=PINC;data[488]=PINC;data[489]=PINC;
  data[490]=PINC;data[491]=PINC;data[492]=PINC;data[493]=PINC;data[494]=PINC;
  data[495]=PINC;data[496]=PINC;data[497]=PINC;data[498]=PINC;data[499]=PINC;
  data[500]=PINC;data[501]=PINC;data[502]=PINC;data[503]=PINC;data[504]=PINC;
  data[505]=PINC;data[506]=PINC;data[507]=PINC;data[508]=PINC;data[509]=PINC;
  data[510]=PINC;data[511]=PINC;data[512]=PINC;data[513]=PINC;data[514]=PINC;
  data[515]=PINC;data[516]=PINC;data[517]=PINC;data[518]=PINC;data[519]=PINC;
  data[520]=PINC;data[521]=PINC;data[522]=PINC;data[523]=PINC;data[524]=PINC;
  data[525]=PINC;data[526]=PINC;data[527]=PINC;data[528]=PINC;data[529]=PINC;
  data[530]=PINC;data[531]=PINC;data[532]=PINC;data[533]=PINC;data[534]=PINC;
  data[535]=PINC;data[536]=PINC;data[537]=PINC;data[538]=PINC;data[539]=PINC;
  data[540]=PINC;data[541]=PINC;data[542]=PINC;data[543]=PINC;data[544]=PINC;
  data[545]=PINC;data[546]=PINC;data[547]=PINC;data[548]=PINC;data[549]=PINC;
  data[550]=PINC;data[551]=PINC;data[552]=PINC;data[553]=PINC;data[554]=PINC;
  data[555]=PINC;data[556]=PINC;data[557]=PINC;data[558]=PINC;data[559]=PINC;
  data[560]=PINC;data[561]=PINC;data[562]=PINC;data[563]=PINC;data[564]=PINC;
  data[565]=PINC;data[566]=PINC;data[567]=PINC;data[568]=PINC;data[569]=PINC;
  data[570]=PINC;data[571]=PINC;data[572]=PINC;data[573]=PINC;data[574]=PINC;
  data[575]=PINC;data[576]=PINC;data[577]=PINC;data[578]=PINC;data[579]=PINC;
  data[580]=PINC;data[581]=PINC;data[582]=PINC;data[583]=PINC;data[584]=PINC;
  data[585]=PINC;data[586]=PINC;data[587]=PINC;data[588]=PINC;data[589]=PINC;
  data[590]=PINC;data[591]=PINC;data[592]=PINC;data[593]=PINC;data[594]=PINC;
  data[595]=PINC;data[596]=PINC;data[597]=PINC;data[598]=PINC;data[599]=PINC;
  data[600]=PINC;data[601]=PINC;data[602]=PINC;data[603]=PINC;data[604]=PINC;
  data[605]=PINC;data[606]=PINC;data[607]=PINC;data[608]=PINC;data[609]=PINC;
  data[610]=PINC;data[611]=PINC;data[612]=PINC;data[613]=PINC;data[614]=PINC;
  data[615]=PINC;data[616]=PINC;data[617]=PINC;data[618]=PINC;data[619]=PINC;
  data[620]=PINC;data[621]=PINC;data[622]=PINC;data[623]=PINC;data[624]=PINC;
  data[625]=PINC;data[626]=PINC;data[627]=PINC;data[628]=PINC;data[629]=PINC;
  data[630]=PINC;data[631]=PINC;data[632]=PINC;data[633]=PINC;data[634]=PINC;
  data[635]=PINC;data[636]=PINC;data[637]=PINC;data[638]=PINC;data[639]=PINC;
  data[640]=PINC;
 
 }}i=0;
 
 //////////////////////// РАЗВЕРТКА //////////////////////////////////////////  
   switch(raz){
   case 0: times=50;sek=1050;fff=0;break;
   case 1: times=20;sek=420;fff=0;break;
   case 2: times=10;sek=200;fff=0;break;
   case 3: times=5;sek=100;fff=0;break;
   case 4: times=2;sek=40;fff=0;break;
   case 5: times=1;sek=19;fff=0;break;
   case 6: times=0.5;sek=7;fff=-9;break;
   case 7: times=0.2;sek=3;fff=4;break;
   case 8: times=0.1;sek=1;fff=12;break;
   case 9: times=0.05;fff=12;break;
   case 10: times=0.02;fff=-57;break;  
   case 11: times=0.010;fff=-57;break;
   case 12: times=0.005;fff=-5;break;
   case 13: times=0.002;fff=5;break;
   }
 
   myGLCD.setColor(0xffff); setka();
 
  if(raz<9){
  i=0;while(i<319){i++; 
 myGLCD.setColor(0,0,0); myGLCD.drawLine(i, 230-data_old[i]*3,i, 230-data_old[i+1]*3);
 myGLCD.setColor(0xF800); myGLCD.drawLine(i, 230-data[i+hh]*3,i, 230-data[i+hh+1]*3);}i=0;}
 
   if(raz==9||raz==10){
  i=0;while(i<319){i++; 
 myGLCD.setColor(0,0,0); myGLCD.drawLine(i, 230-data_old[i]*3,i, 230-data_old[i+1]*3);
 myGLCD.setColor(0xF800); myGLCD.drawLine(i, 230-data[i+hh]*3,i, 230-data[i+hh+1]*3);}i=0;}
 
    if(raz==11||raz==12){
  i=0;while(i<160){i++; 
 myGLCD.setColor(0,0,0); myGLCD.drawLine(i*2, 230-data_old[i]*3,i*2, 230-data_old[i+1]*3);
 myGLCD.setColor(0xF800); myGLCD.drawLine(i*2, 230-data[i+hh]*3,i*2, 230-data[i+hh+1]*3);}i=0;}
 
    if(raz==13){ myGLCD.setColor(0x7FFFC5); myGLCD.print("LOGIC LEVEL",110,90);
      i=0;while(i<640){i++;if(data[i]>30){data[i]=40;}else{data[i]=20;}}i=0;
  i=0;while(i<80){i++; 
 myGLCD.setColor(0,0,0); myGLCD.drawLine(i*4, 230-data_old[i]*3,i*4, 230-data_old[i+1]*3);
 myGLCD.setColor(0x00137F); myGLCD.drawLine(i*4, 230-data[i+hh]*3,i*4, 230-data[i+hh+1]*3);}i=0;} 
 
   i=0;while(i<640){i++;data_old[i]=data[i+hh];}i=0;
  arr_m();
  if(w==1){EEPROM.update(0,raz);
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(0,0,60,12);
  myGLCD.setColor(0xffff);
  // печатаем строку в указанной строке позиции
myGLCD.printNumF(times,3, 10, 0); 
myGLCD.print("mS/DIV ",60,0);  if(raz!=13){myGLCD.print("1 V/DIV ",10,24);}else{myGLCD.print("LOGIC   ",10,24);}
myGLCD.print("OSCILLOSCOPE",200,0);
myGLCD.print("RCL-RADIO.RU ",200,12);
myGLCD.print("Version 0.1 ",200,24);
w=0;}
 myGLCD.setColor(0xffff);if(raz==13){arr_max=63;arr_min=0;}
                         myGLCD.print("Umax ",120,0); myGLCD.printNumF((float)arr_max*5/63,1, 160, 0); 
                         myGLCD.print("Umin ",120,12); myGLCD.printNumF((float)arr_min*5/63,1, 160, 12); 
                         myGLCD.print("Usig ",120,24); myGLCD.printNumF((float)arr_max*5/63-((float)arr_min*5/63),1, 160, 24);
                         if(hold==1){myGLCD.print("HOLD",10,12);if(w2==0){delay(1000);w2=1;}}else{myGLCD.print("AUTO",10,12);}
arr_min=255;arr_max=0;
}
 
void sinn(){
            while(PINC>arr){h0++;if(h0>10000){break;}}h0=0;
            while(PINC>arr-10){h0++;if(h0>10000){break;}}h0=0;
            while(PINC<arr){h1++;if(h1>10000){break;}}h1=0;
          }
 
void arr_m(){
 
  for(i=10;i<255;i++){arr_min = min(arr_min, data[i]);}
  for(i=10;i<255;i++){arr_max = max(arr_max, data[i]);}
  arr=arr_max+arr_min;
  if(arr>30){arr=20;}
  if(arr<20){arr=10;}
  }    
 
  void setka(){ ///// сетка 
if(raz<13){   
  for(y=40;y<240;y=y+40){
  for(x=10;x<320;x=x+10){
myGLCD.drawPixel(x, y);}}}
 
 for(x=48;x<320;x=x+48-fff){
  for(y=40;y<240;y=y+10){
myGLCD.drawPixel(x, y);}}}

Комментарии

  • Здравствуйте. Подскажите пожалуйста марку элементов D1 и D2.

  • Eig:

    Здравствуйте, уважаемый автор данного осциллографа. Я попытался его воспроизвести, но столкнулся с некоторыми трудностями. Прошу пояснить кое-какие детали.
    1. Насколько я понял, на схеме в пунктирной рамочке находится делитель напряжения? Если это так, то ко входу IN припаевается BNC-разъем для подключения осциллографа, а OUT соединяется с IN TTL. Если я не прав, то поправьте меня пожалуйста.
    2. У меня на ноге 19 (ANALOG_IN) TLC5540 сейчас от 43 до 150 мВ. Правильно ли это, или должно быть больше?
    3. На D3-D8 сейчас нули, чего быть, по идее, не должно.

    Есть ощущение, что китаец продал мне дохлую микросхему, но все-таки помогите мне в этом убедиться.

  • liman28:

    1. В пунктирной рамке показан альтернативный делитель напряжения,в основной схеме делитель напряжения уже есть. Подайте на вход импульсное напряжение и резистом в делителе отрегулируйте чувствительность. На экране должна быть осциллограмма импульсов.
    2. На входе IN должно быть напряжение в пределах 2,5 В (макс), если его нет, то подайте напрямую импульсное напряжение которое по амплитуде не должно превышать напряжение питания АЦП. Если импульсы появятся, значить что-то с делителем.
    3. На D3-D8 должно быть импульсное напряжение с частотой 8 МГц, но оно может отсутствовать если на АЦП подано 0В.

    • Eig:

      Спасибо за оперативный ответ. Теперь все понятно — у меня в схеме сразу два делителя (лучше было бы подписать этот момент на схеме для таких как я). Переделаю схему.

  • Eig:

    Выкладываю свою реализацию в kicad
    https://disk.yandex.ru/d/Y5-pCqlBfuo4kA

    Проблемы были из-за двух делителей и забытой дорожки 12 — D9 (CLK). На IN у меня сейчас 0.8 — 1.4 В где-то. Регулировка подстроечником почти ни на что не влияет. Видимо, нужно было оставлять «альтернативный» делитель.
    Что интересно, работоспособна оказалась только библиотека UTFT, предложенная автором. Моя библиотека с бОльшим количеством драйверов не заработала (белый экран). Если кто будет добавлять управление тачскрином, то учтите, что придется переопределять выходы CS и IRQ с помощью этой библиотеки:
    https://github.com/spapadim/XPT2046
    Или вообще использовать эту пару библиотек вместо UTFT:
    https://github.com/PaulStoffregen/ILI9341_t3
    https://github.com/PaulStoffregen/XPT2046_Touchscreen
    По-моему немного нелогично не использовать функцию тачскрина на дисплее с тачскрином. Поэтому я этим когда-нибудь займусь.
    TLC5540I стоил на али около 500 рублей вместе с доставкой, но это не оригинал Texas Instruments, которые давно уже ее не производят. Вроде бы то, что я купил, делают корейцы из Hynix, но у этого клона более узкий корпус (5.5мм шириной) SOP24. В kicad он почему-то называется SO-24.
    Хотелось бы еще на AD9280 нечто подобное сделать. Микросхема стоит копейки, а возможности значительно шире.

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • MCP9800/1/2/3 — высокоточный цифровой датчик температуры

    MCP9800/1/2/3 — высокоточный цифровой датчик температуры

    Высокоточный цифровой датчик температуры MCP9800/1/2/3 компании Microchip Technology Inc выпускается в миниатюрных корпусах SOT-23-5, MSOP-8 и SOIC-8. Может работать с разрешением 9, 10, 11 и 12 бит. Имеет небольшой рабочий ток порядка  200 мкА. Работает в диапазоне температур от -55°C до +125°C. Основное назначение — измерение температуры окружающей среды. Основные …Подробнее...
  • Предварительный УНЧ с регулировкой тембра

    Схема выполнена на сдвоенном ОУ TL072. На А1.1 сделан предварительный усилитель с коэф. усиления заданным отношением R2\R3. R1-регулятор громкости. На ОУ А1.2 выполнен активный трех полосовой мостовой регулятор тембра. Регулировки осуществляются переменными резисторами R7R8R9. Коэф. передачи этого узла 1. Наряженные питания предварительного УНЧ может быть от ±4В до ±15В Литература …Подробнее...
  • Микромощный УМЗЧ на TDA7050

    Микромощный УМЗЧ на TDA7050

    На ИМС TDA7050 можно собрать простой усилитель для наушников. Схема усилителя на TDA7050 практически не содержит внешних элементов, проста в сборке и в настройке не нуждается. Диапазон питания усилителя от 1,6 до 6 В (3-4 В рекомендуемое). Выходная мощность в стерео варианте 2*75 мВт и в мостовом варианте включения 150 мВт. Сопротивление …Подробнее...
  • ФНЧ для сабвуфера

    ФНЧ для сабвуфера

    На рисунке показана простая схема ФНЧ для сабвуфера. В схеме используется ОУ ua741. Схема достаточно проста, имеет низкую стоимость и не нуждается в настройке после сборки. Частота среза ФНЧ 80 Гц. Для работы ФНЧ для сабвуфера необходим двухполярный источник питания ±12 В.Подробнее...
  • Типы данных (Arduino)

    Типы данных (Arduino)

    При программировании Arduino применяются различные типы данных, ниже показан список основных типов данных: boleand занимает 1 байт, принимает значение от 0 до 1, логическая переменная может принимать значение true (1) b false (0) char занимает 1 байт, принимает значение от -128 до 127, хранит номер символа из таблицы символов ASII …Подробнее...