Author Topic: TinyI2C_LCD  (Read 67173 times)

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: TinyI2C_LCD
« Reply #45 on: July 15, 2013, 11:23:00 AM »
Salut,

ok, in eagle ist der pin mit folgendem Label versehen:
Code: [Select]
(PCINT0/AREF/ADC0) PA0Warum nennt man ihn dann D10?

Ich habe die EagleDatei angepasst. Beim Fritzingmodell fehlen mir Befestigungslöcher.

Ciao, Mathias
« Last Edit: July 15, 2013, 04:03:15 PM by MathiasW »

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #46 on: July 15, 2013, 11:29:56 AM »
Quote
Warum nennt man ihn dann D10?


http://playground.boxtec.ch/doku.php/arduino/attiny siehe "Pin Mapping zum Arduino". Im Sketch wird er bei Verwendung der "tiny"-Hardware-Anbindung so angesprochen. Wir können auch von PA0 sprechen, dann ist es eindeutig und nicht vom Chip-Format bzw. dem Software-Framework abhängig.

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: TinyI2C_LCD
« Reply #47 on: July 15, 2013, 12:37:04 PM »
Salut,

ich würde vorschlagen, bei der Portbezeichnung zu bleiben. Dadurch ist es dann auch verständlicher, die bits über PORTA und PORTB zu setzen.

Hat sich jemand mal die Eagle Files angeschaut (bin da immer noch ein Frischling)

Ciao, Mathias

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #48 on: July 15, 2013, 02:24:44 PM »
Quote
Hat sich jemand mal die Eagle Files angeschaut (bin da immer noch ein Frischling)

Nicht, dass ich da der Experte wäre, aber fehlt nicht eine Verbindung von PA5 zu D7 des LCD-Steckers (Pin 14, gleich neben der Backlight-Versorgung)?

Dabei ist mir auch aufgefallen, dass dieser Pin für die Auswahl der Schnittstelle nicht mehr zur Verfügung steht. Nach meiner Rechnung haben wir auch keinen Pin mehr dafür zur Verfügung, ausser man könnte PB3 (Reset) noch irgendwie umnutzen.

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: TinyI2C_LCD
« Reply #49 on: July 15, 2013, 02:40:07 PM »
Salut,

Danke, diese Leitung habe ich übersehen - ist korrigiert in der nächsten Version

Ciao, Mathias

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #50 on: July 15, 2013, 03:03:10 PM »
Ich habe mir das mit der Reset-Leitung angesehen. Man kann die schon als GPIO brauchen (per Fuse), aber dann muss die Programmierung per High Voltage Serial Programming gemacht werden und das wollen wir uns nicht antun.
Man könnte für die Umschaltung trotzdem PA0 (D10) verwenden, indem wir beim Start oder besser etwas später den Zustand auslesen. Ist der HIGH, können wir von einer SPI-Anwendung ausgehen. Damit wir bei einer I2C-Verwendung aber einen konsistenten Zustand haben, müssten wir PA0 mit einem grossen Widerstand (z.B. 100k) nach Masse ziehen. So könnten wir mit I2C starten und auf SPI umschalten, sobald PA0 (D10) hochgezogen wird. Was meint Ihr?
« Last Edit: July 15, 2013, 06:34:20 PM by pylon »

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: TinyI2C_LCD
« Reply #51 on: July 15, 2013, 04:05:11 PM »
Salut,

ich habe einen entsprechenden Widerstand eingebaut und die Bilder im Post (Anfang Seite 4) entsprechend geändert. Da der Widerstand neben dem SPI Pinheader liegt, kann man sich entscheiden, ob man ihn einbaut oder nicht.
Ich habe die Eaglefiles auf dem Githubrepository auch geändert.

Ciao, Mathias
« Last Edit: July 15, 2013, 05:46:29 PM by MathiasW »

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #52 on: July 16, 2013, 11:16:32 AM »
Das mit dem 100K Widerstand find ich eine hervorragende Idee, hab ich so eingebaut. Das Board hab ich seit letztem Mal noch 5mm gekürzt, mehr halte ich mit THT Komponenten nicht mehr für sinnvoll, aber eine Varainte mit SMD Bauteilen wäre nocht interessant, alleine aufgrund der möglichen Baugrösse.

Anbei die letzte Version mit dem 100K Widerstand.

@MathiasW: Ich kann leider mit unseren momentanen Standard Linux (Debian Squeeze [6.x]) nicht das neueste Eagle installieren (dependency hell mit glibc) und daher die Dateien mit meinem Eagle 5.1 nicht öffnen. Daher möchte ich für den Moment mit der Fritzing Version weiterfahren bis ich das gelöst habe sonst kann ich nicht mal selber Gerbers erzeugen. Kann ich Dich ev. für eine Version mit SMD ATtiny begeistern, quasi die v2 ? Dein Design gefällt mir sonst sehr gut, aber wie gesagt bin ich zurzeit noch auf die vorletzte Version von Fritzing festgenagelt.

Quote
Beim Fritzingmodell fehlen mir Befestigungslöcher.
Einverstanden, andererseits kann ich mir keinen Fall für die Montage vorstellen in der das tinyLCD_I2C befestigt werden muss, darum hab ich diese auch weiterhin weggelassen. Aber ich bin da offen, 3-4 Bohrungen liessen sich sicher noch unterbringen.

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #53 on: July 17, 2013, 11:48:35 PM »
Ich habe die neue Version der Software auf GitHub geladen. Achtung, da ich die I2C-Kommunikation geändert habe, müsst Ihr beide Seiten (Tiny und Arduino) updaten, sonst funktioniert es nicht mehr.

Meine Platine ist jetzt gemoddet:



Damit kann ich nun Kontrast und Hintergrundlicht verändern, was ich auch in den Test-Sketch eingebaut habe. Dort habe ich auch die Geschwindigkeit wieder auf 100 Updates pro Sekunde erhöht, was ohne Probleme funktioniert.

Ich beginne jetzt mal mit der Integration von SPI, meldet Euch, falls Ihr noch Ideen für weitere Features habt.

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: TinyI2C_LCD
« Reply #54 on: July 18, 2013, 07:55:03 AM »
Salut,

ich habe eine SMD Version der Platine ins Repository geladen und die Gerberfiles für Itead erstellt
Ciao, Mathias

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #55 on: July 18, 2013, 07:26:27 PM »
Quote
Ich kann leider mit unseren momentanen Standard Linux (Debian Squeeze [6.x]) nicht das neueste Eagle installieren (dependency hell mit glibc) und daher die Dateien mit meinem Eagle 5.1 nicht öffnen. Daher möchte ich für den Moment mit der Fritzing Version weiterfahren bis ich das gelöst habe sonst kann ich nicht mal selber Gerbers erzeugen. Kann ich Dich ev. für eine Version mit SMD ATtiny begeistern, quasi die v2 ? Dein Design gefällt mir sonst sehr gut, aber wie gesagt bin ich zurzeit noch auf die vorletzte Version von Fritzing festgenagelt.

Ich hatte auch kleinere Probleme mit Eagle unter Linux, die sich aber relativ einfach beseitigen liessen. Ich habe die neuste Version (6.4) heruntergeladen und in meinem Home-Directory installiert. Unter Ubuntu 13.04 (das mit Debian Wheezy relativ nah verwandt ist) brachte ich es mit folgendem kleinen Wrapper-Skript problemlos zum Laufen:

Code: [Select]
#!/bin/sh
export LD_LIBRARY_PATH=/home/$USER/eagle-6.4.0/lib
/home/$USER/eagle-6.4.0/bin/eagle

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #56 on: July 20, 2013, 06:50:28 PM »
Danke für den Tip, zurzeit steht aber noch die ganze boxtec auf debian squeeze ;-/ und da lässt sich eagle ohne libssl1.0 schon gar nicht installieren. Dank Crazyflie hab ich jetzt aber auf dem Notebook eine wheezy (amd64) Partition und da läuft es nun. Für ein 64bit Debian sind folgende Vorbereitungen nötig:
Code: [Select]
dpkg --add-architecture i386
apt-get update
apt-get install ia32-libs ia32-libs-gtk
Danach installiert sich und läuft eagle einwandfrei.

Sobald ich was von den PCBs höre melde ich mich wieder.

@pylon: Danke für die vielen Commits! Läuft absolut solid, einzig vor dem ersten lcd.print in der demo musste ich das delay etwas erhöhen, ca. 35ms sind nötig, damit er nichts verliert. Danach läuft es absolut fehlerfrei, aber kurz nach der Initialisierung will er noch nicht so sauber und verschluckt genau die letzten 3 Zeichen ("HELLO WOR").



pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #57 on: July 21, 2013, 11:29:21 PM »
Quote
Läuft absolut solid, einzig vor dem ersten lcd.print in der demo musste ich das delay etwas erhöhen, ca. 35ms sind nötig, damit er nichts verliert.

Das kann ich hier nicht nachvollziehen. Womit testest Du? Ich verwende für die Tests momentan einen Seeeduino (V2, Duemillanove-kompatibel). Könnte es am Bootloader liegen? Ich grabe mal einen UNO hervor und versuche es dort.

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #58 on: July 22, 2013, 03:31:53 PM »
Zurzeit hab ich einen Uno R3 angehängt über den auch das tinyI2C_LCD und das Display gespiesen wird. Ich hab aber auch mit einem Iteaduino V1.1 versucht (mit Duemilanove Bootloader und danach mit Uno Bootloader). Die Grenze ist genau 35ms, bei 33 und 34 frisst er das "!" und je kürzer desto mehr. Einen Seeeduino hab ich grad nicht zur Hand aber ich vermute den Unterschied eher auf der ATtiny Seite. Hast Du irgendwelche externen Pullups auf dem Bus ? Ich teste zurzeit ohne resp. nur mit den ATmega internen.


pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #59 on: July 23, 2013, 01:40:53 AM »
Ja, ich habe 4k7 Pullups für den I2C-Bus, aber ich vermute eher ein anderes Problem.

Setzt Du die TinyWireS-Bibliothek ein, die ich in's Repository eingecheckt habe? Dort habe ich nämlich die Puffer auf 32 Byte verdoppelt. Bei 16 Byte Pufferspeicher könnte der voll laufen, bevor die Initialisierung der LCD-Hardware abgeschlossen ist.

Wenn die Pullups etwas dazu beitragen würden, hätten wir durchgehend Probleme und nicht nur beim Aufstarten.

 

anything