Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projekte:epson-stylus-sx100 [2016-06-04 19:21]
cracki [Contact Image Sensor]
projekte:epson-stylus-sx100 [2017-01-17 02:01] (current)
Line 7: Line 7:
 Uebrig sind: Uebrig sind:
  
-  * Contact Image Sensor mit LEDs+  * [[projekte:​contact_image_sensor|Contact Image Sensor]] mit LEDs
   * Schrittmotor (96 Schritte, 18 Ohm, ~0.2-0.3 Ampere)   * Schrittmotor (96 Schritte, 18 Ohm, ~0.2-0.3 Ampere)
   * zwei DC Motoren, vmtl brushed   * zwei DC Motoren, vmtl brushed
Line 16: Line 16:
  
 Beschriftungen:​ FC11B913F56 F KTH0351-2 Beschriftungen:​ FC11B913F56 F KTH0351-2
 +
 +Numerierung:​
 +  * Rohm: Pin 1 aussen.
 +  * PCB: Pin 1 innen <- die nehmen wir
 +
 +==== Beleuchtung ====
  
 Die LEDs brauchen so 2-3 Volt, Strom ~20 mA bringt schon Licht. Die LEDs brauchen so 2-3 Volt, Strom ~20 mA bringt schon Licht.
Line 21: Line 27:
 die TO Pins am PCB sind: V+, Blau, Rot, Gruen. die TO Pins am PCB sind: V+, Blau, Rot, Gruen.
  
-Numerierung: +Bei 5V Versorgung sollte mit folgenden Widerständen nach Erde gezogen werden fuer weisses PapierRot:50, Grün:50, Blau:220.
-  * RohmPin 1 aussen. +
-  * PCBPin 1 innen <- die nehmen wir+
  
 +<​pagebreak>​
 Spannung 1 mA: Spannung 1 mA:
 ^ + \ - ^  1 ^  2 ^  3 ^  4 ^  5 ^ Beschreibung des Pins ^ ^ + \ - ^  1 ^  2 ^  3 ^  4 ^  5 ^ Beschreibung des Pins ^
Line 32: Line 37:
 |     4 |    |    |    |  x |    | LED GND Blau | |     4 |    |    |    |  x |    | LED GND Blau |
 |     5 |    |  R |  G |  B |  x | LED + | |     5 |    |  R |  G |  B |  x | LED + |
 +
 +==== Datensignale ====
  
 Spannung 1 mA: Spannung 1 mA:
 ^ + \ - ^    6 ^    7 ^    8 ^    9 ^   10 ^   11 ^   12 ^ Vias ^ Geometrie ​ ^ relativ ^ Vermutung ^ Beschreibung des Pins ^ ^ + \ - ^    6 ^    7 ^    8 ^    9 ^   10 ^   11 ^   12 ^ Vias ^ Geometrie ​ ^ relativ ^ Vermutung ^ Beschreibung des Pins ^
-|     6 |    x | <typo bg:#​ffe0b2>​0.61</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​b2f1ff>​1.51</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | 1    | dünn       ​| ​        ​| ​          ​| zwischen oberer Flaeche und Schrauben |+|     6 |    x | <typo bg:#​ffe0b2>​0.61</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​b2f1ff>​1.51</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | 1    | dünn       ​| ​        ​| ​Startpuls ​| zwischen oberer Flaeche und Schrauben |
 |     7 | <typo bg:#​b2ffcc>​1.22</​typo>​ |    x | <typo bg:#​b2ffe6>​1.34</​typo>​ | <typo bg:#​caffb2>​0.99</​typo>​ | <typo bg:#​b2ffe6>​1.34</​typo>​ | <typo bg:#​b2ffe6>​1.34</​typo>​ | <typo bg:#​b2ffe4>​1.33</​typo>​ | 2    | breit      | oben    | 3V3       | | |     7 | <typo bg:#​b2ffcc>​1.22</​typo>​ |    x | <typo bg:#​b2ffe6>​1.34</​typo>​ | <typo bg:#​caffb2>​0.99</​typo>​ | <typo bg:#​b2ffe6>​1.34</​typo>​ | <typo bg:#​b2ffe6>​1.34</​typo>​ | <typo bg:#​b2ffe4>​1.33</​typo>​ | 2    | breit      | oben    | 3V3       | |
