Mijn PIC-programmer kon niet “in circuit” programeren dus heb ik maar een nieuwe gemaakt. Na een tijdje zoeken ben ik bij de galvawisp uitgekomen (Voor meer info over deze programmer zie: picbasic.nl) Omdat deze zelfbouw is en simpele onderdelen gebruikt die goed te krijgen zijn en omdat deze veel pic’s ondersteund.
Omdat het af en toe handig is om zelf een avr te kunnen proggen (dan moet ik daar geen andere mensen mee lastig vallen :p) heb ik besloten een programmer te maken.
Ik wou eigenlijk een programmer voor op de seriële poort maar die vond ik niet snel en toen kreeg ik de tip van een programmer op co die op de parallelle poort werkt en die heb ik toen gebouwd. http://www.circuitsonline.net/circuits/view/112
Omdat ik het moe was telkens men voeding ook over te zetten op een ander breadboard als ik daar wil programmeren heb ik een klein bordje gemaakt waardoor de voeding “uit” de galvawisp komt (elk breadbord heeft wel zijn eigen 15p SUB-D connector)
Bovenkant:
Mijn K8048 development bordje werkte gisteren weeral tegen toen ik snel een knightrider wilde testen. Daarom heb ik die toen in een hoekje gesmeten en snel een nieuw bordje ontworpen dat op mijn galvawisp komt. Vandaag heb ik dat printje ge-etst en bestukt. De microcontroller is een 16F628A. Op port A hangen 8 dipswitchen en op port B hangen 8 leds.
Code knightrider die ik voor het testen heb gebruikt:
'****************************************************************
'* knightrider *
'* *
'* Auteur : Stijn Coenen [Stynus] *
'* Notice : Copyright (c) 2008 Stijn Coenen *
'* : All Rights Reserved *
'* Datum : 29/05/2008 *
'* Version : 1.0 *
'* Website : www.elektronicastynus.be *
'****************************************************************
'Config
Device 16F628A
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
'****************************************************************
'Ingangen declareren
Symbol switch = PORTA
Symbol sw1 = PORTA.7
Symbol sw2 = PORTA.6
Symbol sw3 = PORTA.5
Symbol sw4 = PORTA.4
Symbol sw5 = PORTA.3
Symbol sw6 = PORTA.2
Symbol sw7 = PORTA.1
Symbol sw8 = PORTA.0
'TrisA register instellen (alles ingang)
TRISA = 255
'****************************************************************
'Uitgangen declareren
Symbol ledjes = PORTB
Symbol led1 = PORTB.7
Symbol led2 = PORTB.6
Symbol led3 = PORTB.5
Symbol led4 = PORTB.4
Symbol led5 = PORTB.3
Symbol led6 = PORTB.2
Symbol led7 = PORTB.1
Symbol led8 = PORTB.0
'TrisB register instellen (alles uitgang)
TRISB = 0
'****************************************************************
'Decraraties voor programma:
Symbol LedTijd = 70 'doorschuif snelheid LED
Dim index As Byte
ledjes = %10000000 '1 led aanzetten
'****************************************************************
'Hoofdprogramma
While 1 = 1 'Oneindige loop
'Links schuiven
For index = 0 To 6 'Uitvoren tot dat index 6 is
ledjes = ledjes >> 1 'Ledjes naar rechts doorschuiven
DelayMS LedTijd 'Wachten
Next
'Rechts schuiven
For index = 0 To 6 'Uitvoren tot dat index 6 is
ledjes = ledjes << 1 'Ledjes naar links doorschuiven
DelayMS LedTijd 'Wachten
Next
Wend
'****************************************************************
End
Omdat een usb-> serieel omvormer gekoppeld aan mijn galvawisp wat te veel plaats in neemt heb ik een wisp programmer gemaakt met een USB in plaats van RS232. Op de programmer print zit een ft232 voor naar een serieel signaal te gaan zodat ik de originele wisp hex code kon gebruiken.
De jumper op het printje dient om te kiezen tussen “target powered” en “usb powered”.
Ik vond mijn galvawisp wat te traag. Daarom heb ik een PICkit 2 gebouwd.
Het ontwerp waarop ik mij gebaseerd heb kan je hier vinden: Link
Omdat al mijn microcontroller gerelateerde zaken een 15-polige sub-d connector hebben voor de galvawisp heb ik deze programmer aangepast naar zo een aansluiting.
De hexfile voor de pic kan je op de microchip site downloaden. Link
Een tijdje geleden had ik een kastje gemaakt met een zif voet zodat ik niet tekens een breadboard moet nemen/leeg maken, om een microcontroller die niet in circuit geprogrammeerd kan worden te programmeren. Bezoekers van de SchemaTheek zullen dit project daar al wel eerder op het forum voorbij hebben zien komen. Ik was van plan het toen ook hier te posten maar ben dat vergeten.
Mijn nieuwe pc heeft geen parallelle poort meer dus kan ik de avr programmer die ik vroeger gemaakt heb niet meer gebruiken. Daarom heb ik beslist er een te bouwen die op de usb poort werkt.
Het ontwerp is gebaseerd op het USBtinyISP ontwerp van op http://www.ladyada.net/make/usbtinyisp/index.html De 6p connector heb ik weggelaten omdat ik deze toch niet gebruik en ik heb een nieuwe print ontworpen omdat de originele dubbelzijdig is.
Na mijn eerste development board heb ik beslist een tweede te bouwen. Deze gaat werken op basis van een PIC16F877.
De gewenste functies zijn:
-7x Led
-8x dipswitch
-2x 7 segment display
-1x Lcd
-1x RS232 verbinding
-1x programmeer stekker
Voor het bordje gemakkelijk met een breadboard te verbinden heb ik langs alle pinnen van de pic nog een extra cupje voorzien om breadboard draadjes in te steken.
Op de plaats van de programmeer stekker kan of een 15p sub-d connector of een 5p pin header gesoldeerd worden. De 15p sub-d connector is voor met een wisp programmer. De andere is voor met een pickit2 (en andere pin compatibele programmers)
Het schema:
De pcb layout:
Enkele foto’s van het eerste prototype:
Filmpje van de eerste test:
Hiermee zijn de leds, de 7 segmenten displays en de schakelaars al getest.
De seriële interface en het LCD werkt ook al:
Ik heb dit printje voor de definitieve versie professioneel laten etsen:
Ik wil bij de lichtkrant die ik aan het maken ben een usb verbinding met de pc opzetten. Nu is het bij zo een lichtkrant natuurlijk moeilijk om variabelen te bekijken. Daarom heb ik beslist het dev boardje waar ik een tijd geleden aan begonnen was maar eens af te maken.
Functies:
-USB
-LCD
-8 knoppen
-8 leds
-1 wire bus (en 1 temperatuursensor op de bus die op de print zit)
-RS485 bus
-Alle pinnen voorzien van een female pin header om makkelijk met een breadboard te kunnen verbinden.
-De meeste pinnen die naar dingen op het bordje gaan los te koppelen met dip switches.
-Voeding via USB of met adapter
-ICSP header (galva)wisp pinout
We gebruiken cookies om er zeker van te zijn dat je onze website zo goed mogelijk beleeft. Als je deze website blijft gebruiken gaan we ervan uit dat je dat goed vindt.Ok