microcontroller pin-compatibil

Marius '95

troubleShooter
Daca mai tineti minte, acum cativa ani mi-am construit un numarator de celule: https://xf.ro/threads/programare.5289/post-202828
Functioneaza perfect. Problema este ca am devenit atat de dependent de el la serviciu incat, daca se strica, va fi nasol rau. Imi trebuie un backup.

Am gasit pe aliexpress un calculator DYI. Ii trebuie un buzzer in plus, in rest are tot ce-i trebuie.
Nu-mi place cipul: iap15w413as. Este un 8051. M-am uitat un pic pe documentatie si e absolut horror la programat.
Imi trebuie un cip compatibil la pini (practic, doar GND si VCC, ca restul sunt doar GPIO), cu mai mult flash pentru program si NU 8051.
Cum caut?
 
Nu exista clona de clona de IC-uri dubioase implementata in alta arhitectura. Daca era 8051 original (40 pini) mai aveai niste sanse. dip28 narrow e oricum un socket destul de rar. Probabil e mai simplu sa pui o placa de adaptare (custom) sau fire de la controller-ul preferat la soket-ul ala. Cel mai la indemana ar fi sa iei o placa completa arduino mini/pro mini de 3.3v la care ii faci adaptare de pini cu fire. Cum e kit, poti sa lipesti si direct la nevoie, fara sa mai treci prin socket. Depinde si cati pini foloseste dracia din I/O.
 
Adaptare cu fire pot face, dar nu stiu daca mai intra in carcasa aia superba. Carcasa mea taiata cu traforajul arata ca naiba. Era unul din motivele pentru care as fi preferat un kit.
Placa adaptoare custom - de unde, cum? Nu am comandat niciodata placi si nici scheme pentru ceva custom nu am facut vreodata.

Foloseste multi pini. 11 pentru display, si cred ca 9 pentru tastatura (matrix 5+4).

PS: Si daca m-as chinui sa rescriu programul pt. 8051, cipul ala pare sa fie OTP. Mi-ar trebui 50 de buc. numai pentru trial&error.
 
Last edited:
Arduino pro mini e foarte mic, practic are aceeași lungime ca iapxxx, și e foarte plat dacă nu-i pui pini (mai plat decât un DIP cu socket). Carcasa pare destul de încăpătoare pe-acolo, între ecran și pcb e ceva spațiu. Doar să îți ajungă I/Os, că sunt un pic mai puține, din poze nu se vede foarte bine câte folosește calculatorul.

1704877552182.png 1704877700035.png

La ce m-aș mai uita ar fi dacă drăcia are buton de power off fizic. Pentru că pare un fel de jucărie la care trebuie să-i schimbi săptămânal bateriile - clar n-aș folosi un display LCD inversat (care are nevoie de backlight ca să se vadă) într-un device alimentat din CR2032. Probabil backlight-ul consumă 80% din tot aparatul, ceea ce mă face să cred că nu s-au gândit cine știe cât la eficiență în general - standby power etc. Poate ar fi mai simplu să-i pui o mufă USB.
 
In mod sigur ii pun mufa USB.
Nu-mi ajung gpio-urile. Jucaria aia e prea mica. Posibil sa ajunga daca pun LCD-ul in modul cu 4 linii de date in loc de 8. Se va complica muuult programul.
 
Doar dacă o alimentezi separat. Altfel ia 5V de pe USB. Dar trebuie văzut și dacă restul de componente merg ok la 5V i/o.
 
Am lipit componentele. Cam asta e spatiul disponibil.
Vanzatorul de pe Aliexpress mi-a zis ca se potriveste AT89C52, dar teapa, nu se potriveste.
 

Attachments

  • IMG_20240616_112759.jpg
    IMG_20240616_112759.jpg
    149.4 KB · Views: 6
  • IMG_20240616_112748.jpg
    IMG_20240616_112748.jpg
    159.8 KB · Views: 7
  • IMG_20240616_112907_crop.jpg
    IMG_20240616_112907_crop.jpg
    319.1 KB · Views: 5
Tranzistorii pot fi mutați mai încolo la nevoie (fire prelungite și băgați în zona asta, sau cel puțin aplatizați în cealaltă direcție, și atunci faci mai mult loc.

1718534227340.png
 
Mi-a sosit acel Jade Studio Nano+ si am mai luat si un Jade Studio Magma Splash (STM32), just in case ca nu ma descurc cu 8bit. Acum, daca stau mai bine sa ma gandesc, cred ca o sa incep direct cu Magma Splash.

CalcSchematic.jpg

Asta e schema calculatorului. La partea de alimentare n-am inteles mare lucru si am nevoie de un pic de ajutor:
1) Pot sa conectez 5V de la devboard la 5V de la calculator? Adica sa fac un bypass al alimentarii calculatorului?
2) Butonul de power al calculatorului (S4) n-o sa faca probleme?
3) SW pare sa fie un software-off? Poate fi lasat neconectat? Daca nu, atunci la ce il conectez?
4) RX pare sa fie un reset?

