-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Welchen PIC nehme ich ?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2006
    Beiträge
    12

    Welchen PIC nehme ich ?

    Anzeige

    Hallo,
    Vielleicht kann mir jemand gute Info´s an die Hand geben, bzw. mir Tipps geben wie ich die Sache richtig angehe.
    a) Ich benötige den richtigen Chip, nicht zu überdimensioniert. Aus der Reihe PIC16Fxxx.

    Folgende Aufgabe möchte lösen.

    Ich möchte die Ziffern 0-9 über eine Tastatur eingeben, diese sollen dann über ein Display direkt zu sehen sein. Anschließend soll über einen Taster diese Ziffer eingelesen werden und per Sprachausgabe diese Ziffer per Sprache zu hören sein.
    Ist es nur über einen ISD Sprachausgabechip möglich oder auch über den Flash Memory des PIC?
    Wenn mir jemand den Ansatz für beide Möglichkeiten liefert wäre es toll!!!

    Gruß Staudi[/code]

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    Hallo Staudi,
    das mit der Tastatur und Anzeige ist eine einfache Angelegenheit:
    8...10 Ein- / Ausgangs-Pins für die Tastatur, 4 oder 8 plus 2 für ein LC-Display, ein PIC 16F877 wäre da schon recht gut für geeignet.
    Mit dem Flash-Speicher fangen aber die Probleme an. Der 16F877 hat zwar 8 K Flash, der ist aber mehr für Programm-Code vorgesehen und weniger für Daten. Auch der Eeprom-Bereich mit 256 Bytes dürfte da etwas bescheiden ausfallen.
    Für die Sprach-Daten benötigst Du externen Speicher, z.B. Eprom oder Eeprom, wo die Sprach-Daten drin sind.
    Auch so einen externen Speicher kannst Du noch vom PIC 16F877 aus steuern. Bleibt zu überlegen, auf welche Weise diese 'Steuerung' realisiert wird.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2006
    Beiträge
    12

    AW:Welchen PIC nehme ich ?

    Danke Karl Heinz,
    hast du vielleicht auch Kenntnisse mit dem ISD Sprachausgabechip.
    Ist dieser leicht einzubinden?
    Gruß Staudi

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    Kannst Du die genaue Bezeichnung oder einen Link zu einem Datenblatt posten, dann schau ich mir den Baustein mal kurz an.
    Wo sitzen die Daten für die Sprachausgabe ? Wer bestimmt, was der Sprachausgabechip ausgeben soll ?
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    Entscheidend ist die gewünschte Sprachqualität. Minimal (Telefonqualität) sollte man Sprache mit 8000 Samples pro Sekunde und 8 Bit Auflösung abtasten. Jede Ziffer dauert gesprochen ungefähr eine halbe Sekunde. Das macht 10 Ziffern * 0.5 s * 8 kByte = 40 kByte Speicherbedarf für die Sprachdaten. Ein 24LC512 EEPROM sollte also reichen. Der PIC liest die Daten und haut sie 8000 mal pro Sekunde über einen Port raus. Müsste bei 10 MHz Takt machbar sein.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    Könnte mit dem Sprach-Eprom und etwas Hardware (Taktgenerator, Adress-Zähler, einige Gatter) nicht eine eigenständige 'Sprachausgabe-Einheit' aufgebaut werden, die vom PIC die höchsten Adress-Bits mit dem gewünschten Text-Bereich und ein Startsignal bekommt und am Ende der Sprachausgabe (die Texte sind ja unterschiedlich lang) einen 'Fertig-Impuls' an den PIC liefert, der dann wiederum die nächste 'Zahl' vorbereitet ?
    Wenn alles über den PIC laufen soll, sind immerhin 13...15 Bits für Eprom-Adressen und 8 für Eprom-Daten = je ein Port-Pin des PIC erforderlich, es sei denn, Adressen und Daten werden gemultiplext; dann sind es immer noch 13...15 Bits plus Steuer-Bits.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  7. #7
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    @phaidros

    Ich habe mich vor ca.30 Jahren ein bischen mit digitaliesieren der Sprache beschäftigt (damals hat es noch keine Mikrokontroller gegeben).

    Die Abtastfrequenz sollte das doppelte der max. Frequenz sein. Ich habe aber die Hälfte also die max. Frequenz genommen und zwischen zwei Samples noch ein "künstliches" Sample ausgegeben. Dieses Sample war einfach der Mittelwert den beiden. Die Qualität war nicht viel schlechter. Somit habe ich den Speicher halbieren können.

    Laut Deiner Berechnung, wenn man diese Methode nimmt, werden nur 20kB Programmspeicher benötigt. Z.B. der PIC 18F252 oder 18F2550 hat 32kB Programmspeicher, dann bleiben noch 12kB für Programm und ausser Tasten und Display ist keine externe Hardware erforderlich. Vielleicht wäre die Idee für Dich nutzlich ?

    MfG

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    @PICture: Ja, an die 18er Reihe habe ich auch schon gedacht. Staudi wollte aber einen 16er nehmen.

    @kalledom: Das EEprom ist ein I2C-Baustein. braucht also nur 2 Leitungen.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    @phaidros
    Was das I2C-Eeprom betrifft:
    1. Wieviel KiloByte (nicht KiloBit) hat das größte I2C-Eeprom ?
    2. Wie lange dauert es, bis alle Daten per I2C ausgelesen sind ?
    3. Wo werden die ausgelesenen Daten abgelegt ?
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    @kalledom:
    1. Keine Ahnung.
    2. Der I2C-Bus kann mit mindestens 100 kb/s laufen. Macht also ungefähr 10 KByte pro Sekunde.
    3. Nirgendwo. 8000 mal pro Sekunde holst du einen Wert aus dem Eeprom und gibst ihn sofort wieder auf einen Port aus. An dem hängt ein einfacher D/A-Wandler oder ähnliches. Du musst nur für jede Ziffer Anfangs- und Endadresse im Eeprom wissen. Alle Daten dazwischen werden ausgegeben.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •