[Ontwikkeling]USB-scope mbv ATtiny

Op 15 juni 2010 17:55:48 schreef hennep:
Hoe krijg jij jouw ontwerp werkend zonder kristal op de print?

Een kristal is blijkbaar geen noodzaak, zoals je hier kan lezen.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Bedankt voor deze link, pros.

In de code van de usbdriver staat

#define USB_CFG_CLOCK_KHZ       (F_CPU/1000)

en

#ifndef USB_CFG_CLOCK_KHZ
#   define USB_CFG_CLOCK_KHZ 12000
#endif

#if USB_CFG_CLOCK_KHZ == 12000
#   include "usbdrvasm12.S"
#elif USB_CFG_CLOCK_KHZ == 16000
#   include "usbdrvasm16.S"
#elif USB_CFG_CLOCK_KHZ == 16500
#   include "usbdrvasm165.S"
#else
#   error "USB_CFG_CLOCK_KHZ is not one of the supported rates!"
#endif

Waarmee de frequentie van 8MHz wordt uitgesloten.

Op de door jou genoemde website staat:

It can be compiled to run with 16.5 MHz +/- 1% clock. This clock rate and precision can be met with the ATTin45's internal RC oscillator.

Ik kan de 16.5 MHz RC oscillator voor de attiny45 echter niet instellen met mijn myAVR programmer.

Heb ik hier een gebrekje in mijn programmer ontdekt?
Zie programmer screenprints: http://hennep.xs4all.nl/elec/myAVR.png

reading can seriously damage your ignorance
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Je maakt er wel een zoekplaatje van Roland.
Het werkt dus met de pll-clock, er was mij toch iets belangrijks ontgaan.
Dank je wel.

reading can seriously damage your ignorance

Sorry, ik gebruik een STK500, en zag in jouw screenshots wel de hex waarden staan. Kon zo niet herleiden wat jij dan aan moest vinken.

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Voor zij die twijfelen aan de werking :)
De nauwkeurigheid is relatief goed aaangezien ik weerstanden met een tolerantie van 10% 5% heb gebruikt, de stand staat op 1:10
http://www.uploadarchief.net/files/download/resized/wt3_tiny_usb_scope___totaal_werkend_small.jpg

Voor het DIY gehalte nog wat hoger te liften en heuse DIY-probe, kijken huiver :+ :
http://www.uploadarchief.net/files/download/resized/wt3_tiny_usb_scope___diy_probe_small.jpg

Natuurlijk ook nog de verplichte onderkant (print is nog van beta 1.4 en bevat dus nog wat bugs die creatief zijn opgelost, vanaf V1.5 zouden die eruit moeten zijn)
http://www.uploadarchief.net/files/download/resized/wt3_tiny_usb_scope___totaal_solderzijde_small.jpg

en nog wat sfeer plaatjes:
http://www.uploadarchief.net/files/download/resized/wt3_tiny_usb_scope___totaal_werkend_close-up_small.jpg
http://www.uploadarchief.net/files/download/resized/wt3_tiny_usb_scope___totaal_overzicht_boven_small.jpg
http://www.uploadarchief.net/files/download/resized/wt3_tiny_usb_scope___totaal_overzicht_schuins_small.jpg

Nu ga ik ff met de ingangstrap spelen, aloewel ik weet dat die moet herontworpen worden, toch het AC deel, DC werkt leuk :)

