8-bit computer op een breadboard

bprosman

Golden Member

Het enige nadeel van deze deze methode is altijd dat je 1 ding niet onder controle hebt. En dat is de betrouwbaarheid van je breadboard.
Daarom geef ik nog steeds de voorkeur aan deze methode :

De jongere generatie loopt veel te vaak zijn PIC achterna.

De code die ik op de Arduino gebruik is:

c code:


  delayMicroseconds(1);
  digitalWrite(WRITE_EN, LOW);
  delayMicroseconds(1);
  digitalWrite(WRITE_EN, HIGH);
  delay(10);

Dat betekent dat NA de write tijd gegeven moet worden 'to sink in' of zo.

Bij mij werkt deze timing.

[Bericht gewijzigd door GerardWassink op woensdag 18 oktober 2017 22:36:57 (22%)

Ain't no place like 127.0.0.1
tmdr

Golden Member

Op 18 oktober 2017 22:35:16 schreef GerardWassink:
De code die ik op de Arduino gebruik is:

c code:


  delayMicroseconds(1);
  digitalWrite(WRITE_EN, LOW);
  delayMicroseconds(1);
  digitalWrite(WRITE_EN, HIGH);
  delay(10);

Dat betekent dat NA de write tijd gegeven moet worden 'to sink in' of zo.

Bij mij werkt deze timing.

Dat heb ik dus ook geprobeerd, doet helaas niets. Zelfs meer sink in tijd, maar mocht ook niet baten. Wat ik ook doe, het geeft de factory default 0xFF.
Ik vrees toch dat het ligt aan de write protection. Heeft iemand daar misschien ervaring mee?
Ik ga sowieso nog een aantal andere bestellen, hopelijk zit er dan één tussen die geen write protection heeft.

Op 18 oktober 2017 21:41:03 schreef bprosman:
Het enige nadeel van deze deze methode is altijd dat je 1 ding niet onder controle hebt. En dat is de betrouwbaarheid van je breadboard.
Daarom geef ik nog steeds de voorkeur aan deze methode :

[bijlage]

True! Gelukkig heb ik daar tot op heden nog geen problemen mee gehad. Wel gedacht dat een breadboard (die goedkope Chinese van €1,30 per stuk) het probleem was, maar na alles overzetten naar een nieuwe bleek het probleem toch ergens anders te liggen. De twijfel over de kwaliteit is al voldoende om extra koppijn te krijgen!

Op termijn wil ik misschien (eventueel als samenwerking hier bijv.) een aantal dedicated PCBs gaan maken. Misschien dat iemand dat ziet zitten (nu nog niet!!, ben nog druk genoeg).
Of misschien wel eens een poging wagen om het met wire-wrap te doen. Ik vind dat er bijzonder mooi uit zien en geeft ook een lekker retro idee in mijn ogen. Past natuurlijk perfect bij zo'n project. Zijn dat soort boards overigens nog te koop? Ben ze nog nooit ergens tegen gekomen.

bprosman

Golden Member

De voeten zal vooral een uitdaging gaan worden.

De jongere generatie loopt veel te vaak zijn PIC achterna.
tmdr

Golden Member

Op 20 oktober 2017 22:21:27 schreef bprosman:
De voeten zal vooral een uitdaging gaan worden.

De IC voetjes voor wire wrap bedoel je?
Hoe werkt dat precies? Zijn het gewoon lege prints waar je zelf voetjes met lange pinnen in prikt?

mel

Golden Member

Op 21 oktober 2017 12:50:11 schreef tmdr:
[...]

De IC voetjes voor wire wrap bedoel je?
Hoe werkt dat precies? Zijn het gewoon lege prints waar je zelf voetjes met lange pinnen in prikt?

Ja.En dan maak je er overal een draadje aan , met een wirewraptool :)

u=ir betekent niet :U bent ingenieur..
fred101

Golden Member

Je kunt ook headers naast een IC solderen.
Wirewrap is best een mooi systeem maar naast de IC voeten heb je het speciale draad en een soort "pen" nodig. Het wordt niet gesoldeerd.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
Kruimel

Golden Member

Op 18 oktober 2017 16:12:46 schreef tmdr:
[...]

Af en toe gaat er nog redelijk wat mis. En volgens mij heeft mijn power supply het zojuist begeven.

Ik geloof ook niet helemaal dat die Ben Eater dit zonder kinderziektes uit zijn mouw schudde... ;)

Soms worden instructies overgeslagen (de PC tikt dan twee keer) of worden waardes niet of fout in de registers gezet. Zal wel aan het ontbreken van die caps liggen.

Tweemaal tikken klinkt als een probleem met contactdender in het klokcircuit. Gebeurt het ook met de automatische klok? Anders even de switch checken en kijken of die goed contact maakt. Ontkoppeling kan nooit kwaad echter. Zijn al je chips van de LS serie? Misschien is er wel een niveauprobleem dat de niveau's van de uitgangen niet goed matchen met de thresholds van de ingangen. De combi LS met HC is bijvoorbeeld nogal kieskeurig.

Iemand tips mbt de caps die ik over de power bussen kan zetten? Of een linkje naar wat theorie zodat ik het zelf kan berekenen?

Helaas geen linkje, ontkoppeling is duidelijk niet echt een exacte wetenschap. Vaak druk ik een 100nF keramische condensator bij elk IC, maar dat is niet per definitie de juiste methode. Het beste wat ik hierover heb gelezen in "Troubleshooting analog circuits" van Bob Pease, en dat is nog wel te vinden in enkele bibliotheken (vaak de Nederlandse versie). Hij heeft het over ontkoppeling vanaf pagina 44 in de Engelse versie. Op basis van wat ik op je foto zie zou ik gewoon een handvol 2.54mm pitch keramische condensatoren in elk van de powerrails drukken, de precieze waarde is waarschijnlijk niet heel kritisch, en tussen de 47 en 470nF zal waarschijnlijk wel voldoen. Ik zou elke rail doen, want de voornaamste bron van spanningsval is denk ik de contactweerstand bij de connectoren (je implementatie van welke ik heel elegant vind overigens).

fred101

Golden Member

Ik zet er ook altijd 100nF in maar wil je het echt "goed" doen dan wordt het heel moeilijk. In ontwerpen waar de frequenties hoog zijn wordt zelfs de zelfinductie van vias mee genomen in de berekeningen. Wat op je breadboard werkt kan te veel of te weinig zijn voor je pcb.

Ik heb bij het ontwerpen de bouw van een meetzender me flink uitgeleefd op het filteren en ontkoppelen van de power rails. Ctjes, ferriet, smoorspoelen etc. Het resultaat was niet echt geweldig. De halve voeding stond te oscilleren.

Een ontkoppel Ctje bij een digitaal IC heeft 2 functies. Het sluit RF rotzooi kort. Voor een 100MHz signaal is 100nF zo ongeveer een kortsluiting. Voor DC is het een stroom reservoir.

Een digitaal signaal is alles of niets. Als een gate van hoog naar laag gaat krijg je de situatie dat je van geen stroom ineens naar "veel" stroom gaat.
Je voeding moet dat leveren en het pcb of je breadboard en alle draden moet dat doorgeven.

Nu bevat dat circuit paracitaire zelfinductie en capaciteit. De eerste probeert de stroom constant te houden, de tweede de spanning. Bij digitale circuits wil je beide niet, maar ook wel.

De voedingspanning van een IC moet constant blijven maar op de in- en uitgang liever niet. Daar wil je zo snel mogelijk van staat wisselen.

Om dat te doen moet de stroom snel kunnen wisselen. Een condensator op de Vcc van dat IC is, naast een RF filter, een stroom reservoir wat snel de stroom naar de poort kan sturen wanneer nodig. Dicht bij het IC zodat er zo min mogelijk zelfinductie is die de stroomverandering probeert tegen te werken.

Maar zelfinductie en capaciteit vormen ook een resonant circuit en dat kan problemen geven. Daarnaast hebben ook condensators frequentie afhankelijke eigenschappen en soms ook spanning afhankelijk.

Kortom, meestal komt het neer op trial en error. Met een scoop kom je ver, als je weet hoe want je probe voegt ook capaciteit toe en het aarddraadje zelfinductie. Voor high speed pcb's worden dingen als simulaties en VNA's gebruikt. Zoals eerder gezegd, daar wordt zelfs rekening gehouden met de zelfinductie van vias.

Dit plaatje is de gemeten voeding-stroom van een Raspberry pi bij booten

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
maartenbakker

Golden Member

Op 21 oktober 2017 12:50:11 schreef tmdr:
[...]

De IC voetjes voor wire wrap bedoel je?
Hoe werkt dat precies? Zijn het gewoon lege prints waar je zelf voetjes met lange pinnen in prikt?

Mocht je voetjes 14 en 16 pins en draad zoeken, heb ik nog wel een stapeltje liggen waar ik eventueel van af wil.

www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."
Kruimel

Golden Member

Op 21 oktober 2017 13:52:38 schreef mel:
[...]
Ja.En dan maak je er overal een draadje aan , met een wirewraptool :)

Ik geloof dat het idee met wire-wrap was dat je draden kon verbinden met de pootjes van speciaal wire-wrap voetje met vierkante pinnen. Als je er dan vertind draad om draait met de juiste tool dan krijg je een bijzonder betrouwbaar contact. De voetjes hebben dan ook vierkante pinnen. De techniek werd veel gebruikt in Japanse apparatuur en schijnt nog in gebruikt te worden in militaire apparatuur.

Hier zie je zo een voetje voor een 6-pins IC dat ik per ongeluk had gekocht:

https://farm5.staticflickr.com/4470/37821247102_c77fa05ceb_z.jpg

Hier zie je het in gebruik in een Denon PMA-300V versterker uit een oud reparatietopic:

https://farm1.staticflickr.com/630/22799870392_0f1bbf0f7a_z.jpg

fred101

Golden Member

Hier een foto van een soort datamonitor uit 1978. Daar worden gewone pcb's en wirewrap naast elkaar gebruikt. Let niet op het stof.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
eSe

Honourable Member

Toeval, toeval, toeval. Wire Wrap, je hoort er jaren niets van en dan zie je het plots verschijnen :-)

Ben net bezig (nog in "materiaalverzamelfase") met een ge-Wire Wrap'ped projectje. Bij Conrad hebben ze nog wat ic voetjes hiervoor, zeer beperkt assortiment. Kopen wat beschikbaar is en zelf op maat snijden. Ik heb hier nog een simpel tooltje en een op maat afbreekbaar voetje. En't werkt :-)

Groetjes,
eSe

CChheecckk yyoouurr dduupplleexx sswwiittcchh..
bprosman

Golden Member

Er bestaat ook "just wrap" draad die hoef je niet eerst te strippen.

De jongere generatie loopt veel te vaak zijn PIC achterna.
Anoniem

Lekkerr aan het klooien geweest met een klok en een besturing voor de knoppen. De knoppen hebben inwendige verlichting die ik op wil laten lichten. Snelle flitsen voor korte indrukking en trage flitsen voor een lange indrukking. (1 toets heeft 2 functies)

Deze probeer ik ook met een 0.1Hz gestuurde 7490 te bouwen. Had allemaal flank detectors ernaast maar weggehaald omdat ik dacht te kunnen vereenvoudigen. Tijdens het herbouwen was het duidelijk etenstijd, 7490 werd warm door "sluiting".

De 0.2mm2 draad geef ik aan de uiteinden een kronkel zodat deze mechanisch beter kontakt maakt.

fred101

Golden Member

Nu zit ik naar de uitleg over registers te kijken en in deel 2 tekent hij de bus. En daar snap ik iets niet. Hij tekent de in en uitgang van van het register op de zelfde bus. Dus feitelijk de in en uitgang aan elkaar. (Q1 aan D1 , Q2 aan D2 etc)

In zijn ontwerp gebruikt hij een 74LS245 na de 173 dus in het definitieve ontwerp zit de ingang niet direct aan de uitgang. Dat doet hij volgens mij om met leds de datatransfer door het register te laten zien.

Maar als hij maar 4 bits zou gebruiken en dus maar een enkele 173, kan het dan zonder 245 ? De 173 is tri-state dus ik zou denken van wel.

Als je bv naar de 273 kijkt is dit een 8 bit register waar de in en uitgangen steeds naast elkaar liggen. Dan zou je die pinnen steeds aan elkaar kunnen knopen en ben je klaar met 8 draadjes naar de bus. Dat is layout technisch best een voordeel. Maar de 273 is geen tristate dus die poorten zitten blijkbaar voor een andere reden naast elkaar want zo is het lastiger om hem aan zoiets als een 245 te knopen.

Ik zie iets over het hoofd maar ik weet niet wat.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

Het register zoals hij het uitlegt.
WRITE zit aan de /CLK van de 173 en READ aan de /OE van de 245.

zeg register 0x01 wordt data ingeschreven, dan wordt de data in de 173 gelatched op de klok.
Wil je de data uitlezen, dan leesje met de output enable van de 245.

Mocht je in dat register een speciale functie willen maken. zet je deze tussen de 173 en de 245

Dit is overigens de manier hoe ik een CPU wil gaan bouwen.
Elk register heeft een functie.
sommige zullen 2 write en 3 read adressen kunnen hebben.
write en read A register. Write en read B register.
Read result

Leuke hiervan is dat ik bijvoorbeel met 2 keer een schrijf actie
allerlei bewerkingen parallel laat doen en deze dan gewoon kan uitlezen na elkaar.

De enige instructie die ik wil implementeren die in software gebruikt gaat worden is en move instructie.
Beetje geinspireerd door dit artikel :-)
http://homepage.cs.uiowa.edu/~jones/arch/risc/

Ik ben nog wel aan het nadenken hoe ik conditional jumps ga implementeren. ;)

meten is weten, weten is meten, maar hoe kan je weten wat je allemaal moet meten en weten.
Kruimel

Golden Member

Niet de meest interessante mag ik wel zeggen. Ik ben niet zo een fan van die "opvulfilmpjes" met een voorspelling dat er nog meer komen en dat er podcasts zijn (een fragment van welke het grootste deel van het filmpje vult). Dat valt wat mij betreft in de categorie "ik ben ook op Facebook en Insta".

Dat gezegd hebbende, als hij die laatste serie filmpjes af heeft heeft hij wel een heel mooie set bij elkaar waarvan je van begin tot eind een simpele maar diepgaande basis in de computertechniek kan opdoen.

fred101

Golden Member

Even wat hardware vragen, een heikel punt voor de software jongens. ;-)

Is tristate alleen voor een uitgang nodig op een bus nodig ? Ofwel is een ingang ook bij bv de 74LS273 hoog impedant genoeg ?

Ik heb als register experiment een 74LS273 en een 74LS245 op een breadboard gezet en dat lijkt te werken. Was even zoeken naar de juiste controle lijn volgorde. Ook leerzaam en kan mooi als ik moet liggen.

Maar als ik dat ipv de 173 gebruik zitten de ingangen van de 273 direct op de bus. De 173 is tristate de 273 niet. Voor de uitgang naar de 245 niet erg maar ik weet niet wat de ingang van de 273 dan doet of wat de bus doet. Als ik de interne bouw bekijk zou het moeten kunnen. Ik heb (nog) geen ervaring met het ontwerpen van dit soort parallelbus systemen.

Tweede vraag. Ik zie Ben overal direct leds aan hangen en lijnen direct naar de Vcc trekken. Allemaal zonder weerstanden. Is het spul daarvoor ontworpen ? Als ik in de datasheet kijk heeft de ingang van de LS273 een zener en 2 diodes in serie. Vcc heeft intern een 20k pull-up. Als ik de ingang direct aan Vcc hang is er geen stroombegrenzing. De output heeft een 120 ohm interne weerstand, waarschijnlijk blijf je onder de 20mA maar als hij 8 leds tegelijk moet voeden moet het IC 160mA sourcen en dat is te veel (max 94mA Vcc voor de 293)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
Kruimel