-|     8 | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​ffe0b2>​0.61</​typo>​ |    x | <typo bg:#​b2f1ff>​1.51</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​b6b2ff>​1.82</​typo>​ | 1    | dünn       ​| ​        ​| ​          ​| von unten hochstechend |+|     8 | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​ffe0b2>​0.61</​typo>​ |    x | <typo bg:#​b2f1ff>​1.51</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​b6b2ff>​1.82</​typo>​ | 1    | dünn       ​| ​        ​| ​Clock     | von unten hochstechend |
 |     9 | <typo bg:#​ffb4b2>​0.41</​typo>​ | <typo bg:#​ffb2bd>​0.35</​typo>​ | <typo bg:#​ffb4b2>​0.41</​typo>​ |    x | <typo bg:#​ffb4b2>​0.41</​typo>​ | <typo bg:#​ffb4b2>​0.41</​typo>​ | <typo bg:#​ffb2b2>​0.40</​typo>​ | 3-5  | breitestes | unten   | GND       | ueber #8 | |     9 | <typo bg:#​ffb4b2>​0.41</​typo>​ | <typo bg:#​ffb2bd>​0.35</​typo>​ | <typo bg:#​ffb4b2>​0.41</​typo>​ |    x | <typo bg:#​ffb4b2>​0.41</​typo>​ | <typo bg:#​ffb4b2>​0.41</​typo>​ | <typo bg:#​ffb2b2>​0.40</​typo>​ | 3-5  | breitestes | unten   | GND       | ueber #8 |
 |    10 | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​ffe0b2>​0.61</​typo>​ | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​b2f4ff>​1.50</​typo>​ |    x | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​b9b2ff>​1.83</​typo>​ | 1    | breit      | mitte   | Vref      | driftet langsam, wenn Versorgung angeklemmt (andere pins sind nah an GND) | |    10 | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​ffe0b2>​0.61</​typo>​ | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​b2f4ff>​1.50</​typo>​ |    x | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​b9b2ff>​1.83</​typo>​ | 1    | breit      | mitte   | Vref      | driftet langsam, wenn Versorgung angeklemmt (andere pins sind nah an GND) |