[Bericht gewijzigd door watchout3 op maandag 28 juni 2010 13:33:30 (14%)

en nog wat sfeer plaatjes:

Prima sfeertje met die blauwe bloemetjes.

Bedoelde je niet 1% weerstanden?

reading can seriously damage your ignorance

Aangezien men knutselplek altijd vol ligt palm ik maar de keukentafel in :p:+
(tafeldoek heeft ondertussen ook al wat oorlogslittekens :+)

T'moest eigenlijk 5% zijn, dacht dat goud 10% was, bij nader inzien dus niet.

[Bericht gewijzigd door watchout3 op maandag 28 juni 2010 12:43:40 (16%)

Ik zie geen foto's! Upload Archief zegt: file not found!

Ik kan de plaatjes niet meer zien, de bloemetjes zijn snel verwelkt.
Die 5% afwijking kun je in je programma compenseren. Alleen als je met meerdere weerstandsdelers schakelt wordt dat iets lastiger.

reading can seriously damage your ignorance

Aaargh, alle geluk dat ik elektronica studeer en niet fotografie.
Ik had bij het uploaden de optie 'resize' aangevinkt,bleek het niet echt veel verschil te maken, dus had ik de verkleinde bestande verwijdert, blijkbaar geeft dat dus een error...

Aangezien ik ze opnieuw moest uploaden heb ik de tijd genomen om ze bij te knippen, je moet het nu wel met minde bloemetjes doen... :+
Maar hopelijk is de kwaliteit van de foto's nu ook beter (is JPG nu ipv PNG)

Het schema sukkelt hier ook ergens rond (dat plaatje werkt wel;))
Ik werk dus met een spanningsdeler waar je de verhouding kan van kiezen vandaar ook die grote draaiknoppen.

Op 28 juni 2010 13:37:13 schreef watchout3:
Aaargh, alle geluk dat ik elektronica studeer en niet fotografie.

of bloemschikken!

Het gaat misschien een beetje ver maar twee extra jumperblokjes waarmee je naar de controller toe laat weten op welke deler je zit. Daarmee kun je per stand een compensatie inprogrammeren.
Misschien is het toch handiger om 1% weerstanden te plaatsen.

reading can seriously damage your ignorance

[...]of bloemschikken!

Maar dan is Henry werkloos :p

Het gaat misschien een beetje ver maar twee extra jumperblokjes waarmee je naar de controller toe laat weten op welke deler je zit. Daarmee kun je per stand een compensatie inprogrammeren.
Misschien is het toch handiger om 1% weerstanden te plaatsen.

Dat gaat idd men petje te boven, ik heb namelijk de code voor de µC niet zelf geschreven en ben daar ook niet echt capabel toe :p
Ik ben al blij dat ik het analoge deel 'werkend' heb gekregen.
Die 5% had ik liggen evenals al de rest van het schakelingetje.

T'idee heb ik van hierzo:
http://yveslebrac.blogspot.com/2008/10/cheapest-dual-trace-scope-in-ga…

Het enige wat ik nog wil doen, eens de hardware werkt, is een nieuw programmatje schrijven voor windows in VB (als het tenminste haalbaar is voor mij). Want ik vind de tijdsbasis nogal brak in elkaar zitten.

Ergens in de code is de waarde die wordt weergegeven beschikbaar. Of dat nu in de uc is of in jouw vb programma maakt niet uit. Die waarde kun je met een factor vermenigvuldigen om de correctie uit te voeren.
Wil je met 4 compensaties rekening houden dan kun je in de uc een headerblok uitlezen.
In jouw vb programma kun je ook 4 optionbuttons zetten om de deler te kiezen en eventueel ook nog de 4 factoren.

reading can seriously damage your ignorance

Zo ver had ik nog niet nagedacht :+
Eerst maar eens zien of het wel de moeite is om dat allemaal te doen

[Bericht gewijzigd door watchout3 op woensdag 14 juli 2010 12:03:32 (58%)

Nu ik toch vakantie heb ben ik er weer mee bezig.

Na enige dagen verscheten te hebben om uit een enkele voeding en symmetrische te krijgen ben ik erachter dat AC meten niet gaat lukken tenzij er een berg code word herschreven (wat ik niet zie zitten)

Het probleem was dat de koppelcondensator niet snel genoeg oplaade omdat die via een hoogomige spanningsdeler op zijn plaats werd gehouden.
Dus moest ik een negatieve spanning hebben voor een opamp symmetrisch te voeden zodat ik een impedantie aanpassing kon doen en voor de spanningsdeler 'lagere' weerstanden kon gebruiken.

De negatieve spanning heb ik gemaakt door een max232 te 'misbruiken' :+ (pinnetje 6, de charge pump, geeft een negatieve spanning en kan +- 10mA leveren :9)
Dan de spanning stabiliseren mbv een zenerregelaar, dit werd ook gedaan met de positieve spanning.

Toen ik de symmetrische voeding aan de praat had en een deftige impedantie aanpassing had kon ik verder experimenteren.
Wat niet echt hoopvol lijkt:
50Hz die van een trafo komt
http://www.uploadarchief.net/files/download/wt3_tiny_usb_scope_ac_50hz_symvoeding_proto.png

In rust blijft hij wel mooi stabiel (lees: de cap is meteen geladen, helaas heb ik nu nogal veel storing vanwege de wirwar van draadjes op men breadboard):
http://www.uploadarchief.net/files/download/wt3_tiny_usb_scope_ac_geen_signaal_symvoeding_proto.png

Nog iemand suggesties/opmerkingen?
misschien dat ik de PC software ga veranderen zodat het een spanningslogger word met een variabel tijdsinterval

C2 en C4 zijn zeker 100pF en geen 100nF...
Het zou onaanvaardbaar zijn een (USB)scoop een ingangscapaciteit van 100nF op x1 te hebben.
Keuze van C1 en C3 vind ik ook niet goed wegens lekstroom van elcos.
Meet U bijvoorbeeld rippel op een 15V voeding, dan staat de spanning op de elco met omgekeerde polariteit. (-12,5V !)

[Bericht gewijzigd door Emilien op zaterdag 24 juli 2010 22:45:23 (22%)

Ik zat op tomorrow land vandaar de late reactie.
Wel triestig van wat er in Duitsland is gebeurd, zaterdag nacht had de MC (de persoon die de DJ's aankondigt en het publiek wat probeerd mee te krijgen) verteld dat er 17 mensen waren omgekomen, alleen had ik toen niet goed gehoord waar.
S'anderendaags hoor je dan op de camping van iemand wat er gebeurd is...

C2 en C4 zijn zeker 100pF en geen 100nF...

Euhm, jawel...
Ik heb de uitleg van de originele ontwerper gevolgd:
2 filter caps on analog inputs ( from 10nf to 470nf or nothing, up to you)

Het zou onaanvaardbaar zijn een (USB)scoop een ingangscapaciteit van 100nF op x1 te hebben.

sorry... :+
Ik ga nu trouwens een poging tot doen om er een spanningslogger van te maken aangezien de source code van het programma beschikbaar is en ik dus niet moet uitvogelen hoe ik de USBcommunicatie moet starten

Keuze van C1 en C3 vind ik ook niet goed wegens lekstroom van elcos.
Meet U bijvoorbeeld rippel op een 15V voeding, dan staat de spanning op de elco met omgekeerde polariteit. (-12,5V !)

Die zijn er ondertussen uitgekegeld aangezien 50Hz al amper leesbaar is...

Ondertussen heb ik al eea liggen verbouwen aan de code (windows programma, µC code me iets te ver :p)

en dit is het resultaat geworden (graag enkele meningen :)):
http://www.uploadarchief.net/files/download/resized/wt3_usb_logger_beta2-01.png
De logger genereed een XML-file waarin de waardes komen te staan.
De XML-file is als het volgt opgebouwd:
[code=html]
<!--add comments-->
<!--2nd comment line-->
<log start-date="3/10/2010 15:26:40">
<interval_times>
<interval_1-2>500</interval_1-2>
</interval_times>
<measuring nr="0" time="15:26:40">
<channel nr="1">
<sample_1>0 mV</sample_1>
</channel>
<channel nr="2">
<sample_1>0 mV</sample_1>
</channel>
</measuring>
<measuring nr="1" time="15:26:41">
<channel nr="1">
<sample_1>0 mV</sample_1>
</channel>
<channel nr="2">
<sample_1>0 mV</sample_1>
</channel>
</measuring>
<measuring nr="2" time="15:26:41">
<channel nr="1">
<sample_1>0 mV</sample_1>
</channel>
<channel nr="2">
<sample_1>4 mV</sample_1>
</channel>
</measuring>
</log>[/code]En als het interval aan staat (en groter dan 2sec) en alle extra opties aangevinkt staan.

<!--add comments-->
<!--2nd comment line-->
<log start-date="3/10/2010 15:29:30">
  <interval_times>
    <interval_1-2>2000</interval_1-2>
  </interval_times>
  <measuring nr="0" time="15:29:30">
    <channel nr="1">
      <minimum>0 mV</minimum>
      <maximum>0 mV</maximum>
      <average>0 mV   (total of: 20)</average>
      <sample_1>0 mV</sample_1>
      <average>0 mV   (total of: 20)</average>
    </channel>
    <channel nr="2">
      <minimum>0 mV</minimum>
      <maximum>9999 mV</maximum>
      <sample_1>1 mV</sample_1>
    </channel>
  </measuring>
  <measuring nr="1" time="15:29:32">
    <channel nr="1">
      <minimum>-1 mV</minimum>
      <maximum>0 mV</maximum>
      <average>0 mV   (total of: 522)</average>
      <sample_1>0 mV</sample_1>
      <average>0 mV   (total of: 522)</average>
    </channel>
    <channel nr="2">
      <minimum>-1 mV</minimum>
      <maximum>9999 mV</maximum>
      <sample_1>0 mV</sample_1>
    </channel>
  </measuring>

De waardes die naar de XML-file worden weggeschreven worden ook weergegeven in het grijze vierkant (althans dat is de bedoeling, die code is nog niet klaar)

Er zit trouwens nog een dikke bug in :(, waar ik niet meteen de oplossing voor weet.
Ik moet 1x start duwen, dan 1x stop en als ik dan nogmaals op start duw werkt het wel.
Volgens mij gaat hij ergens in de mist bij het toekennen van de VID, PID)

Als er mensen zijn die mee willen debuggen, of geintresseerd zijn in de code, stuur me maar een mailtje.

Nogmaals een update :) (commentaar/vragen zijn steeds welkom)

De textlog werkt ook
Eigenlijk vind ik die overzichtelijker dan de xml log..., misschien dat ik de code nog aanpas zodat het enkel word opgeslagen als txt (of log).

plaatje:
enkel naar de rechtse grijze kader kijken, de zwarte is al terug gecleard door op stop te duwen
http://www.uploadarchief.net/files/download/resized/wt3_usb_logger_beta2-03.png
source code (C# project, exe zou er ook ergens moeten inzitten denk ik)
http://www.uploadarchief.net/files/download/wt3_usb-scope_beta2.zip

Leuk project.

Nu we een maand verder zijn, nog wat activiteiten en updates uitgevoerd?
Wat is je laatste PCB versie? Zag een eagle file versie van juni jl. Ik begreep dat je nog wat ging wijzigen

Weet je al wat de max meetbaar is?

Aangezien het momenteel examens zijn ligt het eventjes stil.

Maar je kan max een Hz of 10 meten denk ik ;(, hij is dus omgedoopt tot logger;)
Hetgeen ik nu nog ga aanpassen is de log-output, achteraf bezien is een XML file toch niet zo duidelijk...
(ik denk dat het een .txt of .log gaat worden met een opmaakt zoals in de textbox)
En miss hieren daar iets op de PCB (buzzer wanneer de spanning te hoog word oid :))