-         

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

Thema: AVR-Neuling

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2005
    Beiträge
    6

    AVR-Neuling

    Anzeige

    Hi,
    bis jetzt hab ich mich noch nie mit Microcontrollern praktisch beschäftigt (habe aber aber schon einiges darüber gelesen), möchte nun mein erstes praltisches Projekt machen und habe dazu einige Fragen.
    Erstmal habe ich mich bei meinem Projekt für ein Mega128 entschieden, da ich externes Ram wohl brauchen werde und auch einige I/O Ports.
    Das Ziel ist es übrigens eine Gameboykamera auszulesen, auf dem Bild den hellsten Fleck (Lichtquelle) zu isolieren, mit Motoren die Kamera so auszurichten das die Lichtquelle zentriert im Bild ist (ich weiß, einem Anfänger wird man nun sagen, probier doch erstmal eine LED zum Blicken zu bringen). Da ich durchaus ja erstmal was testen möchte, aber mir nicht andauernd einen neuen Prozessor kaufen möchte (wofür ich als Schüler auch nicht wirklich Geld habe), dachte ich mir: Baue ich den Prozessor + SRAM + ISP doch einfach auf eine Art Steckkarte die ich einfach in die Schaltungen reinstecken kann.
    Ich habe mit Hilfe von Tutorials etc. diesen Schaltplan gebastelt (Das Bild habe ich aufgrund seiner Dimensionen nicht direkt eingebunden):
    Schaltplan ATmega128 Steckkarte (14,5KB)
    Dazu habe ich gleich mehrere Fragen:

    Der Mega128 unterstützt ja nur 64KB SRam, was für mich auch reicht, aber bei Reichelt gab es nur 128KB SRam, ist es möglich wie ich es gemacht habe einfach das erste Adressleitungsbit auf Masse zu legen und damit dann nur mit 64KB des Chips zu arbeiten (ich habe mich für die erste Leitung entschieden, da ich mir gedacht habe das die wohl das MSB sein wird, wenn das 0 ist wird der Speicher so genutzt: ....xxxx, wen ich das letzte auf Masse lege: x.x.x.x.)?

    Am SRAM sind noch zwei Anschlüsse frei, laut dem einen Datenblatt ist das "Chip Select Input", laut dem anderen, welches ich jetzt erst lese nachdem ich den Schaltplan exportiert habe, muss, damit der Chip nicht in Standby läuft, E1 auf Masse (Low) und E2 auf Plus (High). Ist das korrekt?

    Geht der Schaltplan so? Ich habe keine Lust nachher festzustellen das es nicht funktioniert und mir einen neuen Prozessor zu kaufen, dafür ist der zu teuer.

    Nun noch einige weitere Fragen zum Atmega128:

    Im Datenblatt steht der AD-Wandler arbeitet bei 10 Bit Genauigkeit bei 50-200kHz, bei geringerer Auflösung geht er auch schneller. Kann ich den auf 500kHz laufen lassen bei 8Bit? Wenn nein, welchen externen AD-Wandler mit 8Bit sollte ich benutzen?

    Ich möchte auch eine serielle Schnittstelle anbringen für Kommunikation mit dem PC. Da ich ja das ganze Bild senden möchte muss die schon auf einer höheren Baudrate laufen, damit das in weniger als 1 Sekunde übertragen wird (so 115200 Bits/s). Da ich zum Einstellen der Baudrate ja einen geraden Wert einstellen muss, der sich auch aus der Taktfrequenz ergibt (x = (Taktfrequenz/(Baudrate*16))-1) bleibt insbesondere für die höheren Baudraten bei der Taktfrequenz nicht mehr so große Auswahl. Dazu, wie stark darf dieser eingstellte Wert vom tatsächlichen, krummen Wert, abweichen?

    Durch mein SRAM mit 70ns Zugriffszeit ist die Taktfrequenz eh auf 14,2857 MHz beschränkt, richtig? Da kann man auch nicht das SRAM übertakten?

    Ich möchte eine auch eine Kommunikation mit dem dem TI Voyage 200 / TI 92plus (graphischer Taschenrechner von Texas Instruments) ermöglichen, ich habe im Internet auch schon eine Beschreibung der Schnittstelle gefunden, jedoch keine einzige Implementierung auf einem avr, hat sich jemand damit schon mal beschäftigt oder kennt eine Seite auf der was dazu steht?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    Hi S_O,

    hast ja ganz schön was vor.

    Die Idee den uC als Steckmodul zu bauen halte ich für gut. Da kann man das Modul auch mal schnell in eine andere Schaltung reinstecken.

    Bei deinem Schaltplan sind mir zwei Dnige aufgefallen.
    a) Der ISP wird an den Pin's MOSI, MISO, SCK und SS angeschlossen. Schau Dir doch nochmal die Definitionen in dem Datenblatt an.
    b) Die Pin's TXD und RXD sind für die RS232 bestimmt. Diese Pins haben 5V-Pegel. Für die RS323 wird ein Pegelwandler (MAX232) benötigt.

    Der Adresspin A0 ist das LSB. Ich würde eher A16 auf Low legen.

    Die Chip-Select-Eingänge E1 und E2 sind von Dir richtig beschrieben worden. E1 -> Low, E2 -> High schaltet den Speicher frei.

    50kHz Samplerrate ist ein Haufen Holz. Externe ADW's gibt es z.B von Linear Semiconductor. Einfach mal auf der HP von denen nachsehen.

    Bei allen weiteren Fragen kann ich keine 10%tige Antwort geben. Ich hoffe jedoch das ich trotzdem weiter helfen konnte.

    Grüße Klaus
    Eine verrückte Idee ist besser als keine

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    ich sende die ganzen 16kbyte von der gameboycam auf dem robby über die serielle schnittstelle mit funk und 19200baud. dauert ca 7 sek pro bild. die punkte werden am pc ausgewertet und dann die reaktion zum robby gesendet, wie er ausweichen soll. ich werde am pc die graupunkte mit dem programm "bcxbasic-to-c" auswerten, ist freeware. klappt aber noch nicht. kann zwar den robby schon anweisungen über funk geben. der haken ist nur noch die grafikauswertung. mit einem sram habe ich noch anfängerschwierigkeiten. da ich keine grossen löt und ätz-kenntnisse habe, Suche ich praktische hilfe. ist wie in der freien markwirtschaft. es fertigt einer an und der andere bezahlt. wäre schlimm, wenn andere nichts verdienen würden mit ihrer facharbeit. ohne handal lebt die wirtschaft nicht und mann kann sich mit dem verdienten geld wieder andere wünsche erfüllen. ich hoffe, das andere noch wünsche haben.
    ich würde ungern einer professionellen firma das geld geben.
    mfg pebisoft

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    37
    Beiträge
    464
    @Klaus_0168

    Beim Mega128 sind TXD und RXD die Datenleitungen für den ISP.
    Ich hab mein Projekt auch mit den 128er gemacht und im Datenblatt steht es
    auch (Suchen). SCK bleibt gleich.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2005
    Beiträge
    6
    Beim Mega128 sind TXD und RXD die Datenleitungen für den ISP.
    Ich hab mein Projekt auch mit den 128er gemacht und im Datenblatt steht es
    auch (Suchen). SCK bleibt gleich.
    Das hab ich mir auch so gedacht, bei kleineren AVRs ist es immer an MISO/MOSI, aber beim mega128 hab ich es immer dran gesehen. Muss ich für RS232 andere Pins benutzen oder einfach auch mit anschließen? Falls letzteres, muss ich das dann irgendwie entkoppeln oder einfach beides direkt anschließen?
    Wie ist das mit PEN am AVR? Ich hab gelesen das es das nur beim mega64/128 gibt und irgendwie wie reset verwendet wird. Wie muss ich das anschließen?
    ich sende die ganzen 16kbyte von der gameboycam auf dem robby über die serielle schnittstelle mit funk und 19200baud. dauert ca 7 sek pro bild. die punkte werden am pc ausgewertet und dann die reaktion zum robby gesendet, wie er ausweichen soll. ich werde am pc die graupunkte mit dem programm "bcxbasic-to-c" auswerten, ist freeware.
    Ich wollte das an sich unabhängig vom PC machen. Es sollen auch keine Gegenstände etc. erkannt werden, sondern wirklich nur der Lichtfleck. Das sollte der AVR wohl auch noch hinbekommen.
    Ich habe mir nochmal das datenblatt angesehen und werde wohl mit 11,0592 MHz arbeiten, da kann ich mit 230400baud (müssten für daten 25KB/s übrigbleiben, das bedeutet mehr als 1 (schon fast 2) Bild pro Sekunde) übertragen, bei 0% abweichung. Für 14,7456 MHz reicht mein SRAM ja nicht mehr.

    Ich hoffe das das mit dem ätzen/löten kein problem wird, SMD hab ich zwar schon gelötet, aber nicht diese ganz kleinen Abstände beim atmega128. Auch das belichten/ätzen ist bei mir nur so "notdürftig" ("ätzanlage" wird mit Dingen die ich finde realisiert).

    Der Adresspin A0 ist das LSB. Ich würde eher A16 auf Low legen.
    OK, dann werde ich das wohl auch machen.
    50kHz Samplerrate ist ein Haufen Holz. Externe ADW's gibt es z.B von Linear Semiconductor. Einfach mal auf der HP von denen nachsehen.
    Du meinst 500kHz?
    Linear Semiconductor finde ich nicht. Hab zwar bei Reichelt einige gefunden, das steht aber nicht viel dazu, zum Teil gibts nicht mal Datenblätter. Was ich bräuchte hat 8 Paralelle Ausgangsbits, sollte mit 500kHz arbeiten können und einfach vom µC zu steuren sein. Irgendwelche Vorschläge?

    Viele Grüße & Frohe Pfingsten,
    S_O


    Nachtrag:
    Ich habe mich gerade noch mal mit der Verbindung zum TI beschäftigt und bin auf diese Schaltung mit einem PIC-Prozessor gekommen:

    Da ein PIC ja, zumindest von den normalen äußeren Anschlüssen, einem AVR sehr ähnlich ist, dachte ich, könnte ich das wohl so an meinem AVR übernehmen (also den Anschluss oben in der Mitte mit den Dioden/Widerständen). Wie die Schaltung jetzt genau funktioniert weiß ich allerdings nicht, hier kurze Beschreibung des Protokolls:
    To send a 0:
    sender: switches line A to low (0).
    receiver (detects the change on line A): switches line B to 0.
    sender (detects the change on line B): switches line A back to 1.
    receiver (detects the change on line A): switches line B back to 1.
    sender waits for line B = 1
    end

    To send a 1:
    sender: switches line B to 0.
    receiver (detects the change on line B): switches line A to 0.
    sender (detects the change on line A): switches line B back to 1.
    receiver (detects the change on line B): switches line A back to 1.
    sender waits for line A = 1
    end
    Das einzige was ich mir Vorstellen kann ist, RA0 & RA3 sind hier Ausgänge (normal high) und RA1 & RA2 Eingänge. Die Dioden sind dafür da, falls der TI jetzt eine Leitung auf 0 schaltet, dann kein Strom zwischen RA0 / RA3 und dem TI fließt, sondern außschließlich über die 18kΩ-Widerstände, richtig?

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    Hi S_O,

    ich habe 500KHz gemeint. Da eine Null nichts wert ist habe ich sie halt mal ausgelassen .

    Die Adresse von Linear Semiconductors lautet : www.linear.com .
    Die haben auch High-Speed-ADC's im Programm. Die Purchase-Conditions habe ich mir jetzt allerdings nicht durchgelesen.

    Grüße Klaus
    Eine verrückte Idee ist besser als keine

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2005
    Beiträge
    6
    Hi Klaus,

    ich habe mal geguckt und den einzigen den ich gefunden habe, der kein seriellen ausgang hat, sondern 8 Bit paralell, ist der LTC1406, der kann aber sogar 20MHz! Ich will doch kein Oszilloskop bauen, sondern nur eine Kamera auslesen, aber einen etwas kleineren scheint es da nicht zu geben. Der LTC1196 wäre an sich auch ok, aber der hat einen seriellen Ausgang (den gibts auch bei Schuricht für 6€).
    Ich habe mal geschaut woher ich das Teil bekomme, bei Reichelt nicht, und als ich die Preisliste bei Schuricht für Linear Technology AD-Wandler gesehen habe:
    http://www.schuricht.de/handle.asp?I...HT=TRUE&SW=ADC
    Das Teil kostet ja bestimmt mehr als doppelt soviel wie mein atmega128! Das kann doch nicht sein.
    Wer stellt den noch AD-Wandler her? Ich habe doch wirklich keine hohen Ansprüche (8 Bit, 0-5V, Paraleller Ausgang, 500kHz).

    Viele Grüße,
    S_O

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    Hi S_O,

    gib bei Reichelt doch einfach mal des Suchbegriff 'AD Wandler' ein.

    Ich hatte 18 Treffer 8Bit bis 12Bit, Single bis 4-fach von 3.35€ bis 40.50€ und ein Buch über 'AD-Wandler in Embedded-Systeme' für 34.95€.

    Ein weiterer Hersteller von Linear-IC's ist Maxim ( http://para.maxim-ic.com/ADConverters.htm ). Die Maxim-IC's sind ziemlich weit verbreitet - siehe Reichelt. DA-Wandler ( http://para.maxim-ic.com/DAConverters.htm ) und Sample&Hold sind auch im Lieferprogramm von Maxim enthalten.

    Andere Hersteller für Linear-Elektronik fallen mir gerade nicht ein.

    Gruß Klaus
    Eine verrückte Idee ist besser als keine

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2005
    Beiträge
    6
    Hi Klaus,

    Ich hatte 18 Treffer 8Bit bis 12Bit, Single bis 4-fach von 3.35€ bis 40.50€ und ein Buch über 'AD-Wandler in Embedded-Systeme' für 34.95€.
    Hab ich auch gefunden, aber alle sind seriell.
    Die ich bei Maxim gefunden habe gibts bei Reichelt nicht.

    Ich habe einfach mal nach "ADC" bei Reichelt gesucht und einiges gefunden, z.B. den ADC 0803 CN von National Semiconductor oder Harris Semiconductor. Im Datenblatt steht "access time: 135ns", "conversation time: 100µs" und eine typische Taktfrequenz von 640kHz. Ich weiß aber nicht ob der tatsächlich das schafft, oder ob das was anderes ist. Bedeuten diese angaben, das er tatsächlich mit 500kHz arbeiten kann und so für meine Anwendung gebrauchbar ist? Der Preis von 3,35€ irritiert mich das ein bisschen, weil alle anderen waren sehr viel teurer.

    Noch ein Frage: Wäre es sinnvoll wenn die Schaltung und die kamera so 1m von einander entfernt sind den AD-Wandler nicht beim µC anzubauen, sondern an die Kamera, damit der analoge Weg kürzer ist?

    Viele Grüße,
    S_O


    Nachtrag:
    Es wäre schön wenn mir mal jemand kurz bestätigen könnte, ob meine Schaltung so korrekt ist (bis auf die Tatsache das das Adresspin 16 des SRAMs auf GND liegen sollte und nicht Adresspin 0), dann könnte ich jetzt das Layout machen.

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    Hi S_O,

    das Layout sollte an drei Stellen geändert werden.

    1) Das mit dem Adresspin A16/A0 hast Du schón erwähnt.
    2) Am Speicher (IC2) müssen noch die Freigabepins E1 und E2 beschaltet werden.
    3) Im Gegensatz zu bertl100 bin ich der Meinung, das die Pins MOSI. MISO, SCL uns SS für die ISP-Programmierung verwendet werden und entsprechend auf den Stecker SV1 gelegt werden müssen. RXT und TXD sind Signale für RS232-Ports. Die werden bei Bootloader verwendet.

    Mit diesen Änderungen sollte der Prozessor funktionieren.

    Bedenke bitte, das die EA's (Port B, D, E und F) auch auf Steckkontakte gelegt werden sollten. Definitionen nach Robotikforumstandart finden sich bei den Artikeln und im Downloadbereich.

    Access Time (Zugriffszeit) : Zugriffszeit von der Aktivierung der Signal- und Adressleitungen bis zur Annahme der Daten im Register.
    Conversation Time (Wandlungszeit) : Zeit vom Start der Wandlung bis zum Setzen des Analog-Ausganges (bei ADC) oder des Wertregisters (DAC).

    Die typische Taktfrequenz scheint sich nur auf den Zugriff auf die Register zu beziehen. Bei 100us Wandlerzeit sind pro Sekunde maximal 10000 Wandlungen möglich.
    In welchem Bezug ist diese Taktfrequenz genannt worden ?
    Hast Du schon mal an die Variante gedacht, mit allen Eingängen mehrkanaliger ADW's ein einziges Signal in einer Art Kaskade zu wandeln ?
    Das geht jedoch nur mit ADW's ohne Multiplexer. (Vorsicht - das hab ich selbst noch nicht ausprobiert !!)

    Grüße Klaus
    Eine verrückte Idee ist besser als keine

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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