Toon posts:

PCB design met microcontroller

Pagina: 1
Acties:

  • joeyl94
  • Registratie: Oktober 2014
  • Laatst online: 08:34

joeyl94

Probleem'n? Poar neem'n!

Topicstarter
Hey Tweakers!

Ik hoop dat jullie mij het één en ander kunnen uitleggen of informatie kunnen leveren m.b.t. pcb design met een microcontroller. Ik heb inmiddels meerdere simpele pcb's ontworpen voor mijn zelf ontworpen sim racing stuurtjes. Deze werden allen aangedreven door een Arduino Pro Micro. Nu wil ik alleen een stapje verder gaan en een bordje ontwikkelen met een microcontroller.

Ik heb mezelf inmiddels iets wat ingelezen alleen wordt het me online in het Engels vaak wat te moeilijk als het gaat om stroom schema's en regulators etc. Mijn Engels is wel goed maar dit gaat me vaak net te ver. kan iemand mij uitleggen wat er naast de microcontroller nodig is om een werkende pcb te ontwikkelen die een 4.2"scherm, push buttons input, rotary encoders input en led lampjes aansturing kan communiceren met mijn computer? Ik ben niet vies om het te leren, alleen hoop ik dat iemand mij op weg kan helpen.

Ik heb deze microcontroller op het oog. Deze zou beschikken over een usb controller waardoor die als het goed is verbinding met mijn computer mogelijk maakt.

De pcb moet 10x push button, 2x microlever (same werking als push button), 4x rotary ec11 encoder, VoCore 4.2"scherm en 18 leds aansturen.

Iracing Profiel - Twitch - Youtube


  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 26-09 22:03

SA007

Moderator Tweaking
Ik zocht op die microcontroller en 'schematic' om te kijken wat er al te vinden is aan schema's met die microcontroller.

En vond deze tutorial:
https://www.pcbway.com/bl...icrocontroller_Board.html

Denk dat die al een hele hoop vragen beantwoord.

Het is niet simpelste microcontroller om een pcb voor te tekenen, vooral omdat alles 3.3v is en veel 5v verwacht, maar goed te doen.