-|    11 | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​ffe0b2>​0.61</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​b2f1ff>​1.51</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ |    x | <typo bg:#​bdb2ff>​1.85</​typo>​ | 1    | dünn       ​| ​        ​| ​          ​| unter der Mittleren Flaeche, ueber #12 | +|    11 | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​ffe0b2>​0.61</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ | <typo bg:#​b2f1ff>​1.51</​typo>​ | <typo bg:#​bdb2ff>​1.85</​typo>​ |    x | <typo bg:#​bdb2ff>​1.85</​typo>​ | 1    | dünn       ​| ​        ​| ​300/600 dpi | unter der Mittleren Flaeche, ueber #12 | 
-|    12 | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​ffe0b2>​0.61</​typo>​ | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​b2f4ff>​1.50</​typo>​ | <typo bg:#​b9b2ff>​1.83</​typo>​ | <typo bg:#​bbb2ff>​1.84</​typo>​ |    x | 1    | dünn       ​| ​        ​| ​          ​| ueber der unteren Flaeche, unter #11 |+|    12 | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​ffe0b2>​0.61</​typo>​ | <typo bg:#​bbb2ff>​1.84</​typo>​ | <typo bg:#​b2f4ff>​1.50</​typo>​ | <typo bg:#​b9b2ff>​1.83</​typo>​ | <typo bg:#​bbb2ff>​1.84</​typo>​ |    x | 1    | dünn       ​| ​        ​| ​Aout       | ueber der unteren Flaeche, unter #11 | 
 + 
 +==== Insgesamt ====
  
 sieht verdammt nach [[http://​rohmfs.rohm.com/​en/​products/​databook/​datasheet/​module/​contact_image_sensor/​flatbed/​lsh3008-ca10a.pdf]] aus sieht verdammt nach [[http://​rohmfs.rohm.com/​en/​products/​databook/​datasheet/​module/​contact_image_sensor/​flatbed/​lsh3008-ca10a.pdf]] aus
Line 49: Line 58:
   * 10 Vref (sollte auf GND fest)   * 10 Vref (sollte auf GND fest)
     * wenns hoeher ist, gibts kein gescheites bild mehr     * wenns hoeher ist, gibts kein gescheites bild mehr
-  * 11 DPI Mode (0/L: 300 dpi ~2600 pixel; 1/H: 600 dpi ~5200 pixel)+  * 11 DPI Mode
     * macht auf jeden Fall, wieviele Clocks man pro Zeile rausholen kann     * macht auf jeden Fall, wieviele Clocks man pro Zeile rausholen kann
 +    * 0/L: 300 dpi ~2600 clocks
 +    * 1/H: 600 dpi ~5268 clocks
 +    * nach anderen datenblaettern hat man 82 clocks "​output period",​ dann kommen die pixel (inkl. vorne und hinten dummypixeln)
 +    * 600 dpi: 5184 pixels
 +    * 300 dpi: 2592 pixels
   * 12 Analog Out   * 12 Analog Out
     * bei steigender Clock gehts scheinbar los (kommt von GND hoch fuer jeden Pixel neu, gefuehlte 100ns hier)     * bei steigender Clock gehts scheinbar los (kommt von GND hoch fuer jeden Pixel neu, gefuehlte 100ns hier)
     * bei fallender Clock sampeln klingt sinnvoll     * bei fallender Clock sampeln klingt sinnvoll
 +
 +==== Operation ====
 +
 +Startpuls wird bei fallender Clock gesampelt. Wenn Startpuls, dann werden die Werte in den Ausgabepuffer geschickt. Dann mit Clock rauscyceln. Belichtungszeit haengt wohl vom Intervall zwischen Startpulsen ab.
  
 Was ich mache (funktioniert,​ kann man bestimmt noch reduzieren):​ Was ich mache (funktioniert,​ kann man bestimmt noch reduzieren):​
Line 73: Line 91:
     * warte, 0-20 Millisekunden haben geklappt     * warte, 0-20 Millisekunden haben geklappt
  
-==== Operation ​====+==== Arduino ​====
  
-Startpuls wird bei fallender Clock gesampelt. Wenn Startpulsdann werden die Werte in den Ausgabepuffer geschickt. Dann mit Clock rauscyceln. Belichtungszeit haengt wohl vom Intervall zwischen Startpulsen ab.+<​code>​ 
 +#define START 2 
 +#define CLOCK 3 
 +#define DPIMODE 4 
 + 
 +bool dpimode = 1; 
 +uint16_t pixels = dpimode ? 5184 : 2592; 
 + 
 +uint32_t linetime = 20000; // us 
 +uint32_t sched = 0; 
 + 
 +void setup() { 
 +  pinMode(STARTOUTPUT); 
 +  pinMode(CLOCK,​ OUTPUT); 
 +  pinMode(DPIMODE,​ OUTPUT); 
 + 
 +  digitalWrite(DPIMODE,​ dpimode); 
 + 
 +  sched = micros(); 
 +
 + 
 +void loop() { 
 +  digitalWrite(START,​ HIGH); 
 +  digitalWrite(CLOCK,​ HIGH); 
 +  digitalWrite(CLOCK,​ LOW); 
 +  digitalWrite(START,​ LOW); 
 + 
 +  for (uint16_t counter = 0; counter < 82 + pixels; counter += 1) 
 +  { 
 +    PORTD |= _BV(PORTD3);​ 
 +    //​delayMicroseconds(1);​ 
 +    PORTD &= ~_BV(PORTD3);​ 
 +    //​delayMicroseconds(1);​ 
 +  } 
 + 
 +  sched += linetime; 
 +  int32_t dt = sched - micros(); 
 +  while (dt > 0x4000) 
 +  { 
 +    delayMicroseconds(0x4000);​ 
 +    dt -= 0x4000; 
 +  } 
 +  if (dt > 0) 
 +    delayMicroseconds(dt);​ 
 +
 +</​code>​
 ==== coloring code ==== ==== coloring code ====
 <​code>​ <​code>​
Navigation



You are not allowed to add pages