Bidrag: Logikanalysator kopplad till en VGA-skärm - Micke_s

Här presenteras bidragen i Svenska Elektronikforumets Elektroniktävling 2009. Instruktioner för omröstning finns också!
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6521
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Bidrag: Logikanalysator kopplad till en VGA-skärm - Micke_s

Inlägg av Micke_s »

Tanken bakom detta bidrag är uppdelat i två delar.
Del 1: Att visa hur man kan generera 28x14 tecken i sju olika färger med hjälp av en AVR tillsammans med fåtal kringkomponeter.
Del 2: Hur man med hjälp av statemachines kan bygga upp ett grafiskt gränssnitt fast man kör med en begränsad enchipsdator.



Funktionsbeskrivning:


Klocka för båda AVR:en är 20Mhz, här används clock out från video avr:en för spara antal komponenter.
Kommunikation mellan AVR:ena sköts över I2C (intern pull-up)

Videogenerings avr:en:
En avr generar video med hjälp av usart0 som är inställd i spi mode. Detta är enda seriella gränsnittet
på en atmega88 som har dubbelbuffer, vilket möjliggör hög upplösning utan mellanrum mellan bokstäverna.
En 74HC08 används för kunna välja olika färger, usart0 väljer om pixeln ska vara tänd eller ej.
Timer0 används för generera video, denna är satt i pwm mode för kunna hålla vga hsync timingen rätt och få en stabil bild.
I2C används för att skriva till minnet och är valt för att i2c har flödeskontroll i form av att den håller klockan låg om den behövs mer tid.
I2C körs pollad för störa vga:genereringen så lite som möjligt.
Koden för generear video är skriven i assembler och resterande delar är skriven i c.

Huvud-avr:
Denna har till uppgift att samla in data och hantera GUI:et.
Den använder timer1 för insamling av datan, här avaktiverar jag alla andra interrupt eftersom atmega ej har prioritetsording på interrupt.
För GUI:et så är en tillståndsmaskin implementerad som gör det lätt att lägga till och dra ifrån grafiska element.

Begränsing:
Bara logikanalysatordelen är implementerad, oscilloskopdelen är ej implementerad men det finns ett mode implementerat för hantera tecken + grafik



Bild
"skärmdump"

Bild
bild på exprimentplattan




Kod:
kod för videogeneratorn
kod för logikanalysatorn

Schema/pcb (eagle):
schema över logikanalysatorn
förslag på pcb-layout

Video:



Licensform:
All kod, scheman och bilder är under GPL.



Komponentlistan och ändringar:

* D-sub:en är ändrad till en pcb lödbar.
* 5 st 100nF istället för 4st.
* En sockel för atmega88 tilllagd.
* massa komponenter borttagna från min premeliära BOM

Grundkomponenter :
antal art-nr benämning
3 35-656-29 Tangentbordsströmställare stående SKHHAR
1 73-266-64 LM317
1 73-647-10 ATmega168
1 xx-xxx-xx Batterikontakt
1 48-137-21 Sockel

Standardkomponenter:
antal art nr benämning
1 60-023-98 sil-nät 470ohm (skulle gå att köra 3st lösa motstånd istället)
1 60-728-05 motstånd 3kohm
2 65-848-82 Keramisk kondensator 33pF
1 74-508-28 20,0 MHz kristall HC49
2 67-010-56 Radiell ellyt 47uF/16V 2mm
5 65-226-84 kondensator 100nF
1 48-137-21 Sockel

Specialkomponenter:
1 73-503-17 74HC08N 4x 2-in AND
1 73-647-06 atmega88
1 44-016-83 Dsub HD 15pol
9 40-910-05 Krokodilklämma rund käft, RE01
1 35-656-29 Tangentbordsströmställare stående SKHHAR
Låst