Klok is stuk :(


  • SG
  • Registratie: Januari 2001
  • Laatst online: 07:12

SG

SG surft naar info hardewaren

Wat belangrijk is is hoeveel io pinnen je nodig hebt en 18 led aansturen met STM32F0 met grof 32 pinnen is te weinig. Naast dat elke pin meerdere functies gezet kan worden maar beperkt is in welke combinatie toegestaan zijn. Zul je de STM cube software moeten gebruiken om onderzoeken of bepaalde pin functie combinatie toegestaan is.
Je hebt de nodige led output 18 maar ook veel input naast pin groep om display aan te drijven.
Daar zijn verschillende pin groepen maar ook protocolen nodig dedicated of spi i2c in hardware.

Dan zul je stm32 moeten kieze met in meer in de 100 pinnen ook ene met display ondersteuning en ook of ADC gaat gebruiken. Ook is handig om stm32 en display combi te vinden waar anderen al sucsesvol mee waren. Naast of F0 48mhz wel krachtig genoeg is. F4 of F7

Pinnen minstens
Usb
18 led
Zooi 4 tot veel display
3 a 4 soorten input
10
4
2
Ik kom al op veel meer dan 50 pinnen
Naast of interne of externe klok source gaat gebruiken
Power on led pin. Reset boot pin of je ook via jtag firmware wilt uploaden.
En of dat door STM32 MCU ook samen enabled mag worden.
Dat onderzoek doe je ook met Cube software om juiste STM32 MCU te kunnen kiezen want je kan dan ook pin feature combinatie vervieren of die toegestaan zijn.

X399 Taichi; ThreadRipper 1950X; 32GB; VEGA 56; BenQ 32" 1440P | Gigbyte; Phenom X4 965; 8GB; Samsung 120hz 3D 27" | W2012SER2; i5 quadcore | Mac mini 2014 | ATV 4g | ATV 4K


  • NESFreak
  • Registratie: December 2009
  • Laatst online: 09:29
Van de STM zijn ook ontwikkelbordjes beschikbaar met veel voorbeeldcode er bij en ook de schemas.

Voor met een display en veel IO Zou je bijvoorbeeld kunnen kijken naar de STM32F429I-DISC1
https://www.st.com/en/evaluation-tools/32f429idiscovery.html https://eu.mouser.com/Pro...%2Fed3%252BRc5JUCEw%3D%3D

Voor 30€ een leuk startpunt.

Bij veel van deze bordjes krijg je al een naar STM gelockte variant van de J-Link debugger erbij. Deze word ook met een header naar buiten gebracht, zodat je als je eenmaal op een eigen pcb over bent, ook deze kunt flashen en debuggen.

[Voor 22% gewijzigd door NESFreak op 09-09-2022 07:30]


  • TCIAL
  • Registratie: Januari 2010
  • Laatst online: 26-09 20:16
Deze youtube tutorial heeft mij geholpen om mijn eerste STM32 pcb te maken. Link. Als je de video af en toe op pauze zet om zijn dingen na te doen krijg je er al snel handigheid in.

Zoals hierboven gezegd, check eerst hoeveel pins je denkt nodig te hebben en selecteer de microcontroller op basis van die schatting.

Het programmeren & debuggen van stm32 gaat via de swd interface, hiervoor zal je in iedergeval een st-link moeten aanschaffen. Succes met het project!

  • Fore!
  • Registratie: Februari 2009
  • Laatst online: 06:57
Uiteindelijk is Arduino ook een microcontroller maar met extra functionaliteiten eraan gekoppeld.

Hoe ik ben begonnen is simpelweg dezelfde (type) microcontroller regelen van de Arduino en uitvinden hoe ik die dan inprogrammeer.

Maar ook hier terug naar de basis en programmeer eerst de "blinking led sketch" en kijk of je dat werkend krijgt via deze route.

Later ga je kijken naar verschillen in microcontrollers als in: hoeveelheid geheugen en aantal I/O.

Het zou helpen als je laat zien wat je nu hebt en wat je exact wilt veranderen.

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 10:37

memphis

48k was toen meer dan genoeg.

Als je de datasheet opent krijg je ook vaak alle info hoe alles rondom de processor te ontwikkelen zoals ontkoppelcondensatoren, extern clock circuit, referentiespanning(en) etc.

Er zijn mensen die mij een GOD vinden


  • joeyl94
  • Registratie: Oktober 2014
  • Laatst online: 08:34

joeyl94

Probleem'n? Poar neem'n!

Topicstarter
Bedankt allen voor de uitleg en linkjes met tutorials. Ik ga daar vandaag zeker even gebruik van maken en kijken/lezen. Ik merk al dat ik problemen ga krijgen met mijn I/O pins. 18 Leds is opzich ook wel erg veel, misschien dat ik dat nog kan verlagen.

Het scherm beschikt over een micro usb aansluiting en daar dacht ik gebruik van te kunnen maken door op de pcb een micro usb ingang te maken. Het scherm zelf beschikt al over een microcontroller namelijk.

En met de knoppen dacht ik een schema te maken die ik eerder al eens als referentie heb gebruikt waarmee je meerdere knoppen in 1 groep connect en elke knop in de groep verbind met een andere knop in een andere groep. Zoals deze schema voor een button box.

Iracing Profiel - Twitch - Youtube


  • NESFreak
  • Registratie: December 2009
  • Laatst online: 09:29
Om dat scherm aan te kunnen sturen heb je lijkt mij toch minstens een raspberry pi nodig.
https://vocore.io/screen.html

Ik zeg niet dat het niet kan, maar het zal waarschijnlijk veel gedoe worden om de driver van dat scherm te porten naar een barebones stm32 bordje.

Is een RPI dus niet gewoon een optie? Daarvoor heb je meteen ook kant en klare oplossingen voor knopjes en led strings.

  • NESFreak
  • Registratie: December 2009
  • Laatst online: 09:29
Heb je trouwens ook deze thread hier al gevonden?

Vocore scherm en racelogic voor simracing

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 26-09 22:03

SA007

Moderator Tweaking
Ik vermoed dat alles toch al aan een pc komt, dus een usb hub en dan het scherm en de microcontroller erop lijkt me dan logisch.

18 leds aansturen is overigens het probleem niet, er bestaat een techniek die heet 'charlieplexing' waarmee je met een microcontroller op 'x' pinnen 'x * (x-1)' leds kan aansturen.
Dan kan je dus op 5 pinnen 20 leds aansturen.

En dan nog je inputs
10 drukknoppen = 10 aan/uit standen
2 microlevers = 2 aan/uit standen
4 encoders = 12 aan/uit standen (2 per encoder, 1 voor indrukken)

Dat zijn 24 schakelaars, maar ook dat is met wat diodes erbij te multiplexen.
Met een 4x6 matrix kan je met 10 pinnen dus die 24 schakelaars uitlezen.

Met een usb hub kan je dus het scherm negeren voor de hoeveelheid pinnen.
dan zit je op
4 voor programming
5 voor power
5 voor leds
2 voor usb
10 voor input

Dan zit je op 26 pinnen.

Multiplexing maakt wel je software lastiger, zeker voor inputs maar diodes zijn goedkoop en een grotere microcontroller is dat niet, zeker als je dan met moeilijk verwerkbare behuizingen zit als QFN, BGA, etc.

Hangt er natuurlijk allemaal vanaf hoeveel je er wil maken, voor 1 stuks zou ik gewoon zo'n devboard halen en daarop prutsen, de kans dat zo'n pcb ontwerp de eerste keer helemaal goed is niet zo heel groot.

Klok is stuk :(


  • joeyl94
  • Registratie: Oktober 2014
  • Laatst online: 08:34

joeyl94

Probleem'n? Poar neem'n!

Topicstarter
SA007 schreef op vrijdag 9 september 2022 @ 12:14:
Ik vermoed dat alles toch al aan een pc komt, dus een usb hub en dan het scherm en de microcontroller erop lijkt me dan logisch.
Een usb aansluiting wordt lastig met de beperkte ruimte tussen de base plate van het stuur en de backcover. Dit heb ik eerder ook al eens geprobeerd maar dat gaat helaas lastig.
SA007 schreef op vrijdag 9 september 2022 @ 12:14:
18 leds aansturen is overigens het probleem niet, er bestaat een techniek die heet 'charlieplexing' waarmee je met een microcontroller op 'x' pinnen 'x * (x-1)' leds kan aansturen.
Dan kan je dus op 5 pinnen 20 leds aansturen.
heel erg bedankt voor deze tip, dat ziet er inderdaad uit als een oplossing! Ga ik me dadelijk ook nog in verdiepen!

Overigens heb ik me in mn post vergist in het scherm, het is een Nextion 4.3" scherm ipv een Vocore scherm. Ook heb ik mn microcontroller aangepast puur omdat ik de tutorial ben gaan volgen die @TCIAL gelinkt heeft. Puur om een idee te krijgen what to do en hoe zit alles in elkaar.

Dat Nextion scherm heb ik momenteel ook op mijn pcb + arduino draaien. De Nextion vraagt om 5v en in de tutorial wordt steeds 3.3v gebruikt. Kan ik gewoon een 5v regulator plaatsen en deze koppelen aan de usb + aansluiting die van de Nextion op de pcb wordt aangesloten?

Ik ben inmiddels zo ver met mijn schema. (Het is dus puur een gevolgde tutorial)
Het stroomschema is compleet, de usb aansluiting is zo gemaakt omdat ik een gx16-4 naar jst-xh4 aansluiting wil gaan maken.


Edit:
Na nog wat uurtjes bezig te zijn geweest heb ik het volgende bedacht. Ik heb de charlieplexing nagelezen en uitgevoerd zoals online beschreven. Dit lijkt me te moeten werken. En eigenlijk zijn mijn buttons soort gelijk aangesloten. 4 groepen, en elke button van elke groep zit weer verbonden met een andere groep waardoor elke button een eigen signaal doorgeeft.

[Voor 17% gewijzigd door joeyl94 op 10-09-2022 01:51]

Iracing Profiel - Twitch - Youtube


  • TCIAL
  • Registratie: Januari 2010
  • Laatst online: 26-09 20:16
joeyl94 schreef op vrijdag 9 september 2022 @ 21:15:
[...]

Dat Nextion scherm heb ik momenteel ook op mijn pcb + arduino draaien. De Nextion vraagt om 5v en in de tutorial wordt steeds 3.3v gebruikt. Kan ik gewoon een 5v regulator plaatsen en deze koppelen aan de usb + aansluiting die van de Nextion op de pcb wordt aangesloten?
5V power supply kan je direct aan VBUS van de usb koppelen. Gewoon direct naar een pinheader leiden. 5V gpio kan je maken met een “logic level shifter” om 3.3V->5V te gaan. Extra chipje nodig op je pcb.

Het omgekeerde, 5V naar 3.3V is makkelijker. Dit kan met twee weerstandjes, een zogenoemde voltage divider. Leuk dat je al zover bent gekomen en laat vooral weten hoe het project loopt. Ben benieuwd!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 10:37

memphis

48k was toen meer dan genoeg.

In plaats van charly plexing kan je ook aan latched buffers en schuifregisters denken.

Er zijn mensen die mij een GOD vinden


  • jomas
  • Registratie: Mei 2011
  • Laatst online: 26-09 10:22
Je kan ook een tm1637 overwegen voor het aansturen/uitlezen van de leds en de buttons.
Met een tm1637 kan je 48 leds aansturen en 16 keys uitlezen. En je hebt hier maar 2 io pinnen voor nodig.

De datasheet van de tm1637 is wel deels in het chinees maar er is ook een datasheet van de tm1638 (zelfde als de tm1637 maar met nog meer keys/leds) en die is in het engels.

Een extra voordeel is dat het multiplexen door de tm1637 gedaan wordt.

[Voor 16% gewijzigd door jomas op 10-09-2022 10:46]


  • joeyl94
  • Registratie: Oktober 2014
  • Laatst online: 08:34

joeyl94

Probleem'n? Poar neem'n!

Topicstarter
Hey allemaal,

Bedankt voor de suggesties die gegeven zijn maar voor de led lampjes maar ik ga toch voor de charlie plexing manier. Nu wou ik vanavond weer verder gaan met het maken van de diagram. Nu ben ik wel zover dat ik alle onderdelen toegevoegd heb. Alleen heb ik nog een paar vragen:

1. Hoe ik nu mijn push buttons gelinkt heb, zou dit werken dat elke button een eigen input is?
2. Moet er nog wat tussen de buttons en de microcontroller komen?
3. De led lampjes zijn volgens de charlie plexing manier aangesloten. Moet(en) hier nog resistor(s) tussen?
4. Ben ik (buiten de aansluiting van het scherm) nog iets vergeten in mijn schema of heb ik misschien iets verkeerds gedaan?


Iracing Profiel - Twitch - Youtube


  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 08:03
Je kunt met het multiplexen van knopjes even controleren wat er gebeurt als je meerdere knopjes tegelijk indrukt. En wellicht moet je een plek maken voor een pull-down weerstand op elke gpio input die je kan plaatsen als blijkt dat die in de chip zelf onvoldoende zijn en de input 50hz gaan oppakken.

Jazeker weerstanden, en ik weet niet wat voor een LED's je hebt, maar over het algmeen is de ~3 mA (zonder relaxed Voh) per GPIO poort onvoldoende voor LED's, je hebt daar een buffer simpele logic ic's, transistors of led driver voor nodig.
Zeker als je ze extra helder wilt laten oplichten voor multiplexing.

Wat ik ook zou doen is NRST beschikbaar maken op een testpad vlakbij de swd header, in sommige situaties is dit nodig om te kunnen herstellen. (bijvoorbeeld readout protection en gpio remaps)

  • septillion
  • Registratie: Januari 2009
  • Laatst online: 06:57

septillion

Moderator Wonen & Mobiliteit
1. Voor het multiplexen van buttons wil je nog diodes plaatsen om ghost presses te voorkomen als je meer dan één knop indrukt.

2. Nee

3. Voor je charlieplexen mis ik de weerstanden. Elke led-lijn moet eigenlijk 50% van de benodigde weerstand hebben. Leds zonder weerstand is geen goed idee. Ook al is dat met 3v3 wel uitdagend als je wit/blauwe leds wilt gebruiken. Maar inderdaad ook even letten op wat een pin kan leveren. Al met al is het denk ik makkelijker om te multiplexen met een high-side drive vanaf de 5V.

4. Ipv een wisselschakelaar aan de BOOT0 zou ik gewoon een schakelaar/button naar GND plaatsen en een pull up naar Vcc.

En ik lijk je +3.3V net-label te missen na de regulator. Ofwel, je hebt dan wel een 3V3 net maar die hangt niet achter de regulator :+ Vandaar ook dat je een POWER_FLAG nodig hebt om de DRC stil te krijgen.

Hoe heb je een GND verbinding met de Nextion?

  • Hasse
  • Registratie: Juni 2002
  • Laatst online: 10:32
Wat is de reden dat je dit wilt doen?

Typisch zet je zo'n stap als je van prototype naar product ontwikkeling gaat. Kostprijs (en verkrijgbaarheid van componenten) gaat dan een rol spelen. Zeker als je een aardig volume wilt gaan produceren. Pak een goedkope microcontroller met te weinig IO en bedenk truckjes (je knoppen en je leds) om er toch mee weg te komen. Alles om die laatste paar cent er uit te slepen!

Als je reden pure interesse is, dan zou ik een zwaardere en meer uitgebreide microcontroller pakken. Immers in al je volgende projecten kun je de basis dan hetzelfde houden.

Overigens verwacht ik dat je ook een forse hoeveelheid programmeer uitdagingen zult krijgen. Geen Arduino libraries meer. Alles van de grond af aan zelf opbouwen. Een grote uitdaging! Maar wel leuk natuurlijk.

Ik zou beginnen met een kant en klaar demo board. Eerst zien de software omgeving werkend te krijgen. Daarna je eigen hardware ontwerp baseren op dat demo board.

Succes!

Edit: Voor je leds kun je ook van die WS2812 pixel dingen gebruiken. Deze kun je makkelijk extern voeden (niet uit de uC) en via 1 datalijn kun je ze allemaal aansturen in iedere gewenste kleur!

[Voor 9% gewijzigd door Hasse op 22-09-2022 23:05]

I love my Health Tech Start-up: ParkinsonSmartwatch.com


  • SG
  • Registratie: Januari 2001
  • Laatst online: 07:12

SG

SG surft naar info hardewaren

De topic starter heeft het ook over 4.2” paneel en dan krijg je nog meer advanced feature eisen en is verre van beginner project.
Voor aansturing heb je optioneel MIPI DSI interface en mogelijk afhankelijk wat je er mee doet ook de Chromeart igpu’tje nodig. Dus dan ben je beperkt tot specifieke STM32 MCU en STM heeft voor die functionaliteit ook diverse dev boardjes.

X399 Taichi; ThreadRipper 1950X; 32GB; VEGA 56; BenQ 32" 1440P | Gigbyte; Phenom X4 965; 8GB; Samsung 120hz 3D 27" | W2012SER2; i5 quadcore | Mac mini 2014 | ATV 4g | ATV 4K

Pagina: 1



Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee