Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

PC oscilloskop

Mange af jer leger en del med elektronik, ved jeg - så derfor vil jeg anbefale et nyt legetøj, jeg er kommet til at købe: Et Velleman PCSU200 oscilloskop.

Fra gammel tid har jeg egentligt det hele: Et dobbeltstråle skop, B&O voltmeter og tonegenerator - alt sammen standardinventar i et radioværksted for 30 år siden. Jeg er sikker på, at voltmeter og tonegenerator vil få minderne frem hos mange:

Billede

Billede

Begge dele virker fint stadigvæk, omend voltmeteret som regel skal have et stykke pap klemt ind i den tast, der burde være trykket ind - de er lidt slidte...

Men det fylder, og derfor står det hele i dag i min lagerkælder og bliver sjældent brugt. Derfor var det en glæde, da jeg faldt over dette Velleman apparat, der ikke blot fungerer som oscilloskop, men også har indbygget funktionsgenerator, der kan meget, meget mere end min gamle B&O model. Det fylder stort set ingenting, og så er prisen til at overkomme.

Lige nu leger jeg med Arduino og PWM (Pulse Width Modulation) - mere præcist er jeg ved at lave en fuldelektronisk DC kørekontrol, så jeg kan teste nyt rullende materiel, før jeg sætter en dekoder i: Den skal jeg nok fortælle mere om, når den bliver færdig. Men mens jeg leger og tester, er det en stor fordel at kunne måle på PWM signalet - og det er let med denne løsning. I modsætning til mit gamle skop (der er fra dengang, hvor man kun kunne drømme om et storage skop) kan man her blot vælge "File | Save" i menuen, og så få sådan en fin udskrift af kurveformen:

Billede

Alt sammen i en pakke, der ikke er større end denne:

Billede

I øjeblikket er den på tilbud hos ELV til blot € 159,-. Kan stærkt anbefales, hvis man har den slags lyster. Smile

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Gert Frikke

Indlæg: 2.323

PB

Det er fint hvis man ikke har et storage scope i forvejen og fylder ikke så meget - men så skal computeren også være der altid.

Der er efterhånden en del udbydere af denne slags instrumenter til en overkommelig pris.

Strømforsyninger, skillevariotransformer, frekvenstæller, målesender, HF wattmeter, , multimeter og hvad man ellers har på sin arbejdsplads, skal stadig være der.....

Billederne af tonegenerator og voltmeter give visse mindelser fra tidligere.

 

Gert

__________________

modeltog - en kopi af virkeligheden på en fantasifuld måde

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Gert.

Gert Frikke skrev:
- men så skal computeren også være der altid.

Det har du naturligvis ret i: Men på den anden side skrev jeg jo netop, at jeg leger med Arduino - og det er svært uden en computer, man kan bruge til at programmere den, så computeren står naturligvis på bordet i forvejen. Smile

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

angatyr

Blistrup

Indlæg: 35

PB

Hej Lars,

Jeg har også været på den galej for en del år siden.

Men så kommer der en ny Windows eller man skifter til 64bit eller sågar til Linux - og så er der ingen drivere, og hvis man har haft skopet i et par år, kan man godt glemme alt om, at der kommer nye. Køb et nyt skop, er beskeden!

Det gør jeg kun en gang - så nu har jeg købt et rigtigt skop på Ebay.

/henrik

__________________

Morituri te salutant
/henrik

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Henrik.

angatyr skrev:
Men så kommer der en ny Windows eller man skifter til 64bit eller sågar til Linux - og så er der ingen drivere, og hvis man har haft skopet i et par år, kan man godt glemme alt om, at der kommer nye.

Det problem kender jeg desværre også godt. Det gælder dog ikke kun hardware - jeg bruger enorme mængder tid på at hjælpe min søn med at få gamle spil, som han jo altså også har købt og betalt for, til at køre på nye Windows-versioner - det kan så sandeligt også være en stor udfordring. For ikke at tale om den dag, han kom og forlangte et IPX netværk, så han kunne spille et gammelt spil sammen med sine venner. Godt, man har været med så længe, at jeg rent faktisk kunne klare udfordringen!

Det er dog ikke så svært, som det har været: Med virtuelle maskiner er vi i dag rigtig godt hjulpet i mange af disse situationer - jeg har således investeret i en VMware Workstation licens til min Linux desktop, så med en virtuel Windows XP og en anden virtuel Windows 7 er der ikke mange ting, jeg ikke kan klare på min "Linux" maskine.

Endeligt taler vi om en "dims" til 1.200 kr.: Der er mange af den slags, man må udskifte hen ad vejen, selvom de ikke er teknologiske udtjente - sådan fungerer vores samfund jo altså i dag, selvom jeg heller ikke bryder mig om udviklingen.

Hvem vil f.eks. købe et brugt fladskærms TV, der ikke er Full HD, i dag? Eller endnu værre: Et TV, der kun har MPEG2 dekoder? Eller hvad med det top-kvalitets 26" Loewe 16:9 billedrørs-TV, jeg ikke engang kan forære væk?

Citat:
Det gør jeg kun en gang - så nu har jeg købt et rigtigt skop på Ebay.

Nu har jeg jo altså allerede et rigtigt skop: Det står bare langt væk i en kælder, for det fylder alt for meget herhjemme i stuen. Velleman boksen har givet mig nogle nye muligheder, jeg ikke synes, jeg havde før - men det behøver naturligvis ikke at tælle for dit vedkommende.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

BLK_AARH

it

Indlæg: 128

PB

Er der det nødvendige software med til de € 159,- ?

Er fuldstændig uvidende på opråde, så prisen passe vist meget fint til sådan en som mig, hvis der er det relevante SW med.

 

 

 

__________________

V.h.
Bent L.K.

Like 0 kan lide
Top

Picture

Mikael

Udviklingsingeniør

Indlæg: 594

PB  Hjemmeside

Nu du leger med Arduino, og digitale signaler, så vil jeg anbefale en anden gadget. En logic analyzer fra Saleae, som er sådan cirka i samme størrelse:

http://www.saleae.com/

Gerne 16 kanals versionen, hvis man har råd (og behovet).

Sjældent har jeg brugt et måleværktøj så meget som denne her. Den er nærmest uundværlig når man leger med microcontrollere. Softwaren har indbygget dekodere til en del forskellige protokoller, bl.a. seriel, I2C og SPI. Og hvis man kan skrive software, så kan man selv lave sin egen dekoder. Således har jeg "lært" den at dekode DCC kommunikation (som vel ikke er helt uinteressant for vores slags).

 

Like 0 kan lide
Top

Picture

JHA

Indlæg: 3

PB

Der er også et lidt dyre alternativ hvis man i forvejen har noget Apple grej.