Golden Member

Hij legde dat (volgens mij) uit in de video over het maken van de bus, ik zou er even naar moeten zoeken. In de bus gebruikt hij wel weerstanden voor de LEDs.

Het heeft te maken met het gedrag van de LS serie in- en uitgangen. Als je de specificatie eens doorspit zal je zien dat de ingangen een soort van interne pull-up hebben. Bij een logische '0' zal er dus een merkbare stroom uit de ingang van een LS IC komen, en zal hij naar een logische '1' gaan als je hem open laat. Er zal weinig of geen stroom de ingang in gaan bij een logische '1'.

Dat maakt ook dat de uitgangen meer stroom naar massa kunnen sinken dan naar VCC kunnen sourcen om te matchen met dit gedrag, bij een '1' zit er een interne weerstand naar VCC in de signaalweg. Bovendien is de spanning op de uitgang merkbaar lager dan VCC.

De threshold voor de ingangen onder de helft van de voedingsspanning, je zult de spanning dus best ver omlaag moeten trekken (iets van 1,5V geloof ik) om hem een '0' te laten lezen. Dat maakt dat als je aan een uitgang een LED naar massa zet dat die niet opgeblazen wordt, maar naar VCC wel. Bovendien stoort het de werking niet als de spanning begrensd wordt op de voorwaartse spanning van een LED, want dan blijft de data kloppen.

Dit zal niet goed meer werken als je een CMOS IC zou aansluiten. Daar is het systeem nabij symmetrisch en ik denk dat de EEPROMs hier bijvoorbeeld niet goed mee om kunnen gaan. Als je daar een LED naar massa op de ingang hebt zal hij '0' zien of niet betrouwbaar werken.

Het bovenstaande gedrag komt uit de TTL tijd en heeft te maken met het feit dat NPN transistoren beter zijn dan PNP door de grotere mobiliteit van elektronen ten opzichte van gaten. CMOS is vrijwel symmetrisch (vandaar de 'complementair' (C) in CMOS, de transistoren er in zijn symmetrisch). De HCT serie is aangepast om compatibel te zijn met TTL en is dus wederom niet symmetisch, maar gebruikt wel CMOS componenten.

Ingangen zijn niet tristate, elke ingang zal een zekere pull-up stroom sourcen die niet/nauwelijks verandert met de status van het IC. Als het goed is zullen er echter altijd uitgangen met een gedefinieerde staat op de bus worden aangesloten als er ingangen worden uitgelezen, en dan zou het geen probleem moeten opleveren. Alleen als je verwacht dat op een bepaald moment niet alle bits op je bus een gedefinieerde staat zullen krijgen aangeboden is het een issue dat je ingangen rare resultaten zullen zien.

edit: Het is inderdaad dit filmpje vanaf 11:39.

tmdr

Golden Member

Op 24 oktober 2017 17:40:55 schreef fred101:
Even wat hardware vragen, een heikel punt voor de software jongens. ;-)

Is tristate alleen voor een uitgang nodig op een bus nodig ? Ofwel is een ingang ook bij bv de 74LS273 hoog impedant genoeg ?

Ik heb als register experiment een 74LS273 en een 74LS245 op een breadboard gezet en dat lijkt te werken. Was even zoeken naar de juiste controle lijn volgorde. Ook leerzaam en kan mooi als ik moet liggen.

Maar als ik dat ipv de 173 gebruik zitten de ingangen van de 273 direct op de bus. De 173 is tristate de 273 niet. Voor de uitgang naar de 245 niet erg maar ik weet niet wat de ingang van de 273 dan doet of wat de bus doet. Als ik de interne bouw bekijk zou het moeten kunnen. Ik heb (nog) geen ervaring met het ontwerpen van dit soort parallelbus systemen.

Tweede vraag. Ik zie Ben overal direct leds aan hangen en lijnen direct naar de Vcc trekken. Allemaal zonder weerstanden. Is het spul daarvoor ontworpen ? Als ik in de datasheet kijk heeft de ingang van de LS273 een zener en 2 diodes in serie. Vcc heeft intern een 20k pull-up. Als ik de ingang direct aan Vcc hang is er geen stroombegrenzing. De output heeft een 120 ohm interne weerstand, waarschijnlijk blijf je onder de 20mA maar als hij 8 leds tegelijk moet voeden moet het IC 160mA sourcen en dat is te veel (max 94mA Vcc voor de 293)

Hier ook nog iemand van de software, maar ik ga een poging wagen:
Het gaat om de outputs van de 173 die tri-state zijn voor zo ver ik kan lezen. Dus dat betekent volgens mij dat de 245 bij de registers niet nodig zouden zijn. Voor de 273 is een 245 dan wel weer nodig, maar zo ver was je al. Verder zijn de inputs van zowel de 173 als de 273 volgens mij niet tri-state. Dat is ook niet relevant, aangezien de DFFs deze werking natuurlijk op zich nemen. Althans, zo beredeneer ik dat allemaal. Ik denk dus dat je met jouw opstelling van 245 + 273 prima het zelfde kunt doen. Scheelt ook weer een IC en maakt de boel net een stukje netter.

Verder wat betreft de weerstanden voor de LEDs. Ben herhaalt volgens mij meerdere malen dat de LS serie intern current limiting resistors heeft. Staan misschien niet getekend in de datasheets? Geen idee, maar bij Ben en bij mij gaat dat allemaal prima.

Op 24 oktober 2017 09:49:51 schreef Kruimel:
Niet de meest interessante mag ik wel zeggen. Ik ben niet zo een fan van die "opvulfilmpjes" met een voorspelling dat er nog meer komen en dat er podcasts zijn (een fragment van welke het grootste deel van het filmpje vult). Dat valt wat mij betreft in de categorie "ik ben ook op Facebook en Insta".

Dat gezegd hebbende, als hij die laatste serie filmpjes af heeft heeft hij wel een heel mooie set bij elkaar waarvan je van begin tot eind een simpele maar diepgaande basis in de computertechniek kan opdoen.

Ik vond het filmpje ook niet interessant, maar ik denk dat dat ook niet het doel was. Meer een update (zie de titel) en wat reclame voor zijn nieuwe project. Blij dat hij in ieder geval een update heeft gegeven. Nu weet ik dat ik niet meer hoef te hopen op uitbreidingen!

Op 22 oktober 2017 15:11:46 schreef eSe:
Toeval, toeval, toeval. Wire Wrap, je hoort er jaren niets van en dan zie je het plots verschijnen :-)

Ben net bezig (nog in "materiaalverzamelfase") met een ge-Wire Wrap'ped projectje. Bij Conrad hebben ze nog wat ic voetjes hiervoor, zeer beperkt assortiment. Kopen wat beschikbaar is en zelf op maat snijden. Ik heb hier nog een simpel tooltje en een op maat afbreekbaar voetje. En't werkt :-)

Groetjes,
eSe

Voor wat ik momenteel allemaal aan prijzen zie gaat het mij iets te duur worden om dit met wire wrap te gaan doen. Dus ik denk dat ik op termijn eens ga overwegen om zelf wat printjes te ontwerpen en dan zelf etsen. In feiten is het geen bijzonder complex project om als printjes te maken. Vooral veel werk, maar goed, dat is WW ook. En het is lekker rustgevend natuurlijk.

Op 22 oktober 2017 10:45:00 schreef fred101:
Ik zet er ook altijd 100nF in maar wil je het echt "goed" doen dan wordt het heel moeilijk. In ontwerpen waar de frequenties hoog zijn wordt zelfs de zelfinductie van vias mee genomen in de berekeningen. Wat op je breadboard werkt kan te veel of te weinig zijn voor je pcb.

Ik heb bij het ontwerpen de bouw van een meetzender me flink uitgeleefd op het filteren en ontkoppelen van de power rails. Ctjes, ferriet, smoorspoelen etc. Het resultaat was niet echt geweldig. De halve voeding stond te oscilleren.

Een ontkoppel Ctje bij een digitaal IC heeft 2 functies. Het sluit RF rotzooi kort. Voor een 100MHz signaal is 100nF zo ongeveer een kortsluiting. Voor DC is het een stroom reservoir.

Een digitaal signaal is alles of niets. Als een gate van hoog naar laag gaat krijg je de situatie dat je van geen stroom ineens naar "veel" stroom gaat.
Je voeding moet dat leveren en het pcb of je breadboard en alle draden moet dat doorgeven.

Nu bevat dat circuit paracitaire zelfinductie en capaciteit. De eerste probeert de stroom constant te houden, de tweede de spanning. Bij digitale circuits wil je beide niet, maar ook wel.

De voedingspanning van een IC moet constant blijven maar op de in- en uitgang liever niet. Daar wil je zo snel mogelijk van staat wisselen.

Om dat te doen moet de stroom snel kunnen wisselen. Een condensator op de Vcc van dat IC is, naast een RF filter, een stroom reservoir wat snel de stroom naar de poort kan sturen wanneer nodig. Dicht bij het IC zodat er zo min mogelijk zelfinductie is die de stroomverandering probeert tegen te werken.

Maar zelfinductie en capaciteit vormen ook een resonant circuit en dat kan problemen geven. Daarnaast hebben ook condensators frequentie afhankelijke eigenschappen en soms ook spanning afhankelijk.

Kortom, meestal komt het neer op trial en error. Met een scoop kom je ver, als je weet hoe want je probe voegt ook capaciteit toe en het aarddraadje zelfinductie. Voor high speed pcb's worden dingen als simulaties en VNA's gebruikt. Zoals eerder gezegd, daar wordt zelfs rekening gehouden met de zelfinductie van vias.

Dit plaatje is de gemeten voeding-stroom van een Raspberry pi bij booten

[bijlage]

Ik heb laatst voor vrijwel elke IC een 100nF keramische condensator geplaatst, maar dat lijkt het probleem nog niet te verhelpen. Ik ga nu kijken of ik wat kan doen aan de power distributie. De gesoldeerde connectors helpen al, maar tussen de power bussen met jumpers is niet ideaal.

Kruimel

Golden Member

Op 24 oktober 2017 18:09:20 schreef Kruimel:
edit: Het is inderdaad dit filmpje vanaf 11:39.

Ok, ik was iets te snel met conclusies trekken, hij noemt de voorschakelweerstanden op de bus helemaal niet, en heeft die stiekem in het filmpje erna gemonteerd. Hij heeft er er over in het filmpje over de control signals vanaf (geloof het of niet, wederom) 11:39.

Ik heb de serie op You-tube bekeken en ben nu de schema's aan het uit tekenen, om het nabouwen te vergemakkelijken.
Vraag: Is het mogelijk met de getoonde hardware ook een instructie te maken die afhankelijk van de alu resultaat of een bit b.v. carry een beslissing te nemen welke stap in het programma verder te gaan.
Zeg maar een soort IF statement.

tmdr

Golden Member

Op 26 oktober 2017 19:32:03 schreef Mike1960:
Ik heb de serie op You-tube bekeken en ben nu de schema's aan het uit tekenen, om het nabouwen te vergemakkelijken.
Vraag: Is het mogelijk met de getoonde hardware ook een instructie te maken die afhankelijk van de alu resultaat of een bit b.v. carry een beslissing te nemen welke stap in het programma verder te gaan.
Zeg maar een soort IF statement.

Dat is dan een BCS instructie (branch on carry set). Ben gaat nog een filmpje maken met een conditional jump. Wanneer je een carry flag register bouwt kun je daar natuurlijk al iets van brouwen.