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 17:25]
cracki
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
  
-Zuzuweisen:+  * 6 Startpuls 
 +  * 8 Clock 
 +  * 10 Vref (sollte auf GND fest) 
 +    * wenns hoeher ist, gibts kein gescheites bild mehr 
 +  * 11 DPI Mode 
 +    * macht auf jeden Fall, wieviele Clocks man pro Zeile rausholen kann 
 +    * 0/L300 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 
 +    * bei steigender Clock gehts scheinbar los (kommt von GND hoch fuer jeden Pixel neu, gefuehlte 100ns hier) 
 +    * 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):​ 
 + 
 +  * Werte -> Shiftregister,​ neue Belichtung starten: 
 +    * Puls hoch 
 +    * Clock hoch 
 +    * warte 500us 
 +    * Clock runter 
 +    * warte 500us 
 +    * Puls runter 
 +  * Shiftregister rausholen:​ 
 +    * Clock rauf (Signal geht los) 
 +    * warte 1us 
 +    * Clock runter (Signal sollte stabil sein, kann man sampeln) 
 +    * warte 1us 
 +    * so oft wie es pixel gibt 
 +  * restliche Belichtungszeit geben 
 +    * warte, 0-20 Millisekunden haben geklappt 
 + 
 +==== Arduino ==== 
 + 
 +<​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(START,​ OUTPUT); 
 +  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);
  
-  ​* Analog Out +  ​for (uint16_t counter = 0; counter < 82 + pixels; counter += 1) 
-  ​* Start Pulse +  ​{ 
-  * Clock +    PORTD |= _BV(PORTD3);​ 
-  * Mode +    //​delayMicroseconds(1);​ 
-  ​* Vref+    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