http://www.let-elektronik.dk/logic-analyzer-for-ios.html

Det er ikke noget jeg har prøvet - har heller ikke noget med butikken at gøre, fandt det i forbindelse med noget andet jeg søgte.

__________________

------------------------

Jan Hansen

H0 2-skinne, Epoke III-IV.

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Bent.

BLK_AARH skrev:
Er der det nødvendige software med til de € 159,- ?

Ja - og den ligger frit tilgængeligt på hjemmesiden, så man må formode, at eventuelle updates også vil være frit tilgængelige. Du kan downloade softwaren, før du køber, og se den køre i demo mode.

Til gengæld er der ikke prober med, så dem skal du købe ved siden af. ELV har nogle udmærkede nogen til € 20 (ca. 150,- kr.), som jeg købte et par stykker af - så slap jeg for at skulle rode min kælder igennem for at finde de gamle, der også var godt slidte.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Nu du leger med Arduino, og digitale signaler, så vil jeg anbefale en anden gadget. En logic analyzer fra Saleae, som er sådan cirka i samme størrelse:

http://www.saleae.com/

Den ser godt nok spændende ud - den er skrevet højt på ønskesedlen!

Citat:
Således har jeg "lært" den at dekode DCC kommunikation (som vel ikke er helt uinteressant for vores slags).

Det lyder som et spændende projekt, jeg også godt kunne deltage i; og så skal den naturligvis også lære NMRAnet/OpenLCB... Smile

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Snuden

Underbetalt kontorsmølf

Haderslev

Indlæg: 590

PB  Blog

Jeg har fundet den her som alternativ til Velleman enheden, hvis man vil have noget der virker med andet end Windows. Både software og driver er open source. Det er ca. det samme prisleje.

http://www.syscompdesign.com/CGR101.html

__________________

MVH

Morten Strårup

K.P.E.V i Sønderjylland og Nordslesvig 1908 - 1914. DSB epoke 3. Min egen fantasibane: Det Kongelige Sønderjydske Jernbane Selskab KSJS fra 1920 til 1985. Råstoftransporter via jernbanen.

Yngste deltager i Peters garage. - Medlem af MERG.

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

angatyr skrev:
Men så kommer der en ny Windows eller man skifter til 64bit eller sågar til Linux - og så er der ingen drivere, og hvis man har haft skopet i et par år, kan man godt glemme alt om, at der kommer nye.

Jeg er blevet "beriget" med en ny laptop - med Windows 8: I må godt have ondt af mig, det er dog noget af det værste, jeg længe har været udsat for... Sad

Men Velleman har skam rigtige Windows 8 drivere til skopet - og der er også dukket et API op, så man kan skrive sine egne programmer, der udnytter skopet. Det sidste har jeg ikke fået set nærmere på, men det ser godt nok spændende ud.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

angatyr

Blistrup

Indlæg: 35

PB

Jeg kan anbefale at hente og installere Classic Shell - det gør livet med Windows 8 noget mere udholdeligt Smile

mvh
Henrik

__________________

Morituri te salutant
/henrik

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Nu du leger med Arduino, og digitale signaler, så vil jeg anbefale en anden gadget. En logic analyzer fra Saleae, som er sådan cirka i samme størrelse:

http://www.saleae.com/

Jeg kunne jo ikke dy mig, så nu har jeg også sådan et dyr: En dejlig lille boks, som jeg utvivlsomt vil få megen glæde af. Smile

Citat:
Således har jeg "lært" den at dekode DCC kommunikation (som vel ikke er helt uinteressant for vores slags).

Bestemt: Min første opgave hedder netop DCC på Arduino. Hello World kører - jeg kan tænde og slukke den berømte LED på ben 13 via DCC som var det et sporskifte, men der er naturligvis lang vej endnu til en for alvor fungerende løsning.

Da jeg har en vis modvilje mod at genopfinde hjulet, vil jeg gerne høre, om du kunne tænke dig at dele din DCC dekoder? Jeg kunne muligvis bidrage til projektet, og vil helt sikkert også lave en OpenLCB dekoder senere hen.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Mikael

Udviklingsingeniør

Indlæg: 594

PB  Hjemmeside

Lars Skjærlund skrev:

Jeg kunne jo ikke dy mig, så nu har jeg også sådan et dyr: En dejlig lille boks, som jeg utvivlsomt vil få megen glæde af. Smile

Tillykke med den. Den bliver du med garanti glad for. Købte du den store eller den lille?

Citat:
Da jeg har en vis modvilje mod at genopfinde hjulet, vil jeg gerne høre, om du kunne tænke dig at dele din DCC dekoder? Jeg kunne muligvis bidrage til projektet, og vil helt sikkert også lave en OpenLCB dekoder senere hen.

Selvfølgelig vil jeg det. Jeg har allerede gjort det på Saleaes brugerforum, men det kræver vist at man registrerer sig der først. Du kan bare hente den her i stedet:

http://www.ejberg.dk/external/sporskiftet/DCCAnalyzer.zip

Bare pak zip filen ud, tag dll filen og kopier ned i Analyzers mappen hvor du installerede Saleae softwaren.

Resten i zip filen er sourcekoden, hvis du vil pille. Men der skal du givetvis registrere dig hos Saleae og så hente deres Analyzer sdk og brugsforvirring, før du forstår noget videre af det Big smile

http://community.saleae.com/

 

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Tillykke med den. Den bliver du med garanti glad for. Købte du den store eller den lille?

Jeg købte den store - prisforskellen var ikke så stor, når man tager i betragtning hvad mere man får.

Citat:
Selvfølgelig vil jeg det. Jeg har allerede gjort det på Saleaes brugerforum, men det kræver vist at man registrerer sig der først.

Det var noget af det første, jeg gjorde; jeg har også hentet SDKen, og er i gang med at grave mig gennem den. Desværre kan man vist ikke længere få fat i VS 2008 Express, men indtil videre har jeg bygget diverse eksempler med VS 2010 Express, og det har virket, som det skulle.

Citat:
Du kan bare hente den her i stedet:

http://www.ejberg.dk/external/sporskiftet/DCCAnalyzer.zip

Skal lige have puttet sønnike - så må jeg vist i gang med at lege! Smile

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Bare pak zip filen ud, tag dll filen og kopier ned i Analyzers mappen hvor du installerede Saleae softwaren.

Jeg har nu leget med det et par dage - men jeg kan desværre ikke rigtigt få den til at virke: Den dekoder præambelen korrekt, men herefter viser den blot en stribe 0er og 1er - hvis der er 1er nok på stribe, blive de dekodet som en fejlbehæftet præambel:

Billede

Så vidt jeg kan se, er der er en korrekt DCC pakke, der indeholder fire bytes med værdierne 00000011 00111111 10000000 10111100. Hvis jeg har ret, betyder pakken, at et lokomotiv med adressen 3 skal sætte hastigheden efter 128 trins standarden - lokomotivet skal køre forlæns med hastigheden 0 - dvs. holde stille. Det er DecoderPro i kombination med en SPROG, der udsender disse - jeg ved ikke hvorfor. Der er ikke noget lokomotiv på.

Der er til gengæld en Arduino på, der fungerer som tilbehørsdekoder - og den fungerer fint: Jeg kan styre den fra DecoderPro og tænde og slukke dioden på Arduinoens port 13. Arduinoen reagerer korrekt i forhold til adresser og alle øvrige ting, jeg har kunnet finde på at teste. Men mit trace fra DCC analyzeren ser konstant ud som ovenstående.

Er det noget, du har lyst til at vi arbejder videre med? Skal vi lave en tråd her på Sporskiftet til formålet - eller foretrækker du at arbejde på en anden måde? Jeg er i gang med at installere en Subversion server her på Sporskiftet - den virker sådan set nu, men jeg skal have opfundet en måde at lave adgangskontrol i kombination med Drupal, før jeg for alvor sætter den i fri drift.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Mikael

Udviklingsingeniør

Indlæg: 594

PB  Hjemmeside

Lars Skjærlund skrev:

Jeg har nu leget med det et par dage - men jeg kan desværre ikke rigtigt få den til at virke: Den dekoder præambelen korrekt, men herefter viser den blot en stribe 0er og 1er - hvis der er 1er nok på stribe, blive de dekodet som en fejlbehæftet præambel:

Ja, det ser godt nok lidt mærkeligt ud. Så vidt jeg husker, så markerer de røde krydser en timingfejl, hvor der er for stor forskel på den høje og den lave halvperiode. Hvad er tiderne, der hvor fejlen er? Du kan evt. prøve at øge samplehastigheden.

Jeg går ikke ud fra at du måler direkte på skinnerne. Det ville nok være for hård kost for logic analyzeren i det lange løb. Du har sikkert en form for transistorkobling, eller måske ligefrem en optokobler, der bringer signalet ned på logikniveau. Muligvis er dine stige- og faldetider her ikke tilstrækkeligt symmetriske. Kører du 3.3 eller 5V? Og har du sat analyzeren til det rigtige niveau hertil?

Og lad os bare lave en passende tråd herinde til den fortsatte snak.

 

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Ja, det ser godt nok lidt mærkeligt ud. Så vidt jeg husker, så markerer de røde krydser en timingfejl, hvor der er for stor forskel på den høje og den lave halvperiode. Hvad er tiderne, der hvor fejlen er? Du kan evt. prøve at øge samplehastigheden.

Jeg har prøvet den samme øvelse på 10 MHz, men det gør ingen forskel - der kommer blot flere timingfejl.

Citat:
Jeg går ikke ud fra at du måler direkte på skinnerne. Det ville nok være for hård kost for logic analyzeren i det lange løb. Du har sikkert en form for transistorkobling, eller måske ligefrem en optokobler, der bringer signalet ned på logikniveau. Muligvis er dine stige- og faldetider her ikke tilstrækkeligt symmetriske. Kører du 3.3 eller 5V? Og har du sat analyzeren til det rigtige niveau hertil?

Jeg har skam sat en optokobler på - med følgende kredsløb:

Billede

Det er nok også her, problemet ligger: Det lader til, at 4N35 ganske enkelt ikke er hurtig nok, hvilket er lidt ærgerligt, da jeg netop har købt 100 af dem... Med ovenstående setup får jeg et input på Arduinoens D2, der ser således ud:

Billede

DCC biblioteket, som jeg bruger på Arduinoen, er mægtig glad for dette - men det er analyzeren ikke; og med god ret, må man desværre nok sige. Bemærk iøvrigt, hvordan jeg her har benyttet det oscilloskop, som tråden egentligt handler om: Målinger som dette kan man ikke lave med Saleae analyzeren - der er altså ikke tale om enten/eller, men derimod om både/og. Smile

Den kritiske komponent har vist sig at være R2 på diagrammet ovenfor: Ved at gøre den mindre, har jeg kunnet gøre kurven bedre og bedre. Jeg nåede helt ned på 100Ω, men så blev den laveste spænding pludseligt omkring 2V, og det var ikke så brugbart; en værdi på 180Ω viste sig imidlertid at give brugbare resultater:

Billede

Her kan man så nøjes med at undre sig over, at pakke nummer to er dekodet som "?"?

Desværre kunne Arduinoen ikke lide disse små modstande: Jeg opdagede, at processoren blev temmeligt varm, og den er vist desværre stået af - jeg kan ihvertfald ikke få den til at virke mere. Heldigvis er det ikke så dyrt at reparere - man køber blot en ny processor og skifter den ud, den sidder i en sokkel på Arduinoen. Jeg forstår ikke helt, hvad der er gået galt - den store strøm bliver trukket fra Arduinoens strømforsyning, ikke fra processoren, og strømforsyningen har det godt nok.

Skulle Arduinoens indgang ikke "måle" på kredsløbet med en relativt høj impedans?

Under alle omstændigheder vil jeg stoppe med flere eksperimenter, indtil jeg har fået reservedelene hjem - og nogle andre optokoblere, konklusionen må vel være, at 4N35 ikke er hurtig nok til opgaven. Øv.

Citat:
Og lad os bare lave en passende tråd herinde til den fortsatte snak.

Jeg laver en ny tråd, når jeg er oppe at køre igen.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Lars Hvis du har mere end een Arduino, så køb da i stedet ex her: http://www.cypax.dk/vare/03.089.0328 Herefter forbinder du blot Arduinoen med den nye chip således: http://arduino.cc/en/Tutorial/ArduinoISP Herved er ny bootloader klar og Arduinoen virker som før, blot til under 1/2 pris
__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Skott.

Skott skrev:
Hvis du har mere end een Arduino, så køb da i stedet ex her: http://www.cypax.dk/vare/03.089.0328 Herefter forbinder du blot Arduinoen med den nye chip således: http://arduino.cc/en/Tutorial/ArduinoISP Herved er ny bootloader klar og Arduinoen virker som før, blot til under 1/2 pris

Jep - det kan jeg godt se, selvom under ½ pris nok er lidt af en tilsnigelse: Jeg har givet 44,- kr. i enkeltstyk incl. moms, mens den pris på lige over 20,- kr., du linker til, er ved fem styk og excl. moms. Men billigere er det bestemt: Let Elektronik var faktisk den dyreste forhandler på min liste - til gengæld den eneste, der havde den på lager med bootloader til en Duemilanove, så jeg besluttede mig for den hurtigste og nemmeste løsning.

Faktisk var jeg rigtigt doven og bestilte dette shield også: Så kan jeg lave dem på samlebånd i fremtiden - og Cypax kan meget nemt ende med at blive leverandøren. Selvom jeg naturligvis ikke håber på at brænde alt for mange af...

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Mikael

Udviklingsingeniør

Indlæg: 594

PB  Hjemmeside

Lars Skjærlund skrev:

DCC biblioteket, som jeg bruger på Arduinoen, er mægtig glad for dette - men det er analyzeren ikke; og med god ret, må man desværre nok sige.

Tjah. Softwaren i Arduinoen er nok lavet til bare at skelne mellem 0 og 1, og med masser af ekstra luft omkring fejltimings.

Jeg skrev analyzeren med bagtanke i at kunne bruge den til at analysere bit-timingen op imod DCC standarden. Så hvis man nu skulle bygge sin egen command station, så kunne man verificere den. Jeg har allerede lagt noget tolerance ind i analyzeren, men det kunne man sagtens gøre større.

Citat:

Den kritiske komponent har vist sig at være R2 på diagrammet ovenfor: Ved at gøre den mindre, har jeg kunnet gøre kurven bedre og bedre. Jeg nåede helt ned på 100Ω, men så blev den laveste spænding pludseligt omkring 2V, og det var ikke så brugbart;

Nej, her har du sikkert ramt grænsen for optokoblerens CTR. Det kunne nok rettes ved at øge strømmen gennem dioden på indgangen. Men det er ikke den rigtige måde at gøre det på. Sæt i stedet R2 tilbage til den oprindelige værdi. Eksperimentér herefter med også at sætte en modstand fra basen (pin 6) til stel. Jeg vil gætte på nogle få kohm vil være passende.

Dit problem er at fototransistoren ikke slukker for sin CE strækning lige så hurtigt som den kan tænde for den. Ved at sænke R2 øger du strømmen gennem CE, og mindsker dermed tiden som transistoren forbliver i sit mætningsområde. Mit forslag vil i stedet hjælpe basen med at aflade når lyset forsvinder. Værdien af modstanden skal nok findes ved lidt eksperimenteren. For stor modstand, og den hjælper ikke nok. For lille modstand vil aflade basen, også med lys på, og så får du slet ikke noget signal igennem. Men med en passende værdi kan du højst tænkeligt balancere forsinkelserne ved både tænd og sluk, så de bliver tæt på symmetriske. Jeg har selv brugt samme trick på en 6N138 optokobler.

Citat:

Her kan man så nøjes med at undre sig over, at pakke nummer to er dekodet som "?"?

Ja, det er mystisk. Hvis du zoomer tilpas langt ind, skifter det spørgsmålstegn så til "Analyzer error"? Hvis det gør, så har du fundet en fejl i min analyzer kode (der bliver opdaget i DCCAnalyzerResults.cpp linje 69). Jeg kan ikke lige gennemskue hvordan det overhovedet kan lade sig gøre.

Citat:

Skulle Arduinoens indgang ikke "måle" på kredsløbet med en relativt høj impedans?

Jo, jeg kan ikke se hvordan det skulle kunne være sket. Med mindre der er noget kode, der kortvarigt sætter den pin som en udgang på et tidspunkt.

 

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Lars

Lars Skjærlund skrev:

Jep - det kan jeg godt se, selvom under ½ pris nok er lidt af en tilsnigelse: Jeg har givet 44,- kr. i enkeltstyk incl. moms, mens den pris på lige over 20,- kr., du linker til, er ved fem styk og excl. moms. Men billigere er det bestemt: Let Elektronik var faktisk den dyreste forhandler på min liste - til gengæld den eneste, der havde den på lager med bootloader til en Duemilanove, så jeg besluttede mig for den hurtigste og nemmeste løsning.

OK - Det er så rigtigt, men med tanke på de projekter, du har snakket op er undervejs - med mange Arduinoer rundt om på banen, så ville en stang ATmegaer måske ligge på hylden en dag Wink


Lars Skjærlund skrev:
Faktisk var jeg rigtigt doven og bestilte dette shield også: Så kan jeg lave dem på samlebånd i fremtiden - og Cypax kan meget nemt ende med at blive leverandøren. Selvom jeg naturligvis ikke håber på at brænde alt for mange af...

Super - Det er da lettere - Enig. Håber, du får god fornøjelse af indkøbet Smile

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Tjah. Softwaren i Arduinoen er nok lavet til bare at skelne mellem 0 og 1, og med masser af ekstra luft omkring fejltimings.

Helt sikkert. :)

Citat:
Jeg skrev analyzeren med bagtanke i at kunne bruge den til at analysere bit-timingen op imod DCC standarden. Så hvis man nu skulle bygge sin egen command station, så kunne man verificere den. Jeg har allerede lagt noget tolerance ind i analyzeren, men det kunne man sagtens gøre større.

Jeg er ikke færdig med at studere APIen - men måske man kunne lave en option, så man kunne vælge "Strict timing" eller "Relaxed timing"? Det første ville være fint ved udvikling af f.eks. en command station, som du selv er inde på - det andet, hvis man vil måle på mindre optimale real-world scenarier. Det virker lidt absurd, at man har et kredsløb, der virker, og hvor man tydeligt kan aflæse værdierne "med håndkraft" - men analyzeren nægter at være med, fordi timingen er nogle få nS gal (og det er det, der er tale om); den burde nærmere vise en advarsel, men dekode løs i sådanne tilfælde, hvis du spørger mig.

Citat:
Nej, her har du sikkert ramt grænsen for optokoblerens CTR. Det kunne nok rettes ved at øge strømmen gennem dioden på indgangen. Men det er ikke den rigtige måde at gøre det på. Sæt i stedet R2 tilbage til den oprindelige værdi. Eksperimentér herefter med også at sætte en modstand fra basen (pin 6) til stel. Jeg vil gætte på nogle få kohm vil være passende.

Så lærte jeg noget nyt igen i dag - fedt! Jeg har nu googlet en del på emnet og lært, hvad man bruger basis til på en sådan optokobler. Jeg må i gang med at lege videre.

Citat:

Citat:
Skulle Arduinoens indgang ikke "måle" på kredsløbet med en relativt høj impedans?

Jo, jeg kan ikke se hvordan det skulle kunne være sket. Med mindre der er noget kode, der kortvarigt sætter den pin som en udgang på et tidspunkt.

Right you are: Jeg har her, som så ofte før, hugget noget kode på nettet og tilpasset det mine formål. Koden her er oprindeligt skrevet til at styre servoer, men jeg har lavet den om til en Hello world med LEDen på D13:

//DCC Decoder
//By Adam Hellier <adam@adamhellier.co.uk>
//Free for personal use, may not be reproduced comercially without consent
 
#include <NmraDcc.h>
 
//Begin Dcc Code
 
NmraDcc  Dcc ;
DCC_MSG  Packet ;
 
struct CVPair
{
  uint16_t  CV;
  uint8_t   Value;
};
 
CVPair FactoryDefaultCVs [] =
{
  {
    CV_ACCESSORY_DECODER_ADDRESS_LSB, 1            }
  ,
  {
    CV_ACCESSORY_DECODER_ADDRESS_MSB, 0            }
  ,
};
 
uint8_t FactoryDefaultCVIndex = 0;
 
void notifyCVResetFactoryDefault()
{
  // Make FactoryDefaultCVIndex non-zero and equal to num CV's to be reset 
  // to flag to the loop() function that a reset to Factory Defaults needs to be done
  FactoryDefaultCVIndex = sizeof(FactoryDefaultCVs)/sizeof(CVPair);
};
 
const int DccAckPin = 2 ;
 
// This function is called by the NmraDcc library when a DCC ACK needs to be sent
// Calling this function should cause an increased 60ma current drain on the power supply for 6ms to ACK a CV Read 
void notifyCVAck(void)
{
  digitalWrite( DccAckPin, HIGH );
  delay( 6 );  
  digitalWrite( DccAckPin, LOW );
}
 
 
 
//Begin the void Setup
void setup()
{
  {
    // Configure the DCC CV Programing ACK pin for an output
    pinMode( DccAckPin, OUTPUT );
 
    // Setup which External Interrupt, the Pin it's associated with that we're using and enable the Pull-Up 
    Dcc.pin(0, 2, 1);
 
    // Call the main DCC Init function to enable the DCC Receiver
    Dcc.init( MAN_ID_DIY, 10, FLAGS_OUTPUT_ADDRESS_MODE | FLAGS_DCC_ACCESSORY_DECODER, 0 );
  }
 
  pinMode(13, OUTPUT);
}
 
 
 
// This function is called whenever a normal DCC Turnout Packet is received
void notifyDccAccState( uint16_t Addr, uint16_t BoardAddr, uint8_t OutputAddr, uint8_t State)
{
  if (Addr <= 13 && Addr >= 1) { //checks to see if the Adress CV belongs to this decoder
    if ((OutputAddr % 2) == 0) { //checks to see if we have anything left when output addresss is divided by 2
      digitalWrite(13, HIGH);
    } else {
      digitalWrite(13, LOW);
    }
  }
}
 
 
 
void loop()
{
  // You MUST call the NmraDcc.process() method frequently from the Arduino loop() function for correct library operation
  Dcc.process();
 
  if (FactoryDefaultCVIndex && Dcc.isSetCVReady()) {
    FactoryDefaultCVIndex--; // Decrement first as initially it is the size of the array 
    Dcc.setCV( FactoryDefaultCVs[FactoryDefaultCVIndex].CV, FactoryDefaultCVs[FactoryDefaultCVIndex].Value);
  }
}

Den laver åbenbart D2 om til output ind imellem for at sende ACK: Jeg havde naturligvis lagt mærke til det, men havde besluttet, at jeg ville vente til senere med at dechifrere den del. Jeg har ikke umiddelbart kunne finde denne del i NMRA standarderne, men må lede noget mere.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Skott.

Skott skrev:
OK - Det er så rigtigt, men med tanke på de projekter, du har snakket op er undervejs - med mange Arduinoer rundt om på banen, så ville en stang ATmegaer måske ligge på hylden en dag Wink

Ja, det ender det jo nok med. Smile

Men lige netop med Arduino til modeltog håber jeg dog, situationen vil blive en lidt anden: Jeg er ved at se på, hvordan man kan få produceret en større mængde Arduino Micro, hvor der er tilføjet de få ekstra komponenter, der skal til for at kunne dekode en protokol som DCC - mere præcist, optokobleren med omliggende passive komponenter som vist ovenfor. Den skal også have en ensretter, så den kan strømforsynes fra sporet, men må ellers gerne være identisk med Micro, hvis du spørger mig.

Med lidt held kunne man skabe et community omkring denne løsning, så mange ville være interesserede, købe - og dermed få prisen ned?

__________________

MVH
Lars

Like 1 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Enig - Det lyder rigtig spændende. Hvis du vil forsyne Arduinoen fra sporet, bør du som minimum også tilføje en kondensator efter dioden (måske 10 - 100uF - evt. med en 100nF kondensator parallel over - af udglatning og støjhensyn) 

Sjovt, at de anvender en ATmega32 i stedet for 328'eren på micronen -> Flere I/O på mindre plads - Det er da Win/Win Smile

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Skott.

Skott skrev:
Enig - Det lyder rigtig spændende. Hvis du vil forsyne Arduinoen fra sporet, bør du som minimum også tilføje en kondensator efter dioden (måske 10 - 100uF - evt. med en 100nF kondensator parallel over - af udglatning og støjhensyn)

Kondensatoren er der allerede, ligesom en spændingsregulator - de skal blot fødes med en DC, og det er nu engang AC, der kommer fra sporet. Derfor ensretteren - resten burde allerede være en del af designet.

Citat:
Sjovt, at de anvender en ATmega32 i stedet for 328'eren på micronen -> Flere I/O på mindre plads - Det er da Win/Win Smile

Nemlig: Det er også derfor, jeg har kastet min kærlighed på den frem for Pro Mini, som jeg ellers har købt nogle stykker af. Der er også mange flere PWM udgange, der kan bruges til blinkende dioder, hvis man ikke vil bruge det TLC kredsløb, jeg har kastet min kærlighed på.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Lars

Kiggede lige på diagrammet på micoeen og kan se, der allerede sidder 22uF samt 100nF, så det er jo fint - Men der sidder en Mosfet på Vin af spændingsregulatoren, som jeg ikke lige kan se, hvad har af funktionme.

Jeg vil dog foreslå dig, at du anvender en diodebro i stedet for en enkelt diode - For det første taber du 1.4V over denne i stedet for 0.7-1V, som du kun vil ved en alm. diode. Det er alligevel et pænt spændingsfald, der kommer til at ligge over regulatoren, der jo skal generere 5V til uC'eren. Jeg tror også, det er derfor, der kun anbefales 7-12V som indgangsspænding af producenten. Men vigtigst: så sikrer du, boardet virker rigtigt uanset, hvordan du vender forsyningsledningerne!

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Mikael

Udviklingsingeniør

Indlæg: 594

PB  Hjemmeside

Lars Skjærlund skrev:

Jeg er ikke færdig med at studere APIen - men måske man kunne lave en option, så man kunne vælge "Strict timing" eller "Relaxed timing"? Det første ville være fint ved udvikling af f.eks. en command station, som du selv er inde på - det andet, hvis man vil måle på mindre optimale real-world scenarier. Det virker lidt absurd, at man har et kredsløb, der virker, og hvor man tydeligt kan aflæse værdierne "med håndkraft" - men analyzeren nægter at være med, fordi timingen er nogle få nS gal (og det er det, der er tale om); den burde nærmere vise en advarsel, men dekode løs i sådanne tilfælde, hvis du spørger mig.

Det er faktisk præcis sådan jeg allerede har lavet analyzeren. Jeg opererer med 3 sæt timingkrav. Det første er "strict", som går benhårdt lige til grænserne i DCC standarden. Fejl herfra bliver kun markeret hvis det er enablet i analyzerens konfiguration.
Andet sæt timings er "relaxed", og tillader 3 µs fejl ud over standarden. Fejl herudover bliver markeret, men stadig dekodet rigtigt.
Det tredje sæt hedder "out-of-spec", og definerer hvornår analyzeren skal give op.De kan alle ses i DCCAnalyzer.cpp:

filter_strict

Jeg vil tro at det er filter_outofspec.bit1diffmax på 10 µs driller i dit tilfælde. Men det ser man bedst ved at tage dit signal med fejl i, og så aflæse præcis hvordan timingen er for begge halv-bits.

.bit0min = (U64)mSampleRateHz * 95 / 1000000;
filter_strict.bit0max = (U64)mSampleRateHz * 9900 / 1000000;
filter_strict.bit0summax = (U64)mSampleRateHz * 12000 / 1000000;
filter_strict.bit1min = (U64)mSampleRateHz * 55 / 1000000;
filter_strict.bit1max = (U64)mSampleRateHz * 61 / 1000000;
filter_strict.bit1diffmax = (U64)mSampleRateHz * 3 / 1000000;
filter_strict.preamble_count_min = 14;

filter_relaxed.bit0min = (U64)mSampleRateHz * 90 / 1000000;
filter_relaxed.bit0max = (U64)mSampleRateHz * 10000 / 1000000;
filter_relaxed.bit0summax = (U64)mSampleRateHz * 12000 / 1000000; // Note: Value not specified in NMRA standards
filter_relaxed.bit1min = (U64)mSampleRateHz * 52 / 1000000;
filter_relaxed.bit1max = (U64)mSampleRateHz * 64 / 1000000;
filter_relaxed.bit1diffmax = (U64)mSampleRateHz * 6 / 1000000;
filter_relaxed.preamble_count_min = 10;

filter_outofspec.bit0min = (U64)mSampleRateHz * 80 / 1000000; // Out-of-spec but decodeable is not part of the NMRA standards
filter_outofspec.bit0max = (U64)mSampleRateHz * 15000 / 1000000;
filter_outofspec.bit0summax = (U64)mSampleRateHz * 20000 / 1000000;
filter_outofspec.bit1min = (U64)mSampleRateHz * 46 / 1000000;
filter_outofspec.bit1max = (U64)mSampleRateHz * 70 / 1000000;
filter_outofspec.bit1diffmax = (U64)mSampleRateHz * 10 / 1000000;
filter_outofspec.preamble_count_min = 6;
Like 0 kan lide
Top

Picture

Mikael

Udviklingsingeniør

Indlæg: 594

PB  Hjemmeside

Ok, der gik et eller andet helt vildt galt med copy/paste og Sporskiftets editor. Jeg håber det er forståeligt alligevel.

 

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Skott.

Skott skrev:
Kiggede lige på diagrammet på micoeen og kan se, der allerede sidder 22uF samt 100nF, så det er jo fint - Men der sidder en Mosfet på Vin af spændingsregulatoren, som jeg ikke lige kan se, hvad har af funktionme.

FETen sidder på alle nyere Arduinoer: Den bruges til at skifte strømforsyning. Man kan strømforsyne Arduinoen fra en ekstern kilde, men forbinder man den med USB til en computer, vil strømforsyningen skifte til USB, selvom der også er en ekstern strømforsyning på.

Citat:
Jeg vil dog foreslå dig, at du anvender en diodebro i stedet for en enkelt diode

Det er bestemt også min hensigt: Jeg skrev vist "ensretter" - det betyder i min sprogbrug en diodebro, men det er naturligvis ikke indlysende. Så - for nu at skære det helt ud: Jeg vil have en ensretterbro til strømforsyningen ud over de nuværende komponenter, og så vil jeg have det viste kredsløb med optokobleren ved siden af. Jeg kan jo ikke så godt måle spændingen på indersiden af ensretterbroen, hvor kondensatoren vil ødelægge DCC signalet.

Men med de få ekstra komponenter burde Arduinoen til gengæld også være klar til såvel at køre på forsyningsspændingen som dekode et digitalsignal på samme. Eller kun dekode, og så blive forsynet fra en anden kilde.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Det er faktisk præcis sådan jeg allerede har lavet analyzeren. Jeg opererer med 3 sæt timingkrav. Det første er "strict", som går benhårdt lige til grænserne i DCC standarden. Fejl herfra bliver kun markeret hvis det er enablet i analyzerens konfiguration.
Andet sæt timings er "relaxed", og tillader 3 µs fejl ud over standarden. Fejl herudover bliver markeret, men stadig dekodet rigtigt.
Det tredje sæt hedder "out-of-spec", og definerer hvornår analyzeren skal give op.

Jeg har pillet lidt i din kode, så den dumper en del debuginformation til en fil - og du har ret, den dør i "out-of-spec".

Leger videre, når jeg har fået min pakke med reservedele i morgen.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Nej, her har du sikkert ramt grænsen for optokoblerens CTR. Det kunne nok rettes ved at øge strømmen gennem dioden på indgangen. Men det er ikke den rigtige måde at gøre det på. Sæt i stedet R2 tilbage til den oprindelige værdi. Eksperimentér herefter med også at sætte en modstand fra basen (pin 6) til stel. Jeg vil gætte på nogle få kohm vil være passende.

Du havde ret - næsten: Det hjalp gevaldigt med den ekstra modstand, men den skulle være en del større:

Billede

Normalstørrelsen mindre - dvs. 18 K - giver problemer, da logisk 0 stiger til omkring 2 V. En værdi på f.eks. 10 K reducerer amplituden til omkring 10 mV. Værdier større end 22 K reducerer blot den positive effekt: Værdien er altså overraskende følsom, så man må håbe, den ikke varierer for meget med produktionstolerancer i optokobleren - det har jeg ikke testet endnu.

Til gengæld er både Arduinoen og analyzeren glade nu: Jeg kan styre min Arduino via min SPROG og DecoderPro, og jeg kan samtidigt måle på den:

Billede

Men som du kan se, er der stadig et problem med manglende dekodning af den første datapakke: Jeg skal nok prøve at debugge på det.

Samtidigt har jeg testet lidt: Det er SPROG II, der udsender pakkerne ovenfor, så længe den er indstillet til "tændt" - selv når DecoderPro er lukket helt ned. Det er lidt problematisk, da det har vist sig at være overordentligt vanskeligt at finde nålen i høstakken: Der skal godt nok scrolles meget og længe for at finde de få regulære DCC pakker, jeg sender afsted, når SPROG kontinuerligt sender idle pakker som ovenstående.

Det vil derfor nok være praktisk med et filter, der kan fjerne idle pakker, så man lettere kan finde nyttepakkerne; men det vil jeg komme nærmere ind på i en anden tråd - nu har jeg en løsning, hvor kurveformerne er i orden, og det er jo den del, der relaterer til oscilloskopet, som denne tråd handler om. Jeg laver en ny tråd, når jeg har fået set nærmere på din kode.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Mikael

Udviklingsingeniør

Indlæg: 594

PB  Hjemmeside

Lars Skjærlund skrev:

Normalstørrelsen mindre - dvs. 18 K - giver problemer, da logisk 0 stiger til omkring 2 V. En værdi på f.eks. 10 K reducerer amplituden til omkring 10 mV. Værdier større end 22 K reducerer blot den positive effekt: Værdien er altså overraskende følsom, så man må håbe, den ikke varierer for meget med produktionstolerancer i optokobleren - det har jeg ikke testet endnu.

Ja, jeg kan godt frygte at tolerancer kan drille. Jeg har ikke haft problemer med denne metode, men jeg benyttede også en anden optokobler: 6N138. Den er vist beregnet til højhastigheds kommunikation, men koster også noget mere.

Citat:

Men som du kan se, er der stadig et problem med manglende dekodning af den første datapakke: Jeg skal nok prøve at debugge på det.

Ja, det er meget mystisk. Jeg vil prøve at lave en simulation af den pakke, præcis som du har den der. Har du prøvet at zoome ind på spørgsmålstegnet, og skifter den så til "Analyzer error" i stedet?

 

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Mikael.

Mikael skrev:
Ja, jeg kan godt frygte at tolerancer kan drille. Jeg har ikke haft problemer med denne metode, men jeg benyttede også en anden optokobler: 6N138. Den er vist beregnet til højhastigheds kommunikation, men koster også noget mere.

Det kan godt være, det bliver vejen frem - selvom det undrer mig en del, hvis DCC skal karakteriseres som "højhastighed". Da jeg spekulerer i masseproduktion, prøver jeg blot at holde prisen så langt nede som muligt.

Citat:
Ja, det er meget mystisk. Jeg vil prøve at lave en simulation af den pakke, præcis som du har den der. Har du prøvet at zoome ind på spørgsmålstegnet, og skifter den så til "Analyzer error" i stedet?

Ja, jeg har prøvet at zoome voldsomt ind - og nej, det gør ingen forskel.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Mikael

Udviklingsingeniør

Indlæg: 594

PB  Hjemmeside

Lars Skjærlund skrev:

Det kan godt være, det bliver vejen frem - selvom det undrer mig en del, hvis DCC skal karakteriseres som "højhastighed". Da jeg spekulerer i masseproduktion, prøver jeg blot at holde prisen så langt nede som muligt.

Det er klart. Men det er jo også kun påkrævet for at kunne debugge på signalet med min analyzer. Hvis man skriver sin software så den kan klare skævhedden i timingen, ja så ser jeg ingen problemer i at holde sig til den billige optokobler. Men hvis Arduinoen også skal forsynes af skinnerne, ja så kunne man overveje helt at droppe optokobleren og derved spare lidt mere.

Citat:
Ja, jeg har prøvet at zoome voldsomt ind - og nej, det gør ingen forskel.

Ahaaaa. Så er det ikke min software, der har opdaget et problem.

Prøv at gå op i Options og så "Display in Ascii". Skift til Hexadecimal, eller bare Decimal. Hjælper det? Den byte har nok en værdi, der ikke findes et ascii tegn for.

 

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Lars Skjærlund skrev:

Da' Skott.

Skott skrev:
Kiggede lige på diagrammet på micoeen og kan se, der allerede sidder 22uF samt 100nF, så det er jo fint - Men der sidder en Mosfet på Vin af spændingsregulatoren, som jeg ikke lige kan se, hvad har af funktionme.

FETen sidder på alle nyere Arduinoer: Den bruges til at skifte strømforsyning. Man kan strømforsyne Arduinoen fra en ekstern kilde, men forbinder man den med USB til en computer, vil strømforsyningen skifte til USB, selvom der også er en ekstern strømforsyning på.

Citat:
Jeg vil dog foreslå dig, at du anvender en diodebro i stedet for en enkelt diode

Det er bestemt også min hensigt: Jeg skrev vist "ensretter" - det betyder i min sprogbrug en diodebro, men det er naturligvis ikke indlysende. Så - for nu at skære det helt ud: Jeg vil have en ensretterbro til strømforsyningen ud over de nuværende komponenter, og så vil jeg have det viste kredsløb med optokobleren ved siden af. Jeg kan jo ikke så godt måle spændingen på indersiden af ensretterbroen, hvor kondensatoren vil ødelægge DCC signalet.

Men med de få ekstra komponenter burde Arduinoen til gengæld også være klar til såvel at køre på forsyningsspændingen som dekode et digitalsignal på samme. Eller kun dekode, og så blive forsynet fra en anden kilde.

Nu tog jeg lige et ekstra kig på diagrammet. Som jeg læser det, virker det til, at T1 switcher mellem en 5V forsyning fra USB-stikket, der i så fald forsyner 5V kredsløbene direkte. Sætter man i stedet en ekstern strømforsyning på, skal strømmen herfra selvfølgelig ledes gennem spændingsregulatoren U2. Glæder mig til at se det færdige diagram - det er i hvert fald gode resultater, du har fået indtil nu Smile
__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.107

PB  Blog  Hjemmeside

Da' Skott.

Skott skrev:
Nu tog jeg lige et ekstra kig på diagrammet. Som jeg læser det, virker det til, at T1 switcher mellem en 5V forsyning fra USB-stikket, der i så fald forsyner 5V kredsløbene direkte. Sætter man i stedet en ekstern strømforsyning på, skal strømmen herfra selvfølgelig ledes gennem spændingsregulatoren U2.

Jeg kan ikke helt gennemskue, om der er en uenighed her?

Arduinoen har en stribe forskellige måder at blive forsynet på - tre, for at være helt præcis:

  • Den kan forsynes fra en ekstern ren 5 V DC forsyning.
  • Den kan forsynes fra en ekstern DC forsyning af en eller anden art med en spænding over 7 V.
  • Den kan forsynes fra en host computer via en USB forbindelse.

Du har ret i, at diagrammet kan være noget forvirrende.

Det er der flere grunde til: For at kunne køre på en billig, tilfældig DC strømforsyning kræves en DC regulator. Sådan en har Arduinoen, og den har også udtag, som man kan tappe en 5 V DC fra til sine perifere kredse. Men den kan også vendes om: Onboard regulatoren kan kun levere en begrænset strøm, så har man brug for meget strøm til sine perifere kredsløb - f.eks. en masse LEDer - bør man i stedet slutte en ekstern 5 V DC til. Det gør man ved at vende kredsløbet, så det tap, man før havde på regulatoren, bruges som input fra den eksterne strømforsyning.

Arduinoen kan også drives fra den 5 V forsyning, der findes i enhver USB forbindelse; men den har igen problemer med at levere strøm nok, hvis man sætter en hård belastning på. Derfor er reglen, at hvis man sætter et USB kabel til, vil selve Arduinoen blive forsynet fra USB, mens eventuelle eksterne kredsløb stadig vil få strøm fra den eksterne forsyning - hvis der er en sådan. Det regnes som væsentligt, at Arduinoen får strøm fra USB forbindelsen, hvis den også bliver programmeret herfra - det synes jeg lyder fornuftigt.

Det er muligt, jeg har misforstået dele af det - og jeg tror også nok, der er små forskelle mellem modellerne - men i det store hele er det vist princippet. Det betyder også, at man kan sætte en Arduino på sin bane, forsyne den fra sporet eller en anden boostet DCC kilde - men alligevel proppe et USB kabel på og omprogrammere den uden at skulle afbryde forbindelserne til den eksisterende forsyning. Idiotsikret for dem, der ikke ved, at der kan være et problem - og dejligt nemt for vi andre. Det er denne lille juleleg, FETen skal bruges til. FETen blev indført med Duemilanove - indtil da havde man brugt en jumper.

Så er der selvfølgeligt også en anden "detalje": Nyere Arduoer har også fået en 3,3 V regulator - den trækker vist nok strøm fra selve Arduinoens 5 V (hvordan den så er blevet valgt jvf. ovenstående), så der også vil være strøm til eventuelle 3,3 V perifere enheder, man måtte have på sit kredsløb. Det er derfor blevet lidt af en udfordring at følge strømforsyningen rundt på diagrammet.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Lars
Lars Skjærlund skrev:

Da' Skott.

Skott skrev:
Nu tog jeg lige et ekstra kig på diagrammet. Som jeg læser det, virker det til, at T1 switcher mellem en 5V forsyning fra USB-stikket, der i så fald forsyner 5V kredsløbene direkte. Sætter man i stedet en ekstern strømforsyning på, skal strømmen herfra selvfølgelig ledes gennem spændingsregulatoren U2.

Jeg kan ikke helt gennemskue, om der er en uenighed her?

Arduinoen har en stribe forskellige måder at blive forsynet på - tre, for at være helt præcis:

  • Den kan forsynes fra en ekstern ren 5 V DC forsyning.
  • Den kan forsynes fra en ekstern DC forsyning af en eller anden art med en spænding over 7 V.
  • Den kan forsynes fra en host computer via en USB forbindelse.
. Det er ikke helt rigtigt. Kigger man på boardets specs på: http://arduino.cc/en/Main/ArduinoBoardMicro kan man se, at boardet enten kan forsynes via USB porten, hvor boardet så får sin 5V fra switchet via T1, mens man kan tilslutte en ekstern spændingskilde, der så switches, så den føres til spændingsregulatoren. Det er rigtigt læst, at 3V3 forsyningen også fødes fra 5V forsyningen, den er så anbefalet til max 50 mA, så der skal nok ikke sluttes for mange LED'er til her Wink Men du kan jo sagtens placere et ekstra stik på boardet i din version, så man kan tilslutte en ekstern 5V reguleret spændingskilde - bare husk, at er det for at forsyne en masse eksterne LED'er, vil denne strøm også løbe gennem controlleren. Det er ikke sikkert, den holder til det. Her vil jeg nok anbefale, at man bruger en ekstern driverkreds ex. ULN2003 eller lign. Jeg er ikke helt sikker på, jeg forstår den med at vende regulatoren om. Hvis du tænker på den pil, der peger opad, beskrevet 5V er det blot en label i diagrammet, der sikrer, at pcb-delen linker disse forbindelser, der alle har dette navn, sammen.
__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Lars
Lars Skjærlund skrev:

Da' Skott.

Skott skrev:
Nu tog jeg lige et ekstra kig på diagrammet. Som jeg læser det, virker det til, at T1 switcher mellem en 5V forsyning fra USB-stikket, der i så fald forsyner 5V kredsløbene direkte. Sætter man i stedet en ekstern strømforsyning på, skal strømmen herfra selvfølgelig ledes gennem spændingsregulatoren U2.

Jeg kan ikke helt gennemskue, om der er en uenighed her?

Arduinoen har en stribe forskellige måder at blive forsynet på - tre, for at være helt præcis:

  • Den kan forsynes fra en ekstern ren 5 V DC forsyning.
  • Den kan forsynes fra en ekstern DC forsyning af en eller anden art med en spænding over 7 V.
  • Den kan forsynes fra en host computer via en USB forbindelse.
. Det er ikke helt rigtigt. Kigger man på boardets specs på: http://arduino.cc/en/Main/ArduinoBoardMicro kan man se, at boardet enten kan forsynes via USB porten, hvor boardet så får sin 5V fra switchet via T1, mens man kan tilslutte en ekstern spændingskilde, der så switches, så den føres til spændingsregulatoren. Det er rigtigt læst, at 3V3 forsyningen også fødes fra 5V forsyningen, den er så anbefalet til max 50 mA, så der skal nok ikke sluttes for mange LED'er til her Wink Men du kan jo sagtens placere et ekstra stik på boardet i din version, så man kan tilslutte en ekstern 5V reguleret spændingskilde - bare husk, at er det for at forsyne en masse eksterne LED'er, vil denne strøm også løbe gennem controlleren. Det er ikke sikkert, den holder til det. Her vil jeg nok anbefale, at man bruger en ekstern driverkreds ex. ULN2003 eller lign. Jeg er ikke helt sikker på, jeg forstår den med at vende regulatoren om. Hvis du tænker på den pil, der peger opad, beskrevet 5V er det blot en label i diagrammet, der sikrer, at pcb-delen linker disse forbindelser, der alle har dette navn, sammen.
__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Kommentarvisning

Vælg din foretrukne kommentarvisning og klik på "Gem indstillinger" for at aktivere dit valg.