Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1317 / 1318
(#) asch válasza Skori hozzászólására (») Júl 25, 2023 /
 
Én használtam FRAM-ot, a fejlesztés során sem és a "piacról" sem kaptam visszajelzést hibáról. Közvetlen rálátásom nincs az eladott termékekre, de szerintem tudnék róla, ha baj lett volna az FRAM-mal.
(#) KoblogPerGyok válasza sdrlab hozzászólására (») Szept 15, 2023 /
 
Szia!

String kezelése nem jó sehol, kivéve PC. Okozhat gondot, de nem látom át ezt a problémát.

Ami eszembe jutott:

Volt egy kolléga tök ilyen gondokkal, csak Arduino-val. Nála simán okozott ilyen problémát az, hogy melyik IDE verzióban építette fel a végső kódot. (verziószám ÉS az, hogy Windows/Linux sem volt mindegy) Az IDE optimalizációja, vagy a BUG-ja okozott ilyen problémát. Az Arduino-ban kicsit kellemetlen módon, de az optimalizáció mértékét be lehet állítani, vagy ki is lehet kapcsolni. Az MPLAB-ban nem merültem el ennyire, de mint ötlet felmerült bennem, hogy nem váltottál IDE-t?

Persze ez csak akkor lehet igaz, ha sok hibátlanul megy, csak utólag kezdtek hibásan működni.

Csak egy tipp.
A hozzászólás módosítva: Szept 15, 2023
(#) torokj hozzászólása Szept 19, 2023 /
 
Üdv,
Kaptam egy PIC hőmérő panelt,ismerős valakinek?
Milyen szenzorral működhet vajon?Valószínúleg analóg a helitrimmer és a BC tranzisztoros bemenet miatt.Szoftvert is keresek hozzá,üres a PIC,nem csinál semmit.Köszönök minden segítséget,most kezdtem a témával foglalkozni.
torokj
(#) Hp41C válasza torokj hozzászólására (») Szept 19, 2023 /
 
16C711 csak egyszer programozható, valószínűleg a kiolvasásvédelem be van benne kapcsolva. 16F716 -tal kellene kiváltani.
(#) torokj válasza Hp41C hozzászólására (») Szept 19, 2023 /
 
Üdv,
Köszönöm szépen a választ.Szoftver ügyben hol kutakodjak?
(#) Bakman válasza torokj hozzászólására (») Szept 19, 2023 /
 
Ehhez a kapcsoláshoz keresel szoftvert vagy úgy általában, mikrokontrollert programozni?
(#) torokj válasza Bakman hozzászólására (») Szept 20, 2023 /
 
Szia,
Ehhez is,általában is.Most kezdtem ismerkedni a PIC-ekkel.
torokj
(#) Bakman válasza torokj hozzászólására (») Szept 20, 2023 /
 
Kezdőknek való téma: PIC kezdőknek.

Ha a programozási alapok megvannak (pl. tudod mi a különbség a 0xA2 és a 0b10100010 között, mire jó a bináris "ÉS" kapcsolat, mit ad vissza a modulo függvény), akkor inkább LED villogtatással kezdj, ne egy ilyen hőmérővel.
(#) KoblogPerGyok hozzászólása Okt 15, 2023 /
 
Sziasztok!

Kénytelen vagyok dsPIC33FJ-t PC-re kötni. Itthon van egy a csatolt képen látható USB modulom. Elvileg ez ESP01 programozó akart lenni, de gondolom USB to TTL-ként is használhatom. A PIC-nek van megfelelő mennyiségű 5V toleráns lába, ez nem gond. Re-mapping-el megoldható az RX/TX és a másik két láb is. Redy, stb.

De!

Tudja valaki, hogy ennek milyen a lábkiosztása? Tapasztalatok? Működik ez sima USB to TTL-ként?

Köszönöm!
(#) bbatka válasza KoblogPerGyok hozzászólására (») Okt 15, 2023 /
 
A PC-vel szerintem össze tudod kötni ezzel a dsPIC-et. Nem hiszem hogy lesz probléma vele. A lábkiosztást nem tudom, de én a Google képekre keresnék rá. Vagy a nyomtatott áramkörén követném vissza.
(#) KoblogPerGyok válasza bbatka hozzászólására (») Okt 15, 2023 /
 
Valamit már találtam, elvileg a 3.3V megvan, ezek szerint az RX,TX is megvan. A gondom most már az, hogy a PIC máshonnan kapná a feszt, nem innen, ekkor hgyan kell összekötni ezzel. A közös GND nem biztos, hogy jó lenne. A PIC egy dugasztápból 3.3V stabilizátorral van meghajtva, ez meg az USB-ről állítja elő a 3.3V-ot. RX, TX fesz szintje 3.3V, nem tudom menne ez így, vagy optocsatolóval le kellene választani, de ekkor az opto miatt igen lassú lehet az adatátvitel.... Mármint ami nekem itthon van.
Szóval simán mehetne a két eszköz két tápról? Eddigi tapasztalataim szerint nem. Logikai analizátor sem ment rendesen, ha nem ugyanaz a táp GND-je volt rákötve, mint ami előállította ajelszinteket.
(#) bbatka válasza KoblogPerGyok hozzászólására (») Okt 15, 2023 / 1
 
A GND-nek közösnek kell lennie. A kapcsolóüzemű tápegységek okozhatnak problémát ha galvanikus kapcsolatba kerülnek a GND-n keresztül a PC-vel. Használj hozzá hagyományos trafó tápellátást vagy a dugasz tápnál leválasztó transzformátort.
Vagy készíts te hozzá egy kapcsolóüzemű tápegységet. Galvanikus független szekunderrel.
A hozzászólás módosítva: Okt 15, 2023
(#) KoblogPerGyok válasza bbatka hozzászólására (») Okt 15, 2023 /
 
Sajnos a trafót már nem tudom beilleszteni, kész van az áramkör, ami előállítja az opampoknak és a rádiónak a 12V-ot, 5V-t és 3.3V-ot. Az USB később jött be a képbe sajnos...

Ilen van itthon:

Opto csatoló

Arra gondoltam, hogy az RX/TX-eket ezzel leválasztom. Adatlap szerint a legrosszabb esetben a Falling, rising 18 us. Ezzel számolva elég lassú lehet az adatátvitel, de tévedhetek is. 20+20 esés és emelkedéssel, 40 tartással 80 us-körül lehet első tippre a négyszögjel a legrosszabb esetben. Ez 12500Hz, azaz a Baud is ennyi lehet max a legrosszabb esetben.

Hát ki kell próbálnom, de ehhez megint forraszthatok rendesen.
(#) KoblogPerGyok válasza bbatka hozzászólására (») Okt 15, 2023 /
 
Pillanat.

Ha nem dugasztról, hanem sima trafóról hajtom meg, és azokkal pluszban előállítok +12V-ot az eddigi áramköreimnek, és a többinek, közte a PIC 3.3V-ot is, akkor ezt rá lehet kötni a laptop USB-re? Ekkor nem lesz gond erzzel?

Trafó->egyenirányítás->12V stab és a többi stab is erről, majd PIC, aminek az RX,TX kivezetése erre csatlakozik, Az USB TTLpedig a PC-re, ez mehetne? Mert akkor pár forrasztással megoldható a dolog, sőt kevesebbel, mit az opto.
(#) bbatka válasza KoblogPerGyok hozzászólására (») Okt 15, 2023 /
 
Vannak ennél gyorsabb optok is. 6N136
(#) bbatka válasza KoblogPerGyok hozzászólására (») Okt 15, 2023 /
 
Eddig is a sima trafót javasoltam. A lényeg hogy a laptop teste valószínűleg nincs leválasztva a 230V hálózati földről galvanikusan. Ahogy a PC-k nél sincs. Így ha az USB-re rádugunk valamit, akkor föld hurok alakulhat ki. Feszültség különbség van a PC teste és a táplált áramkör teste között. Abban az esetben ha nincs galvanikusan leválasztva a hálózatról az áramkör. A kapcsoló üzemű tápegységeknél egy kondenzátorral vissza szokták csatolni a szekunderről a feszültséget a primerre. Nem tudom talán valami hidegítés vagy mi.
(#) helektro válasza KoblogPerGyok hozzászólására (») Okt 15, 2023 /
 
A PIC-et miről programod? A PC-ről? És milyen eszközzel?
(#) KoblogPerGyok válasza helektro hozzászólására (») Okt 15, 2023 /
 
A terv, ami már egy másik lapon működik egy szintén dsPIC-el a következő: A lapon van ICSP kellő módon kialakítva. A lapon van az az áramkör is ami +12V-ról működik és szolgáltatja azt, amit mintavételeznem kell. A PIC eltárolja az adadtokat, majd tovább küldi a PC-nek. Azaz a baj ott van, hogy ez a +12V-ról menne és innen áll(na) elő a +5V másnak és a 3.3V a PIC-nek. Itt álltam le, mert ekkor a PIC külső tápról kapja a naftát, és ha az USB TTL-ről nem is kapna semmit sem, akkor gond lehet az RX,TX jelszintekkel. Ilyen már volt, Arduino elszakadt külső táp kábele, ezért átállt az USB tápra. A logikai analizátor ki is akadt kicsit. De ott volt más gond is, nem csak a szakads miatt volt gond. De a lényeg, az analizátornál sem mindegy, hogy a logikai GND lába mire van kötve. Volt olyan hiba is, hogy az USB GND-je volt rákötve, míg a jel máshonnan volt. Ilyen hibát szeretnék elkerülni, mielőtt forrasztanék agyba főbe.
(#) KoblogPerGyok hozzászólása Okt 29, 2023 /
 
Üdv!

Minden úgy működik, ahogy kell, de tényleg. UART, SPI-RAM stb. is simán megy a sok buktató ellenére. A különböző GND probléma is meg van oldva. Sok szimulációs hiba/bug és spi trükkös megoldással sikerült sok-sok problémát megoldani, olyanokat is, amikre az adatlap sem tér ki. DE MEGINT van egy ilyen...

Kezdek belebolondulni, hogy semmi sem úgy megy, mint ahogy azt az ember elgondolná. ADC-t szeretnék csinálni az alábbi feltétlekkel:

-Vref+ A0
-Vref - A1
-Jel + An4
-Jel - A5 -de errenincs szükség dsPIC33FJ128M802-nél, mert az adott beállítások mellett nem tudja, a Vref- -t használja, ha jól tudom.

-Nincs Scan, csak 1 csatorna kell, 16 órajel 1 mintára, csak ezt használja, nincs interrupt, mert a timer indítja, amit én paraméterezek fel. A gond már ott kezdődik, hogy sdPIC33FJ32M202-t lehet szimulálni, de az is kétséges sokszor, mert volt olyan, hogy a logikailag hibás SPI-vel simán ment, a helyessel meg kerülőkkel szóval...
Itt a gond, amit bármilyen beállítást alkalmazok sem jó. (persze csak azt az egyet nem próbáltam, ami jó lenne!!!!

Ha ebből a while-t kiszedem, és sok nop-al helyettesítem, akkor kapok sok-sok nullát, ami ugyan nem jó, de előrelépés a semmihez képest. While-al semit semkapok, mert soha nem teljesül a feltétel, ez miatt minden más funkció is megáll, amit a main loop-ból hívnék.... A baj az, hogy a DONE soha nem lesz 1. Miért? Melyik beállítás miatt nem lesz ez soha 1? Ezt is a netről kaptam, valakinél így megy, kap eredményeket is. Ebben az esetben két dolog lehet. 1 ha jó minden, akkor a szimuláció nem jó az eltérő procik miatt. 2 nem jók a bellításaim sem.

  1. unsigned int readADC(void) {
  2.     // Start conversion
  3.     //Ha ezeket bennthagyom, és  a while-t kiveszem, akkor megy, de nem mér semmit
  4.     //Csak nullákkal tér vissza, amit okozhat a helytelen init is és az eltérő proceszorok is.
  5.     __builtin_nop();
  6.     __builtin_nop();
  7.     __builtin_nop();
  8.     __builtin_nop();
  9.     __builtin_nop();
  10.     // Clear the DONE bit
  11.     AD1CON1bits.DONE = 0;
  12.     AD1CON1bits.SAMP = 1;
  13.     // Wait for conversion to complete
  14.     //while (!AD1CON1bits.DONE);
  15.     __builtin_nop();
  16.     __builtin_nop();
  17.     __builtin_nop();
  18.     __builtin_nop();
  19.     __builtin_nop();
  20.     // Return the result
  21.     return ADC1BUF0;
  22. }


Itt van a harmadik beállítás.

  1. void init_ADC_2(void)
  2. {
  3.     TRISAbits.TRISA4 = 1; // Analóg jel ide jön be, input
  4.     ADPCFGbits.PCFG4 = 0; //Analógra állítva
  5.    
  6.     AD1CON1bits.FORM = 0; // Data Output Format: integer (Signed Fraction - Q15 format)
  7.     AD1CON1bits.SSRC = 0; // 000 = Clearing sample bit ends sampling and starts conversion
  8.     AD1CON1bits.ASAM = 0; // ADC Sample Control: Sampling begins immediately after conversion
  9.     AD1CON1bits.AD12B = 0; // 10-bit ADC operation
  10.     AD1CON1bits.SIMSAM = 1; // Simultaneous sampling for multiple channels
  11.     AD1CON2bits.CHPS = 0b10; // s CH1, CH2, CH3, because CH2 is the one you are using.
  12.     AD1CON2bits.CSCNA = 0; // Do not scan inputs
  13.     AD1CON2bits.VCFG = 0; // Use voltage reference Vss/Vdd
  14. //Eleve ezt is be  kell majd állítani jóra, de addig eljutni....
  15.  
  16.     AD1CON2bits.ALTS = 0; // Always use input  for channel A
  17.     AD1CON2bits.BUFM = 0; // Always start filling at buffer 0
  18.     AD1CON3bits.ADRC = 0; // ADC Clock is derived  Systems Clock
  19.     AD1CON3bits.SAMC = 0; // Auto Sample Time = 0*Tad
  20.     AD1CON3bits.ADCS = 2; // ADC Conversion Clock Tad = Tcy * (ADCS + 1) = (1 / 40M) * 3 = 75ns (13.3MHz)
  21.  
  22.     // ADC Conversion Time for 10-bit Tc = 12 * Tad = 900ns (1.1MHz)
  23.     AD1CON1bits.ADDMABM = 1; // DMA buffers are built in conversion order mode
  24.     AD1CON2bits.SMPI = 0; // SMPI must be 0
  25.  
  26.     AD1CON4bits.DMABL = 0; // Only 1 DMA buffer for each analog input
  27.  
  28.    
  29.         //AD1CHS0/AD1CHS123: A/D Input  Register
  30. //    AD1CHS0bits.CH0SA = 0; // MUXA +ve input ion (AIN0) for CH0
  31. //    AD1CHS0bits.CH0NA = 0; // MUXA -ve input ion (Vref-) for CH0
  32. //Az MC802-nél nincs külön analóg bemenet negatívra lehet?ség, a ref- haszálhatom    
  33. //01 = CH1, CH2, CH3 negative input is VREF-
  34. //00 = CH1, CH2, CH3 negative input is VREF-  
  35.     AD1CHS123bits.CH123NB = 0; // MUXA -ve input ion (Vref-) for CH1, CH2,CH3
  36.    
  37. //CH123SB: Channel 1, 2, 3 Positive Input  for Sample B bit
  38. //If AD12B = 1:
  39. //1 = Reserved
  40. //0 = Reserved
  41. //If AD12B = 0:
  42. //1 = CH1 positive input is AN3, CH2 positive input is AN4, CH3 positive input is AN5
  43. //0 = CH1 positive input is AN0, CH2 positive input is AN1, CH3 positive input is AN2
  44. //Mert az analg jel AN4-re csatlakozik    
  45.     AD1CHS123bits.CH123SB = 1; // MUXA +ve input ion (AIN0) for CH1
  46.    
  47.    
  48. //    // Az AN4 lábat válaszd ki pozitív referenciaként
  49. //    AD1CHS0bits.CH0SA = 4; // AN4 láb kiválasztása
  50.  
  51.     IFS0bits.AD1IF = 0; // Clear the A/D interrupt flag bit
  52.     IEC0bits.AD1IE = 0; // Do Not Enable A/D interrupt
  53.  
  54.     AD1CSSLbits.CSS4 = 1; // Scan  AN4 only
  55.     AD1PCFGLbits.PCFG4 = 1; // Only AN4 in analog input mode
  56.  
  57.     AD1CON1bits.ADON = 1; // Turn on the A/D er
  58. }


Ezek egyelőre csak tesztek lettek volna, de a readADC()- ben a while miatt soha, egyik sem megy, ezért nem tudom az init-ben sem pontosítani a beállításokat.

Van valaki aki ezen már sikeresen végigment?
Proteus 8.1, MplabIDE 5.35, dsPIC33FJ128MC802.

Köszönöm a segítséget előre is!
(#) KoblogPerGyok válasza KoblogPerGyok hozzászólására (») Okt 29, 2023 /
 
Lassan, de bizoytalanul:

  1. unsigned int readADC(void) {
  2.     // Start conversion
  3.     //Manuális módban a SAMP -nak változnia kell és meg is kell várni
  4.     AD1CON1bits.SAMP = 1;
  5.     while(!AD1CON1bits.SAMP);
  6.     AD1CON1bits.SAMP = 0;
  7.     while(AD1CON1bits.SAMP);
  8.     while(!AD1CON1bits.DONE);    
  9.     return ADC1BUF0;
  10. }


Ilyenre gondoltam és lőn.
(#) Lucifer hozzászólása Okt 31, 2023 /
 
Sziasztok,

nem tudja valaki hogyan lehet az ipecmd-nek olyan hex fájlt megadni a -F paraméterrel Linux-on?

Amit próbáltam:
  1. -F"/tmp/foo bar.hex"
  2. "-F/tmp/foo bar.hex"
  3. -F'/tmp/foo bar.hex'
  4. '-F/tmp/foo bar.hex'
  5. -F/tmp/foo\ bar.hex


Az elérési útból szóköz kiszedése nem opció (gyártási dolgok strutúráltan vannak egy mapparendszerben elhelyezve)
A hozzászólás módosítva: Okt 31, 2023
(#) Skori válasza Lucifer hozzászólására (») Okt 31, 2023 /
 
Az F és az idézőjel közé nem kellene szóköz? Idézőjelek és minden egyéb nélkül sem jó? Esetleg \0x20 vagy \20 vagy \32 a szóköz helyén?
A hozzászólás módosítva: Okt 31, 2023
(#) Lucifer válasza Skori hozzászólására (») Okt 31, 2023 /
 
Nem, próbáltam úgy is. A kódot megnézve ez ilyen elcseszett microchip-es divat, hogy nem használnak semmi argumentum kezelő libet, hanem kézzel parsolnak mint az állatok...

Ezek amúgy az argumentumok:
https://gist.github.com/martonmiklos/9f1b05236cc4a3ea9f3838a48da8f298
(#) Skori válasza Lucifer hozzászólására (») Okt 31, 2023 /
 
Esetleg egy rövid parancsfájl, ami készít egy ideiglenes másolatot a fájlról, elvégzi azzal a feladatot az ipecmd, majd törli az ideiglenes fájlt?

Továbbgondolva a parancsfájl is megírható úgy hogy kezeljen paramétereket - de azt már jól...

Mégtovább gondolva (bár ennyire nem ismerem a linuxot) esetleg környezeti változóba tenni a fájlnevet, és azt átadni az F után paraméterként (szintén parancsfájlban/shell scriptben megoldva)?
A hozzászólás módosítva: Okt 31, 2023
(#) Lucifer válasza Skori hozzászólására (») Okt 31, 2023 /
 
Nyilván meg tudom oldani így csak alapból nem szeretem az ilyen tákolásokat...

Most a visszafejtett java kódot nézegetem, hogy mit baltáztak el az indiánok.
Ha akarnál sírni/nevetni akkor erre tessék:
https://github.com/martonmiklos/ipecmd/tree/master

A környezeti változós trükk jó ötlet, de nem jó sajnos az sem:
  1. mm@P15:/tmp/ipecmd/commandline$ export filepath="/tmp/foo bar.hex"
  2. mm@P15:/tmp$  cd /opt/microchip/mplabx/v6.15/mplab_platform/mplab_ipe
  3. mm@P15:/opt/microchip/mplabx/v6.15/mplab_platform/mplab_ipe$ ./ipecmd.sh -OV -P16F1718 -F$filepath -TPPK4
  4. Hex file not found.
  5. mm@P15:/opt/microchip/mplabx/v6.15/mplab_platform/mplab_ipe$ echo $filepath
  6. /tmp/foo bar.hex
  7. mm@P15:/opt/microchip/mplabx/v6.15/mplab_platform/mplab_ipe$ ./ipecmd.sh -OV -P16F1718 -F$filepath -TPPK4
  8. Hex file not found.
A hozzászólás módosítva: Okt 31, 2023
(#) Skori válasza Lucifer hozzászólására (») Okt 31, 2023 /
 
Egy email-t esetleg megpróbálhatsz küldeni a fejlesztőnek... hátha javítja, addig meg marad a tákolás. Ilyenkor hasznos egy ramdiszk, én win alatt is gyakran használom sokmindenre. Ráadásul van olyan ami mindíg csak annyi memóriát foglal, amennyi fájlt tárol éppen. Még filmet is nézek néha így - átmásolom a NAS-ról a RAMdiszkre és onnan megy a lejátszás. Igy nem ráncigálja folyamatosan sem a hálózatot sem a drájvot, bár SSD esetén ez már nem probléma.
(#) asch válasza Lucifer hozzászólására (») Okt 31, 2023 / 1
 
A Javába belenéztem, nem túl szép, de szerintem az jól kezeli a fájlnévben a space-t. Ha visszafejtett, akkor az simán lehet, hogy eredetiben sokkal szebb volt a kód, szerintem visszafejtett programkódot nem illik kritizálni. Pláne, hogy visszafejteni sem volna szabad talán. Nem a ./ipecmd.sh szkript töri kettőbe? Abban mi van? Az egy szkript, könnyen javítható lehet.
A hozzászólás módosítva: Okt 31, 2023
(#) Lucifer válasza asch hozzászólására (») Okt 31, 2023 /
 
Idézet:
„Ha nyílt forrású a program, akkor akár meg is lehetne javítani.”


Nem nyílt forrású, de ha lehet akkor megpatchelném inkább.

Idézet:
„Nem a ./ipecmd.sh szkript töri kettőbe? Abban mi van?”

Dauh bingó, jövök egyel!!!

Betettem a tartalmát a bash-ba és így meg. A $@ átpasszolása volt a ludas:

  1. mm@P15:/opt/microchip/mplabx/v6.15/mplab_platform/mplab_ipe$ export here=`dirname $0`
  2. export mplabx_dir=$here/..
  3. export netbeans_dir=$mplabx_dir
  4. export ipecmd_jar=$mplabx_dir/mplab_ipe/ipecmd.jar
  5.  
  6. # obtain jdkhome from mplab_ipe.conf
  7. . ../etc/mplab_ipe.conf
  8.  
  9. export jvm=$jdkhome/bin/java
  10. mm@P15:/opt/microchip/mplabx/v6.15/mplab_platform/mplab_ipe$ $jvm -jar ipecmd.jar -OV -P16F1718 -F/tmp/foo\ bar.hex -TPPK4
  11. DFP Version Used : PIC12-16F1xxx_DFP,1.6.241,Microchip
  12. Programmer not found.
A hozzászólás módosítva: Okt 31, 2023
(#) asch válasza Lucifer hozzászólására (») Okt 31, 2023 / 1
 
Bocs, közben felfogtam, hogy ez visszafejtés és alászerkesztettem. Mindegy, a lényeg, hogy működik!
(#) Lucifer válasza asch hozzászólására (») Nov 2, 2023 / 1
 
Az utókor kedvéért: a legegyszerűbb fix a problémára az ipecmd.sh.-ban idézőjelek közé tenni a @$-t ily módon:

  1. 11c11
  2. < $jvm -jar $ipecmd_jar $@
  3. ---
  4. > $jvm -jar $ipecmd_jar "$@"
Következő: »»   1317 / 1318
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem