Goedemiddag mede-tweakers!
Ik heb een PCBtje ontworpen en gerealiseerd die allerlei IO afhandelt voor een Raspberry Pi. Hierbij zijn ook in- en uitgangen ontworpen die een grotere spanningsrange (0-60V) kunnen afhandelen m.b.v. transistors aangezien het product moet worden ingezet in een industriële omgeving. De uitgangen zijn transistors die de GND afschakelen van een aangesloten iets, maar kunnen door het toevoegen van een gepaste spanningsbron en weerstand ook gebruikt worden als digitale uitgang. Zie plaatje voor elektrisch schema:

Echter is het volgende probleem ontstaan;
De ingangen worden gebruikt als pulsentellers en deze te loggen en een uitgang stuurt een LEDje (24V/15mA) aan om aan te geven waar het systeem mee bezig is. Maar uit een test-logbestand bleek dat er pulsen geteld waren terwijl er helemaal niks op die ingang was aangesloten! De getelde pulsen waren echter vrij consistent, hetzelfde aantal pulsen werd geteld in eenzelfde tijdseenheid. Daarmee was de link tussen het schakelen van het LEDje en de ongewenste pulsen al snel gelegd. Even de scoop aangesloten op de schakelende uitgang en een beïnvloede ingang en jawel hoor, precies op het moment dat de LED schakelt verschijnt er een piek van 1,7V op het andere lijntje
.
Wat bleek, de IO's zijn uitbedraad op klemmen en zijn dus gebundeld naar die klemmenstrook toe gebracht. Het loskoppelen van de schakelende uitgang lost het probleem op, maar staat natuurlijk niet netjes. Daarnaast vind er ook nog altijd overspraak plaats op de andere samengebundelde uitgangen.
Daarom dacht ik, laat ik eens een bypass condensator(1uF/100V, had ik nog liggen) zetten tussen de schakelende uitgang en de GND om de plotselinge schakelende piek iets af te vlakken. En jawel, nu zo goed als geen piek meer te meten
.
Ontwerpfoutje, dus er moeten caps worden toegevoegd op de volgende PCB's. Alleen nu zat ik met het volgende probleem. Nu wordt de uitgang gebruikt om de LED relatief langzaam te schakelen, maar hij wordt straks misschien ook ingezet als PWM uitgang. En laat dat C'tje natuurlijk in combinatie met de weerstand die aanwezig zal zijn een low-pass filter creëren. Aangezien de maximale schakelsnelheid toch al gelimiteerd is door de aanwezige transistors en weerstand tot ~100kHz (gesimuleerd), kunnen we dat ook mooi als kantelpunt voor het RC filter nemen. Verder gaan we er vanuit dat er in dat geval een weerstand van max 50kOhm aanwezig zal zijn om het stroomverbruik te beperken. Uit calculatie en simulatie blijkt dan dat een 15pF voldoet.
Nu weet ik alleen niet of deze dan nog wel steeds het overspraak probleem zal oplossen, 15pF is volgens mij alleen verkrijgbaar in SMD formaat en dus niet mogelijk om te testen. Beter afgeschermde kabels is geen mogelijk oplossing. Daarnaast is het probleem nu dan wel 'opgelost', maar ik kan niet per se bewijzen (behalve dan scoopbeeld en goede logresultaten) of berekenen waarom. Hier hoor ik dan ook graag jullie advies en/of hulp over! Zal de overspraak met de 15pF nog steeds verholpen worden? Of moet ik dit probleem anders oplossen?
Alvast bedankt!
Ik heb een PCBtje ontworpen en gerealiseerd die allerlei IO afhandelt voor een Raspberry Pi. Hierbij zijn ook in- en uitgangen ontworpen die een grotere spanningsrange (0-60V) kunnen afhandelen m.b.v. transistors aangezien het product moet worden ingezet in een industriële omgeving. De uitgangen zijn transistors die de GND afschakelen van een aangesloten iets, maar kunnen door het toevoegen van een gepaste spanningsbron en weerstand ook gebruikt worden als digitale uitgang. Zie plaatje voor elektrisch schema:

Echter is het volgende probleem ontstaan;
De ingangen worden gebruikt als pulsentellers en deze te loggen en een uitgang stuurt een LEDje (24V/15mA) aan om aan te geven waar het systeem mee bezig is. Maar uit een test-logbestand bleek dat er pulsen geteld waren terwijl er helemaal niks op die ingang was aangesloten! De getelde pulsen waren echter vrij consistent, hetzelfde aantal pulsen werd geteld in eenzelfde tijdseenheid. Daarmee was de link tussen het schakelen van het LEDje en de ongewenste pulsen al snel gelegd. Even de scoop aangesloten op de schakelende uitgang en een beïnvloede ingang en jawel hoor, precies op het moment dat de LED schakelt verschijnt er een piek van 1,7V op het andere lijntje
Wat bleek, de IO's zijn uitbedraad op klemmen en zijn dus gebundeld naar die klemmenstrook toe gebracht. Het loskoppelen van de schakelende uitgang lost het probleem op, maar staat natuurlijk niet netjes. Daarnaast vind er ook nog altijd overspraak plaats op de andere samengebundelde uitgangen.
Daarom dacht ik, laat ik eens een bypass condensator(1uF/100V, had ik nog liggen) zetten tussen de schakelende uitgang en de GND om de plotselinge schakelende piek iets af te vlakken. En jawel, nu zo goed als geen piek meer te meten
Ontwerpfoutje, dus er moeten caps worden toegevoegd op de volgende PCB's. Alleen nu zat ik met het volgende probleem. Nu wordt de uitgang gebruikt om de LED relatief langzaam te schakelen, maar hij wordt straks misschien ook ingezet als PWM uitgang. En laat dat C'tje natuurlijk in combinatie met de weerstand die aanwezig zal zijn een low-pass filter creëren. Aangezien de maximale schakelsnelheid toch al gelimiteerd is door de aanwezige transistors en weerstand tot ~100kHz (gesimuleerd), kunnen we dat ook mooi als kantelpunt voor het RC filter nemen. Verder gaan we er vanuit dat er in dat geval een weerstand van max 50kOhm aanwezig zal zijn om het stroomverbruik te beperken. Uit calculatie en simulatie blijkt dan dat een 15pF voldoet.
Nu weet ik alleen niet of deze dan nog wel steeds het overspraak probleem zal oplossen, 15pF is volgens mij alleen verkrijgbaar in SMD formaat en dus niet mogelijk om te testen. Beter afgeschermde kabels is geen mogelijk oplossing. Daarnaast is het probleem nu dan wel 'opgelost', maar ik kan niet per se bewijzen (behalve dan scoopbeeld en goede logresultaten) of berekenen waarom. Hier hoor ik dan ook graag jullie advies en/of hulp over! Zal de overspraak met de 15pF nog steeds verholpen worden? Of moet ik dit probleem anders oplossen?
Alvast bedankt!