5) O alta idee ar fi sa dezlipesc tot de pe partea de alimentare, sa las doar C4 eventual, sa conectez +5V direct la P1, iar P1 sa il conectez la o mufa de alimentare pe carcasa, ca sa nu mai frec usb-ul dupa ce termin cu programarea?
Multumesc.
 
Last edited:
Ce e acolo cu RX și SW e o implementare de power on (cu un posibil auto power off) cu consum mic în standby (pentru că în standby microcontroller-ul nu e alimentat). Q1 e pornit (adică ai tensiune pe +5V) cât timp pe baza lui (unde e R1) ai 0V. Când apeși S4 asta faci, forțezi acel 0V și pornești alimentarea microcontroller-ului. După care imediat microcontroller-ul bagă tensiune pe SW și pornește Q2, care întreține acel 0V pe baza Q1, deci microcontroller-ul va fi pornit cât timp ai tensiune pe SW. Ca să facă (auto) power off, microcontroller-ul pune SW pe 0V și se închide alimentarea.

RX e input în microcontroller (probabil cu un pull up intern) și detectează când apeși S4 în timp ce calculatorul e pornit (pentru power off). Nu are efect asupra circuitului de alimentare direct, dar e pus la ground atunci când apeși S4 și e detectat de software (că e pin cu interrupt). Iar software-ul atunci când detectează RX pe 0 trece SW pe 0 și întrerupe alimentarea microcontroller-ului (complet).

Întrebarea e: mai vrei să folosești calculatorul pe baterii, sau nu?
Dacă vrei, atunci soluția existentă poate funcționa ok, bagi alimentarea de la devboard pe +5V și scoți o baterie când folosești USB (cea mai simplă soluție, altfel ar trebui să mai schimbi un pic schema). Implementezi partea de power on/off în software (adică SW se leagă la un pin de output și îl pui pe on când bootează microcontroller-ul, iar RX se leagă la un input, preferabil cu întrerupere, și când trece la 0 îl pui pe SW pe 0). Dacă vrei doar alimentat la USB, atunci renunți la tot, dezlipești Q1 și Q2 (abia faci mai mult loc în carcasă) și ai scăpat.
Vezi că sursa de pe placă (7550-1) dă maxim 100mA. Dacă vrei să folosești mufă externă poți lega direct alimentarea externă la VIN de pe Jade, merge până pe la 15V.

C4 e ok unde e indiferent de metoda de alimentare aleasă.

Vezi că Magma Splash nu e compatibil cu 5V.
 
Last edited:
In specs zice ca e 5V tolerant, mai putin 2 GPIO-uri. Ma astept ca display-ul sa accepte si 3.3V, dar o sa verific.

Multumesc pentru explicatii.
Nu vreau sa folosesc bateriile - dezlipesc toate alea.
O idee buna cu VIN, dar totusi cred ca vreau alimentator 5V ca e mai banal. Pun o mufa USB-B cum are actualul numarator.
 
Din schema Jade pare ok să legi 5V la pinul 4 pentru alimentare. Și atunci îți rămâne doar ecranul de alimentat de acolo, tai toată partea de alimentare curentă și ai rezolvat - de fapt ai doar ecranul de alimentat în afară de Jade.
 
Am vrut azi sa ma apuc de treaba si am constatat ca n-am cu ce sa compilez pentru MCU-urile alea. Keil uVision cu care am programat LPC2138, are niste STM-uri si niste ATMega, dar nu astea, iar in Arduino IDE trebuie sa aleg intai board-ul, care nu-i in lista, si oricum nu cred ca merge sa programez ceva bare-metal folosind porcaria aia. Posibil sa mearga cu gcc, dar tutorialele sunt ... lipsa si nici macar un header cu adresele registrilor n-am gasit.
Help?
 
Asta nu-i atitudinea corectă. Le poți trimite un e-mail cu "cum fac" dar nu în modul tău obișnuit de a enerva oamenii :D
 
Ei, nu e problema noastră că Marius încearcă mereu să fie altfel. Eu nu înțeleg cum nu s-a apucat încă de VHDL sau Verilog, că ăsta e următorul nivel.
 
Back
Top