├── .gitignore ├── Doku ├── TransistorTester_czech.pdf ├── TransistorTester_english.pdf ├── TransistorTester_german.pdf ├── TransistorTester_russian.pdf ├── tags │ ├── README.md │ └── changelog.txt └── trunk │ ├── README.md │ └── pdftex │ ├── czech │ ├── ttester.pdf │ └── ttinfo.pdf │ ├── english │ ├── ttester.pdf │ └── ttinfo.pdf │ ├── german │ ├── ttester.pdf │ └── ttinfo.pdf │ └── russian │ └── ttester.pdf ├── Hardware ├── ArduinoUno_shield │ ├── ArduinoUno_TTshield_back.JPG │ ├── ArduinoUno_TTshield_front.JPG │ ├── UNO_Tester.diy │ ├── UNO_tester_shield.pdf │ ├── UnoShield.fig │ └── UnoShield.pdf ├── Markus │ ├── ComponentTester-HW-1.00m.tgz │ ├── ComponentTester-Opto-Coupler-Adapter-1.00m.tgz │ ├── LC-Meter-Option.pdf │ ├── OptionsAdapter-1.00m.tgz │ └── TC1-Mod.kicad.tgz ├── Max │ ├── LiesMich.txt │ ├── fritzing_diagram.png │ ├── fritzing_sketch2.fzz │ └── fritzing_sketch2_etch_copper_bottom.pdf ├── PCB_mega328_ST7735 │ ├── ARCHIVOS.pdf │ ├── LiesMich.txt │ ├── ReadMe.txt │ ├── fotos transistor tester2.pdf │ └── pcb AVR-Transistor tester.pdf └── strip_grid │ ├── LiesMich.txt │ ├── ReadMe.txt │ ├── TTester_strip.pdf │ ├── TransistorTester_strip.fig │ ├── TransistorTester_strip.pdf │ └── ttester_strip_grid.diy └── Software ├── Markus ├── ComponentTester-1.40m.tgz ├── ComponentTester-1.41m.tgz ├── ComponentTester-1.42m.tgz ├── ComponentTester-1.43m.tgz ├── ComponentTester-1.44m.tgz ├── ComponentTester-1.45m.tgz └── README.md ├── Messtechniker ├── tt-bjt-e05.zip ├── tt-cap-e05.zip ├── tt-jfet-e05.zip └── tt-res-e05.zip ├── picture-link.pdf ├── tags ├── README.md └── changelog.txt └── trunk ├── 24x32update_bitmaps.h ├── AutoCheck.c ├── Battery_check.c ├── Calibrate_UR.c ├── CalibrationCap.c ├── ChargePin10ms.c ├── CheckPins.c ├── CheckRotaryEncoder.c ├── CheckUJT.c ├── CombineToLong.S ├── DisplayValue.c ├── EE_check_init.c ├── EntladePins.c ├── GetESR.S ├── GetESR.c ├── GetESR_107.S ├── GetFrequency.c ├── GetIr.c ├── GetRLmultip.S ├── GetRLmultip.c ├── GetResistance.c ├── GetVloss.c ├── HelpCalibration.c ├── ILI9163 ├── ILI9163.eep ├── ILI9163.hex ├── Makefile └── ReadMe.txt ├── LiesMich.txt ├── Makefile ├── PinLayout.S ├── PinLayout.c ├── ReadADC.S ├── ReadADC.c ├── ReadBigCap.c ├── ReadCapacity.c ├── ReadInductance.c ├── ReadMe.txt ├── RefVoltage.S ├── RefVoltage.c ├── RvalOut.S ├── RvalOut.c ├── ST7735 ├── Makefile ├── ReadMe.txt ├── ST7735.eep └── ST7735.hex ├── ShowData.c ├── Transistortester.h ├── UfAusgabe.S ├── UfAusgabe.c ├── arduino_m2560 ├── LiesMich.txt ├── Makefile ├── arduino_m2560.eep └── arduino_m2560.hex ├── arduino_uno ├── LiesMich.txt ├── Makefile ├── ReadMe.txt ├── arduino_uno.eep └── arduino_uno.hex ├── autoconf.h ├── bitmaps.h ├── config.h ├── default ├── LiesMich.txt ├── Makefile ├── ReadMe.txt ├── TransistorTester.eep ├── TransistorTester.hex ├── TransistorTester.lss ├── TransistorTester.map └── all_make.bat ├── finish.mk ├── font.h ├── fonts ├── 10x16_vertikal_LSB_1.h ├── 24x32_vertical_LSB.h ├── 5x8_vertikal_LSB_1.h ├── 6x8_vertikal_LSB_1.h ├── 7x12_vertikal_LSB_1.h ├── 7x8_vertikal_LSB_1.h ├── 8x12_vertikal_LSB_1.h ├── 8x12_vertikal_LSB_1thin.h ├── 8x14_vertikal_LSB_1.h ├── 8x15_vertikal_LSB_1.h ├── 8x16_vertikal_LSB_1.h ├── 8x16_vertikal_LSB_1thin.h ├── 8x8_vertikal_LSB_1.h ├── Makefile ├── ascii2font.c ├── ascii2font2.c ├── font2ascii.c ├── language-dependent_characters.h ├── std_defines.h └── std_without_specials_defines.h ├── function_menu.c ├── function_sequence1.h ├── function_sequence2.h ├── get_log.S ├── get_log.c ├── i2lcd.S ├── i2lcd.c ├── langBRASIL.h ├── langCZECH.h ├── langDANISH.h ├── langDUTCH.h ├── langFRANCAIS.h ├── langGERMAN.h ├── langHUNGARIAN.h ├── langITALIAN.h ├── langLITHUANIAN.h ├── langPOLISH.h ├── langRUSSIAN.h ├── langSLOVAK.h ├── langSLOVENE.h ├── langSPANISH.h ├── langUKRAINIAN.h ├── lcd-draw.c ├── lcd-routines-serial.c ├── lcd-routines.c ├── lcd-routines.h ├── lcd_defines.h ├── lcd_hw_1_bit.S ├── lcd_hw_4_bit.S ├── main.c ├── make_frequency.c ├── mark_as_uncalibrated.c ├── mega168_1.9V ├── LiesMich.txt ├── Makefile ├── mega168_1.9V.eep └── mega168_1.9V.hex ├── mega168_3.3V ├── LiesMich.txt ├── Makefile ├── mega168_3.3V.eep └── mega168_3.3V.hex ├── mega168_strip_grid ├── LiesMich.txt ├── Makefile ├── ReadMe.txt ├── mega168_strip_grid.eep └── mega168_strip_grid.hex ├── mega328 ├── Makefile ├── mega328.eep └── mega328.hex ├── mega328_1.9V ├── LiesMich.txt ├── Makefile ├── mega328_1.9V.eep └── mega328_1.9V.hex ├── mega328_2X16_menu ├── Makefile ├── mega328_2X16_menu.eep └── mega328_2X16_menu.hex ├── mega328_3.3V ├── LiesMich.txt ├── Makefile ├── mega328_3.3V.eep └── mega328_3.3V.hex ├── mega328_GM328 ├── Makefile ├── ReadMe.txt ├── mega328_GM328.eep └── mega328_GM328.hex ├── mega328_MK-328 ├── Makefile ├── mega328_MK-328.eep └── mega328_MK-328.hex ├── mega328_PCF8812 ├── Makefile ├── mega328_PCF8812.eep └── mega328_PCF8812.hex ├── mega328_PCF8814 ├── Makefile ├── mega328_PCF8814.eep └── mega328_PCF8814.hex ├── mega328_T3_T4_st7565 ├── Makefile ├── ReadMe.txt ├── mega328_T3_T4_st7565.eep └── mega328_T3_T4_st7565.hex ├── mega328_T4_v2_st7565 ├── Makefile ├── mega328_T4_v2_st7565.eep └── mega328_T4_v2_st7565.hex ├── mega328_T5_st7565 ├── Makefile ├── mega328_T5_st7565.eep └── mega328_T5_st7565.hex ├── mega328_color_kit ├── Makefile ├── OrigChina.eep ├── OrigChina.hex ├── mega328_color_kit.eep └── mega328_color_kit.hex ├── mega328_dogm ├── Makefile ├── mega328_dogm.eep └── mega328_dogm.hex ├── mega328_fish8840 ├── Makefile ├── ReadMe.txt ├── mega328_fish8840.eep └── mega328_fish8840.hex ├── mega328_fish8840_OC ├── FishTesterOC.eep ├── FishTesterOC.hex ├── Makefile ├── ReadMe.txt ├── mega328_fish8840_OC.eep └── mega328_fish8840_OC.hex ├── mega328_ssd1306I2C ├── Makefile ├── mega328_ssd1306I2C.eep └── mega328_ssd1306I2C.hex ├── mega328_ssd1306SPI ├── Makefile ├── mega328_ssd1306SPI.eep └── mega328_ssd1306SPI.hex ├── mega328_ssd1327I2C ├── Makefile ├── ReadMe.txt ├── mega328_ssd1327I2C.eep └── mega328_ssd1327I2C.hex ├── mega328_ssd1327SPI ├── Makefile ├── ReadMe.txt ├── mega328_ssd1327SPI.eep └── mega328_ssd1327SPI.hex ├── mega328_st7108 ├── Makefile ├── mega328_st7108.eep └── mega328_st7108.hex ├── mega328_st7565 ├── Makefile ├── mega328_st7565.eep └── mega328_st7565.hex ├── mega328_st7565_kit ├── Makefile ├── mega328_st7565_kit.eep └── mega328_st7565_kit.hex ├── mega328_st7920 ├── Makefile ├── mega328_st7920.eep └── mega328_st7920.hex ├── mega328_strip_grid ├── Makefile ├── mega328_strip_grid.eep └── mega328_strip_grid.hex ├── mega328_strip_grid_dogm ├── Makefile ├── mega328_strip_grid_dogm.eep └── mega328_strip_grid_dogm.hex ├── mega328_wei_st7565 ├── Makefile ├── ReadMe.txt ├── mega328_wei_st7565.eep └── mega328_wei_st7565.hex ├── mega644_LCD2004 ├── Makefile ├── mega644_LCD2004.eep └── mega644_LCD2004.hex ├── mega644_T7_Mod ├── Makefile ├── mega644_T7-Mod.eep └── mega644_T7-Mod.hex ├── mega644_hiland_m644 ├── Makefile ├── ReadMe.txt ├── mega644_hiland_m644.eep └── mega644_hiland_m644.hex ├── mega644_ssd1306I2C ├── Makefile ├── mega644_ssd1306I2C.eep └── mega644_ssd1306I2C.hex ├── mega8 ├── Makefile ├── TransistorTestorig.eep ├── TransistorTestorig.hex ├── mega8.eep └── mega8.hex ├── message_key_released.c ├── part_defs.h ├── samplingADC.S ├── samplingADC_cnt.S ├── sampling_cap.c ├── sampling_lc.c ├── sampling_xtal.c ├── setup.mk ├── show_Resis_Cap.c ├── sleep_5ms.S ├── sleep_5ms.c ├── swuart.S ├── tt_function.h ├── tt_globals.h ├── tt_resistor.h ├── wait1000ms.S ├── wait1000ms.h ├── wait_for_key_ms.S └── wait_for_key_ms.c /.gitignore: -------------------------------------------------------------------------------- 1 | Software/trunk/Obj/mega168_1.9V/ 2 | Software/trunk/Obj/mega168_3.3V/ 3 | Software/trunk/Obj/mega168_strip_grid/ 4 | Software/trunk/Obj/mega328/ 5 | Software/trunk/Obj/mega328_1.9V/ 6 | Software/trunk/Obj/mega328_3.3V/ 7 | Software/trunk/Obj/mega328_2X16_menu/ 8 | Software/trunk/Obj/mega328_GM328/ 9 | Software/trunk/Obj/mega328_MK-328/ 10 | Software/trunk/Obj/mega328_PCF8812/ 11 | Software/trunk/Obj/mega328_PCF8814/ 12 | Software/trunk/Obj/mega328_T3_T4_st7565/ 13 | Software/trunk/Obj/mega328_T3_v2_st7565/ 14 | Software/trunk/Obj/mega328_T4_v2_st7565/ 15 | Software/trunk/Obj/mega328_T5_st7565/ 16 | Software/trunk/Obj/mega328_color_kit/ 17 | Software/trunk/Obj/mega328_dogm/ 18 | Software/trunk/Obj/mega328_fish8840/ 19 | Software/trunk/Obj/mega328_fish8840_OC/ 20 | Software/trunk/Obj/mega328_ssd1306I2C/ 21 | Software/trunk/Obj/mega328_ssd1306SPI/ 22 | Software/trunk/Obj/mega328_ssd1327I2C/ 23 | Software/trunk/Obj/mega328_ssd1327SPI/ 24 | Software/trunk/Obj/mega328_st7108/ 25 | Software/trunk/Obj/mega328_st7565/ 26 | Software/trunk/Obj/mega328_st7565_kit/ 27 | Software/trunk/Obj/mega328_st7920/ 28 | Software/trunk/Obj/mega328_strip_grid/ 29 | Software/trunk/Obj/mega328_strip_grid_dogm/ 30 | Software/trunk/Obj/mega328_wei_st7565/ 31 | Software/trunk/Obj/mega644_LCD2004/ 32 | Software/trunk/Obj/mega644_T7-Mod/ 33 | Software/trunk/Obj/mega644_hiland_m644/ 34 | Software/trunk/Obj/mega644_ssd1306I2C/ 35 | Software/trunk/Obj/mega8/ 36 | Software/trunk/Obj/mega8_strip_grid/ 37 | Software/trunk/Obj/default/ 38 | Software/trunk/Obj/TransistorTester/ 39 | Software/trunk/Obj/arduino_uno/ 40 | Software/trunk/Obj/arduino_m2560/ 41 | Software/trunk/Obj/ILI9163/ 42 | Software/trunk/Obj/ST7735/ 43 | Doku/trunk/pdftex/FIG/BJTexample.fig 44 | Doku/trunk/pdftex/FIG/TransistorTesterVC1.png 45 | Doku/trunk/pdftex/FIG/ssd1327_UNO.fig 46 | Doku/trunk/pdftex/FIG/ssd1327_intern.fig 47 | Doku/trunk/pdftex/FIG/t644adapter.fig 48 | Doku/trunk/pdftex/FIG/t644tester1.fig 49 | Doku/trunk/pdftex/FIG/t644tester2m.fig 50 | Doku/trunk/pdftex/FIG/t644tester2z1.fig 51 | Doku/trunk/pdftex/FIG/t644tester_2.fig 52 | Doku/trunk/pdftex/FIG/ttester2.fig 53 | Doku/trunk/pdftex/FIG/zener_sep.fig 54 | Doku/trunk/pdftex/english/*.aux 55 | Doku/trunk/pdftex/german/*.aux 56 | Doku/trunk/pdftex/russian/*.aux 57 | Software/trunk/diff_all 58 | Software/trunk/dogm163.zip 59 | Software/trunk/fonts/24x32update_bitmaps.h 60 | Software/trunk/fonts/6x8_vertikal_LSB_1thin.h 61 | Software/trunk/fonts/6x8_vertikal_LSB_2.h 62 | Software/trunk/fonts/7x12_vertikal_LSB_1thin.h 63 | Software/trunk/fonts/icon24x32leer.fig 64 | Software/trunk/fonts/icon24x32rcl.fig 65 | Software/trunk/fonts/suche 66 | Software/trunk/mega328_wei_st7565/TTactual.eep 67 | Software/trunk/mega328_wei_st7565/TTactual.hex 68 | Software/trunk/mega644_dogm204/ 69 | Software/trunk/mega644_dogm204_I2C/ 70 | Software/trunk/mega644_dogm204_serial/ 71 | Software/trunk/sampling_xtal.zip 72 | Software/trunk/sampling_xtal_255_127.c 73 | Software/trunk/FixCheck.c 74 | Software/trunk/SamplingGen1.c 75 | Software/trunk/arduino_uno/RF_module 76 | Software/trunk/fonts/10x16_vertikal_LSB_2.h 77 | Software/trunk/fonts/5x8_vertikal_LSB_2.h 78 | Software/trunk/fonts/icon24x32.fig 79 | Software/trunk/mega644_LCD2004/Reschke644 80 | Software/trunk/mega644_LCD2004/tester_Port-belegung.txt 81 | Software/trunk/mk_frequency_tab.c 82 | -------------------------------------------------------------------------------- /Doku/TransistorTester_czech.pdf: -------------------------------------------------------------------------------- 1 | ./trunk/pdftex/czech/ttester.pdf -------------------------------------------------------------------------------- /Doku/TransistorTester_english.pdf: -------------------------------------------------------------------------------- 1 | ./trunk/pdftex/english/ttester.pdf -------------------------------------------------------------------------------- /Doku/TransistorTester_german.pdf: -------------------------------------------------------------------------------- 1 | ./trunk/pdftex/german/ttester.pdf -------------------------------------------------------------------------------- /Doku/TransistorTester_russian.pdf: -------------------------------------------------------------------------------- 1 | ./trunk/pdftex/russian/ttester.pdf -------------------------------------------------------------------------------- /Doku/tags/README.md: -------------------------------------------------------------------------------- 1 | All old documentation files are removed here! 2 | 3 | You can find them now at github.com/kubi48/TransistorTester-old-versions ! 4 | -------------------------------------------------------------------------------- /Doku/trunk/README.md: -------------------------------------------------------------------------------- 1 | The documentation of the TransistorTester is removed here! 2 | 3 | You find the actual documentation at github.com with the address 4 | kubi48/TransistorTester-documentation ! 5 | -------------------------------------------------------------------------------- /Doku/trunk/pdftex/czech/ttester.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Doku/trunk/pdftex/czech/ttester.pdf -------------------------------------------------------------------------------- /Doku/trunk/pdftex/czech/ttinfo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Doku/trunk/pdftex/czech/ttinfo.pdf -------------------------------------------------------------------------------- /Doku/trunk/pdftex/english/ttester.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Doku/trunk/pdftex/english/ttester.pdf -------------------------------------------------------------------------------- /Doku/trunk/pdftex/english/ttinfo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Doku/trunk/pdftex/english/ttinfo.pdf -------------------------------------------------------------------------------- /Doku/trunk/pdftex/german/ttester.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Doku/trunk/pdftex/german/ttester.pdf -------------------------------------------------------------------------------- /Doku/trunk/pdftex/german/ttinfo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Doku/trunk/pdftex/german/ttinfo.pdf -------------------------------------------------------------------------------- /Doku/trunk/pdftex/russian/ttester.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Doku/trunk/pdftex/russian/ttester.pdf -------------------------------------------------------------------------------- /Hardware/ArduinoUno_shield/ArduinoUno_TTshield_back.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/ArduinoUno_shield/ArduinoUno_TTshield_back.JPG -------------------------------------------------------------------------------- /Hardware/ArduinoUno_shield/ArduinoUno_TTshield_front.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/ArduinoUno_shield/ArduinoUno_TTshield_front.JPG -------------------------------------------------------------------------------- /Hardware/ArduinoUno_shield/UNO_tester_shield.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/ArduinoUno_shield/UNO_tester_shield.pdf -------------------------------------------------------------------------------- /Hardware/ArduinoUno_shield/UnoShield.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/ArduinoUno_shield/UnoShield.pdf -------------------------------------------------------------------------------- /Hardware/Markus/ComponentTester-HW-1.00m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/Markus/ComponentTester-HW-1.00m.tgz -------------------------------------------------------------------------------- /Hardware/Markus/ComponentTester-Opto-Coupler-Adapter-1.00m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/Markus/ComponentTester-Opto-Coupler-Adapter-1.00m.tgz -------------------------------------------------------------------------------- /Hardware/Markus/LC-Meter-Option.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/Markus/LC-Meter-Option.pdf -------------------------------------------------------------------------------- /Hardware/Markus/OptionsAdapter-1.00m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/Markus/OptionsAdapter-1.00m.tgz -------------------------------------------------------------------------------- /Hardware/Markus/TC1-Mod.kicad.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/Markus/TC1-Mod.kicad.tgz -------------------------------------------------------------------------------- /Hardware/Max/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Ich habe mit Fritzing ein einseitiges Platinenlayout erstellt und mir 2 | eine Platine geätzt. Nachdem das ganze jetzt tadellos funktioniert 3 | wollte ich das anderen Anfängern gerne zugänglich machen. Wenn das 4 | gewünscht ist darf es natürlich auch gerne in das SVN aufgenommen 5 | werden. 6 | 7 | Q1 ist lediglich ein Platzhalter für die Spannungsreferenz, die fritzing 8 | nicht kannte. 9 | 10 | Gruß Max 11 | -------------------------------------------------------------------------------- /Hardware/Max/fritzing_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/Max/fritzing_diagram.png -------------------------------------------------------------------------------- /Hardware/Max/fritzing_sketch2.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/Max/fritzing_sketch2.fzz -------------------------------------------------------------------------------- /Hardware/Max/fritzing_sketch2_etch_copper_bottom.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/Max/fritzing_sketch2_etch_copper_bottom.pdf -------------------------------------------------------------------------------- /Hardware/PCB_mega328_ST7735/ARCHIVOS.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/PCB_mega328_ST7735/ARCHIVOS.pdf -------------------------------------------------------------------------------- /Hardware/PCB_mega328_ST7735/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Jose Miguel aus Spanien hat diese einseitige Platine mit Drahtbrücken 2 | für einen Tester mit Farbdisplay (ST7735 Controller) entwickelt. 3 | 4 | -------------------------------------------------------------------------------- /Hardware/PCB_mega328_ST7735/ReadMe.txt: -------------------------------------------------------------------------------- 1 | Jose Miquel from Spain has made this one-sided printed board 2 | for a tester with color display (ST7735 controller). 3 | -------------------------------------------------------------------------------- /Hardware/PCB_mega328_ST7735/fotos transistor tester2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/PCB_mega328_ST7735/fotos transistor tester2.pdf -------------------------------------------------------------------------------- /Hardware/PCB_mega328_ST7735/pcb AVR-Transistor tester.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/PCB_mega328_ST7735/pcb AVR-Transistor tester.pdf -------------------------------------------------------------------------------- /Hardware/strip_grid/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Die Datei ttester_strip_grid.diy ist ein Streifenleiter-Karten Entwurf für 2 | den Transistortester. Die Datei TTester_strip.pdf zeigt das Ergebnis im PDF-Format. 3 | 4 | Der Entwurf wurde mit der Software diy-layout-creator (DIYLC) gemacht. 5 | Da das Programm DIYLC in Java programmiert ist, sollte es Betriebssystem unabhängig 6 | genutzt werden können. 7 | Siehe dazu für nähere Information: http://code.google.com/p/diy-layout-creator 8 | 9 | Es wurde sowohl die Abschalt-Automatik als auch der Quarz und die Präzisions- 10 | Spannungsreferenz integriert. 11 | Aber die Pinbelegung des ATmega wurde für dieses Layout angepaßt! 12 | Die erforderlichen Programm-Anpassungen für den ATmega werden mit der 13 | Makefile Option STRIP_GRID_BOARD gemacht. 14 | Das Programm mit der Standard Pinbelegung kann auf diesem Board nicht laufen !! 15 | Genauso wenig läuft ein für die Streifenleiter-Karte angepaßtes Programm auf 16 | einer Standard-Karte! 17 | 18 | Eine Standard 100mm x 100mm Streifenleiter-Karte kann auf das erforderliche Maß 19 | verkleinert werden. 20 | Es ist ratsam, zuerst die Befestigungslöcher zu bohren und danach die Drahtbrücken 21 | zu verlöten. Die Leiterbahnunterbrechungen sollten an den angegebenen Stellen auf 22 | keinen Fall vergessen werden. Beim ISP-Stecker und bei REF1 liegen die Unterbrechungen 23 | zwischen den Rasterpunkten! 24 | 25 | Auf der Platine ist der Spannungsregler IC2 (78L05) eingezeichnet, ein Low Drop Regler 26 | wie der MCP1702-5002 kann in der neben der Platine gezeichneten Weise eingebaut werden. 27 | Die Anschlußbelegung ist nicht kompatibel! 28 | Der Widerstand R1 (680 Ohm) ist unter dem ATmega-Sockel montiert und sollte deswegen 29 | als einer der ersten Bauteile verlötet werden. Um einen Kurzschluß auszuschließen, 30 | sollte der Anschlußdraht mit einem Isolierschlauch überzogen werden. 31 | 32 | Die GND Leitung ist an den ATmega von beiden Seiten herangeführt und ist zusätzlich 33 | unter dem Sockel gebrückt. 34 | Der Widerstand R10 ist als einziger Widerstand stehend montiert. 35 | Wenn das Potentiometer VR1 vom LCD-Display verdeckt wird, kann man das Potentiometer 36 | auch auf der Lötseite verbauen. Anderenfalls muß man die VEE Spannung ohne das eingesteckte 37 | Display einstellen. 38 | 39 | Nach der Montage aller Bauteile, aber ohne das eingesteckte Display und den ATmega 40 | sollte man die Verbindungen mit einem Ohmmeter oder Durchgangsprüfer testen. 41 | Die GND Verbindungen sollten nur an den vorgesehenen Pinnen (ATmega, ISP und LCD) 42 | vorhanden sein. Ebenso sollten die VCC Verbindungen nur an den vorgesehenen Pinnen 43 | vorhanden sein. 44 | Nach diesem Test kann man die Spannungsquelle anschließen und die VCC Spannung bei 45 | gedrücktem Taster überprüfen. Wenn hier die erwarteten 5V vorhanden sind, kann 46 | man den ATmega und das LCD einstecken. 47 | 48 | Wenn der ATmega noch nicht programmiert ist, muß als nächste Aktion die Programmierung 49 | des ATmega über die ISP-Schnittstelle erfolgen. 50 | 51 | Für die eventuelle Fehlersuche sollte man die Hinweise in der PDF-Dokumentation beachten. 52 | 53 | Viel Erfolg beim Nachbau! 54 | 55 | Karl-Heinz 56 | -------------------------------------------------------------------------------- /Hardware/strip_grid/ReadMe.txt: -------------------------------------------------------------------------------- 1 | 2 | You find a strip grid board design for the TansistorTester in the 3 | file ttester_strip_grid.diy. The result you can find in the PDF file 4 | TTester_strip.pdf . 5 | The design was made with the software diy-layout-creator (DIYLC). 6 | Because this program is written in Java language, it should run on 7 | different operating systems. 8 | For further details take a look to the home page: http://code.google.com/p/diy-layout-creator 9 | 10 | All details as automatic power off, the crystal and the precision voltage reference are integrated. 11 | But the pin assignment of the ATmega was changed for this layout! 12 | The needed program changes becomes active with the Makefile option STRIP_GRID_BOARD. 13 | The program version with standard assignment can not run with this board !! 14 | On the other side a program version for the strip grid board does not run 15 | with a standard board! 16 | 17 | You can cut out the needed size from a standard 100mm x 100mm strip grid board. 18 | You should first drill the fixing holes and then solder the wire straps. 19 | The strip line should be disconnected on all denoted places. 20 | The disconnection points are out of raster at the ISP-plug and at the REF1 21 | voltage reference! 22 | 23 | The board layout is shown with the voltage regulator IC2 (78L05), a alternativ 24 | layout for a low drop regulator as MCP1702-5002 is shown beside the printed board. 25 | The pin layout of these regulators is not identical! 26 | The resistor R1 (680 Ohm) is mounted under the ATmega socket and should be soldered 27 | as one of the first parts. You should use a insolating tube to avoid a fault by short circuit. 28 | The GND signal is routed to the ATmega from both sides and is additional shorted under the 29 | socket. 30 | The resistor R10 is the only one with vertical mounting. 31 | If the potentiometer VR1 is covered with the LCD-display, the potentiometer can be 32 | mounted to the soldering side. If VR1 is covered, you can adjust the voltage without 33 | the LCD with a voltmeter or you can connect the LCD with cable for adjusting. 34 | 35 | If all components are mounted without the LCD and the ATmega, you should check 36 | the connections with a ohmmeter or a continuity checker. 37 | The GND signal should have connections to the indended pins (ATmega, ISP and LCD). 38 | Also the VCC signal should have connections only to the right pins. 39 | After this check you can connect the battery and check the VCC voltage with the start button 40 | pressed. If you find the correct 5V, you can assemble the ATmega and the LCD. 41 | 42 | If the ATmega is not yet programmed, you have to program the microcontroller with the 43 | on board ISP interface. 44 | 45 | For methode of fault finding you should read the hints in the PDF documentation. 46 | 47 | Good luck for the reproduction of the board! 48 | 49 | Karl-Heinz 50 | -------------------------------------------------------------------------------- /Hardware/strip_grid/TTester_strip.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/strip_grid/TTester_strip.pdf -------------------------------------------------------------------------------- /Hardware/strip_grid/TransistorTester_strip.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Hardware/strip_grid/TransistorTester_strip.pdf -------------------------------------------------------------------------------- /Software/Markus/ComponentTester-1.40m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Markus/ComponentTester-1.40m.tgz -------------------------------------------------------------------------------- /Software/Markus/ComponentTester-1.41m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Markus/ComponentTester-1.41m.tgz -------------------------------------------------------------------------------- /Software/Markus/ComponentTester-1.42m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Markus/ComponentTester-1.42m.tgz -------------------------------------------------------------------------------- /Software/Markus/ComponentTester-1.43m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Markus/ComponentTester-1.43m.tgz -------------------------------------------------------------------------------- /Software/Markus/ComponentTester-1.44m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Markus/ComponentTester-1.44m.tgz -------------------------------------------------------------------------------- /Software/Markus/ComponentTester-1.45m.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Markus/ComponentTester-1.45m.tgz -------------------------------------------------------------------------------- /Software/Markus/README.md: -------------------------------------------------------------------------------- 1 | Only the latest relases of the 'm' software is still available here. 2 | 3 | You can find older revisions in a separate github archiv 4 | at the address kubi48/TransistorTester-old-revisions ! 5 | -------------------------------------------------------------------------------- /Software/Messtechniker/tt-bjt-e05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Messtechniker/tt-bjt-e05.zip -------------------------------------------------------------------------------- /Software/Messtechniker/tt-cap-e05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Messtechniker/tt-cap-e05.zip -------------------------------------------------------------------------------- /Software/Messtechniker/tt-jfet-e05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Messtechniker/tt-jfet-e05.zip -------------------------------------------------------------------------------- /Software/Messtechniker/tt-res-e05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/Messtechniker/tt-res-e05.zip -------------------------------------------------------------------------------- /Software/picture-link.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/picture-link.pdf -------------------------------------------------------------------------------- /Software/tags/README.md: -------------------------------------------------------------------------------- 1 | All old Software releases are removed here! 2 | 3 | You can find all released old 'K' software releases at the 4 | github address kubi48/TransistorTester-old-releases ! 5 | -------------------------------------------------------------------------------- /Software/trunk/Battery_check.c: -------------------------------------------------------------------------------- 1 | 2 | #include "Transistortester.h" 3 | 4 | // Calibrate_UR(); // get Ref Voltages and Pin resistance 5 | // lcd_line1(); // Cursor to 1. row, column 1 6 | 7 | #ifdef BAT_CHECK 8 | void Battery_check(void) { 9 | uint16_t bat_voltage; 10 | uint16_t bat_adc; 11 | // Battery check is selected 12 | ReadADC(TPBAT); //Dummy-Readout 13 | bat_adc = W5msReadADC(TPBAT); //with 5V reference 14 | #ifdef BAT_OUT 15 | // display Battery voltage 16 | // The divisor to get the voltage in 0.01V units is ((10*33)/133) witch is about 2.4812 17 | // A good result can be get with multiply by 4 and divide by 10 (about 0.75%). 18 | #if BAT_NUMERATOR <= (0xffff/U_VCC) 19 | bat_voltage = (bat_adc*BAT_NUMERATOR)/BAT_DENOMINATOR + BAT_OUT; 20 | #else 21 | #if (BAT_NUMERATOR == 133) && (BAT_DENOMINATOR == 33) 22 | bat_voltage = (bat_adc*4)+BAT_OUT; // usually output only 2 digits 23 | #else 24 | bat_voltage = ((unsigned long)bat_adc*BAT_NUMERATOR)/BAT_DENOMINATOR + BAT_OUT; 25 | #endif 26 | #endif 27 | #if FLASHEND > 0x1fff 28 | DC_Pwr_mode = 0; 29 | #ifdef DC_PWR 30 | if ((bat_voltage < 900) || (bat_voltage > DC_PWR)) 31 | #else 32 | if (bat_voltage < 900) 33 | #endif 34 | { 35 | // no battery present, don't check, 36 | lcd_MEM_string(DC_Pwr_Mode_str); // "DC Pwr Mode" 37 | lcd_clear_line(); // clear to end of line 38 | DC_Pwr_mode = 1; 39 | return; 40 | } 41 | #endif 42 | lcd_MEM_string(Bat_str); //output: "Bat. " 43 | Display_mV(bat_voltage,2); // Display 2 Digits of this 10mV units 44 | lcd_space(); 45 | #else /* without battery voltage output */ 46 | lcd_MEM_string(Bat_str); //output: "Bat. " 47 | #endif /* BAT_OUT */ 48 | #if (BAT_POOR > 12000) 49 | #warning "Battery POOR level is set very high!" 50 | #endif 51 | #if (BAT_POOR < 2500) 52 | #warning "Battery POOR level is set very low!" 53 | #endif 54 | #if (BAT_POOR > 5300) 55 | // use .8 V difference to Warn-Level 56 | #define WARN_LEVEL (((unsigned long)(BAT_POOR+800)*(unsigned long)BAT_DENOMINATOR)/BAT_NUMERATOR) 57 | #elif (BAT_POOR > 3249) 58 | // less than 5.4 V only .4V difference to Warn-Level 59 | #define WARN_LEVEL (((unsigned long)(BAT_POOR+400)*(unsigned long)BAT_DENOMINATOR)/BAT_NUMERATOR) 60 | #elif (BAT_POOR > 1299) 61 | // less than 2.9 V only .2V difference to Warn-Level 62 | #define WARN_LEVEL (((unsigned long)(BAT_POOR+200)*(unsigned long)BAT_DENOMINATOR)/BAT_NUMERATOR) 63 | #else 64 | // less than 1.3 V only .1V difference to Warn-Level 65 | #define WARN_LEVEL (((unsigned long)(BAT_POOR+100)*(unsigned long)BAT_DENOMINATOR)/BAT_NUMERATOR) 66 | #endif 67 | #define POOR_LEVEL (((unsigned long)(BAT_POOR)*(unsigned long)BAT_DENOMINATOR)/BAT_NUMERATOR) 68 | 69 | // check the battery voltage 70 | if (bat_adc < WARN_LEVEL) { 71 | //Vcc < 7,3V; show Warning 72 | if(bat_adc < POOR_LEVEL) { 73 | //Vcc <6,3V; no proper operation is possible 74 | lcd_MEM_string(BatEmpty); //Battery empty! 75 | lcd_clear_line(); // clear to end of line 76 | lcd_refresh(); // write the pixels to display, ST7920 only 77 | wait_about5s(); // Let time to read the "empty" message 78 | switch_tester_off(); // switch power off 79 | return; 80 | } 81 | lcd_MEM_string(BatWeak); //Battery weak 82 | } else { // Battery-voltage OK 83 | lcd_MEM_string(OK_str); // "OK" 84 | } 85 | lcd_clear_line(); // clear to end of line 86 | }; 87 | #endif /* BAT_CHECK */ 88 | -------------------------------------------------------------------------------- /Software/trunk/CalibrationCap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/CalibrationCap.c -------------------------------------------------------------------------------- /Software/trunk/ChargePin10ms.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | #include "Transistortester.h" 5 | 6 | 7 | //****************************************************************** 8 | 9 | void ChargePin10ms(uint8_t PinToCharge, uint8_t ChargeDirection) { 10 | //Load the specified pin to the specified direction with 680 Ohm for 10ms. 11 | //Will be used by discharge of MOSFET Gates or to load big capacities. 12 | //Parameters: 13 | //PinToCharge: specifies the pin as mask for R-Port 14 | //ChargeDirection: 0 = switch to GND (N-Kanal-FET), 1= switch to VCC(P-Kanal-FET) 15 | 16 | if(ChargeDirection&1) { 17 | R_PORT |= PinToCharge; //R_PORT to 1 (VCC) 18 | } else { 19 | R_PORT &= ~PinToCharge; // or 0 (GND) 20 | } 21 | R_DDR |= PinToCharge; //switch Pin to output, across R to GND or VCC 22 | wait_about10ms(); // wait about 10ms 23 | // switch back Input, no current 24 | R_DDR &= ~PinToCharge; // switch back to input 25 | R_PORT &= ~PinToCharge; // no Pull up 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Software/trunk/CheckRotaryEncoder.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/CheckRotaryEncoder.c -------------------------------------------------------------------------------- /Software/trunk/CombineToLong.S: -------------------------------------------------------------------------------- 1 | #ifndef __ASSEMBLER__ 2 | #define __ASSEMBLER__ 3 | #endif 4 | #include 5 | #include "config.h" 6 | #include 7 | 8 | .section .text 9 | .func CombineII2Long 10 | .global CombineBI2Long 11 | .global CombineII2Long 12 | 13 | // This tricky function replaces the long-winded way of gcc compiler 14 | // to build = high*65536 + low 15 | // if there is any way to shorten the gcc implementation, 16 | // this function can be omitted. 17 | 18 | ;//unsigned long CombineBI2Long(uint8_t high, unsigned int low) 19 | ; { 20 | CombineBI2Long: 21 | // r24 = high input (byte) 22 | // r22,r23 = low input 23 | // CombineToLong = (unsigned long)(((unsigned long)high * 65536) + low); //compute total 24 | // CombineToLong = r22-r25 25 | clr r25 //in case of high is byte, clear upper byte 26 | // ret // because next function has nothing to do, use that return 27 | 28 | ;//unsigned long CombineII2Long(unsigned int high, unsigned int low) 29 | ; { 30 | CombineII2Long: 31 | // r24,r25 = high input 32 | // r22,r23 = low input 33 | // CombineToLong = (unsigned long)(((unsigned long)high * 65536) + low); //compute total 34 | // CombineToLong return value = r22-r25 35 | // in case of high is unsigned int, nothing to do 36 | ret 37 | .endfunc 38 | -------------------------------------------------------------------------------- /Software/trunk/EE_check_init.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "Transistortester.h" 5 | 6 | // check some EEprom values for correct values 7 | void EE_check_init(void) { 8 | #if (!defined(SamplingADC) || (PROCESSOR_TYP != 328)) && !defined(USE_EEPROM) 9 | uint8_t tt; // read test value 10 | tt = (uint8_t)eeprom_read_byte(&EE_ESR_ZEROtab[0]); 11 | // this value will never be changed by calibration 12 | if (tt != ESR_ZERO) goto init_ee; 13 | #ifdef AUTO_CAL 14 | uint8_t tt0; // value of first c_zero_tab 15 | uint8_t ww; // loop counter 16 | tt0 = tt; // init tt0 value 17 | for (ww=0;ww<7;ww++) { //checking loop 18 | tt = (uint8_t)eeprom_read_byte(&c_zero_tab[ww]); 19 | if (ww == 0) tt0 = tt; // save first value 20 | // for forth element, tt must be tt0 or tt0+1 21 | if ((ww == 3) && ((tt != tt0) && (tt != (tt0+1)) && (tt != (tt0+2)) )) goto init_ee; 22 | if ((tt > 190) || (tt < 10)) goto init_ee; // value too low or too big 23 | } 24 | #endif 25 | return; 26 | 27 | init_ee: 28 | // init all EEprom values 29 | lcd_line1(); 30 | lcd_data('E'); 31 | lcd_data('E'); 32 | #ifdef AUTO_CAL 33 | // write the correction value for ADC internal 1.1V reference 34 | (void) eeprom_write_byte((uint8_t *)(&RefDiff), (uint8_t)REF_R_KORR); // offset for true reference Voltage 35 | // write the correction value for comparator 1.1V reference 36 | (void) eeprom_write_word((uint16_t *)(&ref_offset), REF_C_KORR); // hold zero offset + slew rate dependend offset 37 | // write all 7 c_zero_tab values 38 | (void) eeprom_write_word((uint16_t *)(&c_zero_tab[0]),((C_NULL)*256) + (C_NULL)); 39 | (void) eeprom_write_byte((uint8_t *)(&c_zero_tab[2]),(C_NULL+TP2_CAP_OFFSET)); 40 | (void) eeprom_write_byte((uint8_t *)(&c_zero_tab[3]),(C_NULL+2)); 41 | (void) eeprom_write_byte((uint8_t *)(&c_zero_tab[4]),(C_NULL+TP2_CAP_OFFSET)); 42 | (void) eeprom_write_word((uint16_t *)(&c_zero_tab[5]),((C_NULL)*256) + (C_NULL)); 43 | #endif 44 | // write 4 EE_ESR_ZEROtab values 45 | (void) eeprom_write_word((uint16_t *)(&EE_ESR_ZEROtab[0]),(ESR_ZERO*256)+ESR_ZERO); 46 | (void) eeprom_write_word((uint16_t *)(&EE_ESR_ZEROtab[2]),(ESR_ZERO*256)+ESR_ZERO); 47 | #if ((LCD_ST_TYPE == 7565) || (LCD_ST_TYPE == 1306)) 48 | (void) eeprom_write_byte((uint8_t *)(&EE_Volume_Value), VOLUME_VALUE); 49 | #endif 50 | #ifdef WITH_ROTARY_SWITCH 51 | // (void) eeprom_write_byte(&EE_RotarySwitch,0); // no switch is detected 52 | #endif 53 | wait_about1s(); // time to read the "EE" message, initialization of EEprom finished 54 | #endif 55 | } 56 | 57 | -------------------------------------------------------------------------------- /Software/trunk/GetFrequency.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/GetFrequency.c -------------------------------------------------------------------------------- /Software/trunk/GetIr.c: -------------------------------------------------------------------------------- 1 | 2 | /* Get residual current in reverse direction of a diode */ 3 | 4 | 5 | 6 | //================================================================= 7 | void GetIr(uint8_t hipin, uint8_t lopin) { 8 | unsigned int u_res; // reverse voltage at 470k 9 | unsigned int u_res_old; 10 | unsigned int ir_nano; 11 | uint8_t HiADC; 12 | 13 | uint8_t LoPinR_L; 14 | #if (((PIN_RL1 + 1) != PIN_RH1) || ((PIN_RL2 + 1) != PIN_RH2) || ((PIN_RL3 + 1) != PIN_RH3)) 15 | HiADC = pgm_read_byte(&PinRLRHADCtab[hipin-TP_MIN]+6); // Table of ADC pins including | TXD_VAL 16 | ADC_PORT = HiADC; // switch ADC port to high level 17 | ADC_DDR = HiADC | TXD_MSK; // switch High Pin direct to VCC 18 | R_PORT = 0; // switch R-Port to GND 19 | LoPinR_L = pgm_read_byte(&PinRHRLADCtab[lopin-TP_MIN]); //R_L mask for LowPin R_L load 20 | #else 21 | HiADC = pgm_read_byte(&PinRLRHADCtab[hipin-TP_MIN]+3); // Table of ADC pins including | TXD_VAL 22 | ADC_PORT = HiADC; // switch ADC port to high level 23 | ADC_DDR = HiADC | TXD_MSK; // switch High Pin direct to VCC 24 | R_PORT = 0; // switch R-Port to GND 25 | LoPinR_L = pgm_read_byte(&PinRLRHADCtab[lopin-TP_MIN]); //R_L mask for LowPin R_L load 26 | // R_H Pin must always be one pin number higher 27 | #endif 28 | R_DDR = LoPinR_L; // switch R_L port for LowPin to output (GND) 29 | u_res = U_VCC; 30 | // first load the parallel capacity with 680 Ohm resistor, then measure current with 470k 31 | do { 32 | u_res_old = u_res; 33 | u_res = W20msReadADC(lopin); // read voltage 34 | #if (((PIN_RL1 + 1) != PIN_RH1) || ((PIN_RL2 + 1) != PIN_RH2) || ((PIN_RL3 + 1) != PIN_RH3)) 35 | R_DDR = pgm_read_byte(&PinRHRLADCtab[lopin-TP_MIN+3]); //R_H mask for LowPin R_H load 36 | #else 37 | R_DDR = LoPinR_L + LoPinR_L; // switch R_H port for LowPin to output (GND) 38 | #endif 39 | } while (u_res < u_res_old); 40 | if (u_res == 0) return; // no Output, if no current in reverse direction 41 | #if (LCD_LINES > 3) 42 | #define IR_DIGITS 3 43 | lcd_line4(); // use Line 4 for Ir output 44 | lcd_MEM_string(Ir_str); // output text "Ir=" 45 | #else 46 | #define IR_DIGITS 2 47 | lcd_MEM_string(Ir_str); // output text " Ir=" 48 | #endif 49 | #ifdef WITH_IRMICRO 50 | unsigned int ir_micro; 51 | if (u_res < 2500) { 52 | #endif 53 | /* R_H_VAL has units of 10 Ohm, u_res has units of mV, ir_nano has units of nA */ 54 | ir_nano = (unsigned long)(u_res * 100000UL) / R_H_VAL; 55 | DisplayValue16(ir_nano,-9,'A',2); // output two digits of current with nA units 56 | #ifdef WITH_IRMICRO 57 | } else { 58 | R_DDR = LoPinR_L; // switch R_L port for LowPin to output (GND) 59 | u_res = W5msReadADC(lopin); // read voltage 60 | ir_nano = 0xffff; // set to max 61 | /* RR680MI has units of 0.1 Ohm, u_res has units of mV, ir_micro has units of uA */ 62 | ir_micro = (unsigned long)(u_res * 10000UL) / RR680MI; 63 | DisplayValue16(ir_micro,-6,'A',IR_DIGITS); // output 2 or 3 digits of current in uA units 64 | } 65 | #endif 66 | ADC_DDR = TXD_MSK; // switch off 67 | ADC_PORT = TXD_VAL; // switch off 68 | R_DDR = 0; // switch off current 69 | 70 | return ; 71 | } 72 | -------------------------------------------------------------------------------- /Software/trunk/GetRLmultip.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include "Transistortester.h" 5 | 6 | 7 | unsigned int GetRLmultip(unsigned int cvolt) { 8 | 9 | // interpolate table RLtab corresponding to voltage cvolt 10 | // Widerstand 680 Ohm 300 325 350 375 400 425 450 475 500 525 550 575 600 625 650 675 700 725 750 775 800 825 850 875 900 925 950 975 1000 1025 1050 1075 1100 1125 1150 1175 1200 1225 1250 1275 1300 1325 1350 1375 1400 mV 11 | //uint16_t RLtab[] MEM_TEXT = {22447,20665,19138,17815,16657,15635,14727,13914,13182,12520,11918,11369,10865,10401, 9973, 9577, 9209, 8866, 8546, 8247, 7966, 7702, 7454, 7220, 6999, 6789, 6591, 6403, 6224, 6054, 5892, 5738, 5590, 5449, 5314, 5185, 5061, 4942, 4828, 4718, 4613, 4511, 4413, 4319, 4228}; 12 | 13 | #define RL_Tab_Abstand 25 // displacement of table 25mV 14 | #define RL_Tab_Beginn 300 // begin of table ist 300mV 15 | #define RL_Tab_Length 1100 // length of table is 1400-300 16 | 17 | unsigned int uvolt; 18 | unsigned int y1, y2; 19 | uint8_t tabind; 20 | uint8_t tabres; 21 | if (cvolt >= RL_Tab_Beginn) { 22 | uvolt = cvolt - RL_Tab_Beginn; 23 | } else { 24 | uvolt = 0; // limit to begin of table 25 | } 26 | tabind = uvolt / RL_Tab_Abstand; 27 | tabres = uvolt % RL_Tab_Abstand; 28 | tabres = RL_Tab_Abstand - tabres; 29 | if (tabind > ((RL_Tab_Length/RL_Tab_Abstand)-1)) { 30 | tabind = (RL_Tab_Length/RL_Tab_Abstand)-1; // limit to end of table 31 | tabres = 0; 32 | } 33 | y1 = MEM_read_word(&RLtab[tabind]); 34 | y2 = MEM_read_word(&RLtab[tabind+1]); 35 | return ( ((y1 - y2) * tabres + (RL_Tab_Abstand/2)) / RL_Tab_Abstand + y2); // interpolate table 36 | } 37 | 38 | -------------------------------------------------------------------------------- /Software/trunk/GetVloss.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/GetVloss.c -------------------------------------------------------------------------------- /Software/trunk/ILI9163/ILI9163.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D004261636B436F6C3C 16 | :1000F0006F720046726F6E74436F6C6F720049438B 17 | :1001000045733D00494345303D0056657273696F44 18 | :100110006E20312E31336B000607080600060405F9 19 | :1001200006002A012020007A20513D002069662027 20 | :10013000002040302D35560006020600060106005C 21 | :1001400049723D004C3D0020566C6F73733D00209A 22 | :100150004553523D005643433D0043656C6C2100BE 23 | :10016000060306004056673D002056743D00556664 24 | :100170003D005562653D00203132333D0050696ECF 25 | :100180002000424A542D504E5000424A542D4E50A9 26 | :100190004E00433D0043673D006846453D002D4904 27 | :1001A000474254004A464554002D4D4F53004443A6 28 | :1001B00020507772204D6F6465004F4B0042617490 29 | :1001C0002E20004672657175656E63790073686FE5 30 | :1001D00072742050726F626573210053656C66748F 31 | :1001E000657374007475726E210043281E46292DB4 32 | :1001F000636F7272656374696F6E0031302D62696E 33 | :10020000742050574D00662D47656E657261746F9E 34 | :100210007200537769746368206F66660053686F75 35 | :1002200077206461746100566F6C74616765005477 36 | :1002300072616E736973746F720053656C65637479 37 | :10024000696F6E3A005465737420456E640069737B 38 | :100250006F6C6174652050726F6265732100536525 39 | :100260006C6674657374206D6F64652E2E0054691E 40 | :100270006D656F75742100206465746563746564D1 41 | :10028000004E6F2C20756E6B6E6F776E2C206F7228 42 | :100290000020756E6B6E6F776E00546879726973AB 43 | :1002A000742E00547269616300706172740064613D 44 | :1002B0006D616765642000656D70747921007765F4 45 | :1002C000616B0054657374696E672E0070578050BF 46 | :1002D0008D4A6645E340E83C5E3933365A33C630D2 47 | :1002E0006D2E492C532A8428DA264E25DF238922B5 48 | :1002F0004A212020081F011E091D201C431B731AC0 49 | :10030000AD19F1183F189517F4165A16C6153A1577 50 | :10031000B3143214B7134013CE126112F8119311B3 51 | :100320003111D3107810FFFF780014141414002F2B 52 | :10033000072F072F072F072F072F072F072F072F0D 53 | :10034000072F072F072F072F072F0739393B3B3B75 54 | :1003500039390C00032020202020205B524C5D0006 55 | :020360007846DD 56 | :00000001FF 57 | -------------------------------------------------------------------------------- /Software/trunk/ILI9163/ReadMe.txt: -------------------------------------------------------------------------------- 1 | The Makefile and .hex and .eep files in this directory 2 | are configured for a 1.44" 128X128 SPI Color TFT LCD Module, 3 | which is offered by some Chinese salesmen for a few dollars. 4 | The module use a 8 pin SIP connector terminal with 100 mil pitch 5 | for power and SPI signals: 6 | Pin Signal 7 | 1 VCC (5V or 3.3V) 8 | 2 GND 9 | 3 CS (Chip Select) 10 | 4 RESET 11 | 5 A0 (Command / Data) 12 | 6 SDA (Serial Data) 13 | 7 SCK (Serial Clock) 14 | 8 LED (Anode of the background LED) 15 | 16 | Normaly the module use a ILI9163 controller. 17 | The module include a 3.3V voltage regulator, so that you can connect 18 | the VCC pin to 5V power directly. 19 | But you should connect all the SPI signals to the ATmega outputs with 20 | serial 10 kOhm resistors! 21 | The CS input can be connected to GND or to the PD5 output of the ATmega. 22 | 23 | The connection must be done in the following manner: 24 | 25 | ATMEGA | Char-LCD | Color-LCD-Module 26 | -------+----------+----------- 27 | PD0 | D4 (11) | RESET (4) 28 | PD1 | D5 (12) | A0 (5) 29 | PD2 | D6 (13) | SCK (7) 30 | PD3 | D7 (14) | SDA (6) 31 | (PD5) | (E (6)) | CS (3) 32 | GND | GND (1) | GND (2) 33 | VCC | VCC (2) | VCC (1) 34 | | LED (15) | LED (8) 35 | 36 | You should remember to use a 10k serial resistor for every connection 37 | to a ATmega output. The only exceptions are the VCC and GND power, 38 | which should be connected directly. 39 | The LED pin must be connected to 5V with a 40 | serial resistor (for example 39 Ohm) to accomplish a correct LED current. 41 | Please check your board, that the pin 15 of the character LCD terminal is not directly 42 | connected to VCC without any current limiting resistor. 43 | -------------------------------------------------------------------------------- /Software/trunk/LiesMich.txt: -------------------------------------------------------------------------------- 1 | In diesem Verzeichnis sind die Quelldateien für alle TransistorTester Versionen. 2 | Um die Programmdaten für ihren ATmega Mikrocontroller zu generieren, wechseln 3 | Sie bitte in eins der folgenden Unterverzeichnisse: 4 | mega8, default, mega328, mega168_strip_grid, mega328_strip_grid, mega328_dogm and mega328_strip_grid_dogm. 5 | 6 | Das mega8 Unterverzeichnis enthält die Makefile für die Erzeugung von Programmdaten eines ATmega8 Microcontroller. 7 | Das default Unterverzeichnis enthält die Makefile für die Erzeugung von Programmdaten eines ATmega168 Controller. 8 | Das mega328 Unterverzeichnis enthält die Makefile für Erzeugung von die Programmdaten eines ATmega328 Controller. 9 | Die Unterverzeichnisse mit der _strip_grid Endung enthalten die Makefiles für einen anderen Anschluß 10 | des LCDs, wie er für das Streifenleiter Board benutzt wird. Diese Daten können nicht für Transistertester 11 | mit dem normalen Anschluß des LCD benutzt werden. 12 | Man kann die Programmierdaten und die passende Makefile für DOGM LCDs in den Unterverzeichnissen 13 | mit der dogm Endung finden (meha328_dogm und mega328_strip_grid_dogm). 14 | 15 | Alle Unterverzeichnisse enthalten die Makefile und die übersetzten TransistorTester.hex und TransistorTester.eep 16 | Daten! 17 | Die .hex Daten müssen in den Flash Speicher geladen und die .eep Daten in das EEprom geladen werden. 18 | Unter Linux oder mit WinAVR können die Daten auch über der Makefile gesteuert mit dem Programm avrdude in den 19 | Speicher des ATmega geladen werden, wenn ein von avrdude unterstütztes ISP-Programmiergerät angeschlossen ist. 20 | Die Daten können aber auch mit jedem anderen Programm in den ATmega geladen werden. 21 | 22 | Man kann auch ein eigenes Unterverzeichnis anlegen und hier eine Kopie einer Makefile aus einem anderen 23 | Verzeichnis anlegen. 24 | Hier kann man dann andere Optionen in dieser Makefile-Kopie setzen und so eine eigene 25 | Version von TransistorTester Programmdaten in diesem Verzeichnis zu erzeugen. 26 | 27 | Bitte teilen sie mit mit, wenn Sie Probeme mit meiner software haben oder wenn Sie Fehler gefunden haben. 28 | Sie können mich per Email (kh_kuebbeler@web.de) erreichen oder in meinem Thread bei www.mikrocontroller.net antworten. 29 | 30 | Viel Erfolg, 31 | Karl-Heinz Kübbeler 32 | 33 | -------------------------------------------------------------------------------- /Software/trunk/Makefile: -------------------------------------------------------------------------------- 1 | 2 | ALL_PROJECTS := \ 3 | default \ 4 | mega8 \ 5 | mega168_1.9V \ 6 | mega328_1.9V \ 7 | mega328 \ 8 | mega168_3.3V \ 9 | mega328_3.3V \ 10 | mega328_dogm \ 11 | mega168_strip_grid \ 12 | mega328_strip_grid \ 13 | mega328_strip_grid_dogm \ 14 | mega328_2X16_menu \ 15 | mega328_st7565 \ 16 | mega328_st7565_kit \ 17 | mega328_color_kit \ 18 | mega328_st7920 \ 19 | mega328_st7108 \ 20 | mega328_GM328 \ 21 | mega328_fish8840 \ 22 | mega328_fish8840_OC \ 23 | mega328_wei_st7565 \ 24 | mega328_MK-328 \ 25 | mega328_T3_T4_st7565 \ 26 | mega328_T4_v2_st7565 \ 27 | mega328_T5_st7565 \ 28 | mega328_ssd1306SPI \ 29 | mega328_ssd1306I2C \ 30 | mega328_ssd1327SPI \ 31 | mega328_ssd1327I2C \ 32 | mega328_PCF8812 \ 33 | mega328_PCF8814 \ 34 | arduino_m2560 \ 35 | arduino_uno \ 36 | mega644_hiland_m644 \ 37 | mega644_LCD2004 \ 38 | mega644_ssd1306I2C \ 39 | ST7735 \ 40 | ILI9163 \ 41 | 42 | 43 | .PHONY: all steril clean $(ALL_PROJECTS) 44 | 45 | all: $(ALL_PROJECTS) 46 | 47 | $(ALL_PROJECTS): 48 | $(MAKE) -C $@ 49 | 50 | clean: 51 | for d in $(ALL_PROJECTS); \ 52 | do \ 53 | $(MAKE) --directory=$$d clean; \ 54 | done 55 | 56 | steril: 57 | for d in $(ALL_PROJECTS); \ 58 | do \ 59 | $(MAKE) --directory=$$d steril; \ 60 | done 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Software/trunk/PinLayout.c: -------------------------------------------------------------------------------- 1 | #include "Transistortester.h" 2 | 3 | 4 | // show the Pin Layout of the device 5 | void PinLayout(char pin1, char pin2, char pin3) { 6 | // pin1-3 is EBC or SGD or CGA 7 | #ifndef EBC_STYLE 8 | // Layout with 123= style 9 | uint8_t ipp; 10 | lcd_MEM_string(N123_str); //" 123=" 11 | for (ipp=0;ipp<3;ipp++) { 12 | if (ipp == _trans->e) lcd_data(pin1); // Output Character in right order 13 | if (ipp == _trans->b) lcd_data(pin2); 14 | if (ipp == _trans->c) lcd_data(pin3); 15 | } 16 | #else /* EBC_STYLE is defined */ 17 | #if EBC_STYLE == 321 18 | // Layout with 321= style 19 | uint8_t ipp; 20 | lcd_MEM_string(N321_str); //" 321=" 21 | ipp = 3; 22 | while (ipp != 0) { 23 | ipp--; 24 | if (ipp == _trans->e) lcd_data(pin1); // Output Character in right order 25 | if (ipp == _trans->b) lcd_data(pin2); 26 | if (ipp == _trans->c) lcd_data(pin3); 27 | } 28 | #else 29 | // Layout with EBC= style 30 | lcd_space(); 31 | lcd_data(pin1); 32 | lcd_data(pin2); 33 | lcd_data(pin3); 34 | lcd_equal(); // lcd_data('='); 35 | lcd_testpin(_trans->e); 36 | lcd_testpin(_trans->b); 37 | lcd_testpin(_trans->c); 38 | #endif 39 | #endif 40 | } 41 | 42 | #ifdef WITH_GRAPHICS 43 | void PinLayoutLine(char pin1, char pin2, char pin3) { 44 | lcd_next_line_wait(0); 45 | #ifdef NO_LONG_PINLAYOUT 46 | lcd_space(); 47 | lcd_MEM_string(Pin_str); //"Pin " 48 | PinLayout(pin1, pin2, pin3); // short form of Layout 49 | #else 50 | lcd_MEM_string(Pin_str); //"Pin " 51 | // pin1-3 is EBC or SGD or CGA 52 | #ifndef EBC_STYLE 53 | // Layout with 1= 2= 3= style 54 | uint8_t ipp; 55 | for (ipp=0;ipp<3;ipp++) { 56 | lcd_testpin(ipp); 57 | lcd_equal(); // lcd_data('='); 58 | if (ipp == _trans->e) lcd_data(pin1); // Output Character in right order 59 | if (ipp == _trans->b) lcd_data(pin2); 60 | if (ipp == _trans->c) lcd_data(pin3); 61 | lcd_space(); 62 | } 63 | #else /* EBC_STYLE is defined */ 64 | #if EBC_STYLE == 321 65 | // Layout with 3= 2= 1= style 66 | uint8_t ipp; 67 | ipp = 3; 68 | while (ipp != 0) { 69 | ipp--; 70 | lcd_testpin(ipp); 71 | lcd_equal(); // lcd_data('='); 72 | if (ipp == _trans->e) lcd_data(pin1); // Output Character in right order 73 | if (ipp == _trans->b) lcd_data(pin2); 74 | if (ipp == _trans->c) lcd_data(pin3); 75 | lcd_space(); 76 | } 77 | #else 78 | // Layout with E= B= C= style 79 | lcd_data(pin1); 80 | lcd_equal(); // lcd_data('='); 81 | lcd_testpin(_trans->e); 82 | lcd_space(); 83 | lcd_data(pin2); 84 | lcd_equal(); // lcd_data('='); 85 | lcd_testpin(_trans->b); 86 | lcd_space(); 87 | lcd_data(pin3); 88 | lcd_equal(); // lcd_data('='); 89 | lcd_testpin(_trans->c); 90 | #endif 91 | #endif 92 | #endif /* NO_LONG_PINLAYOUT */ 93 | } 94 | #endif /* WITH_GRAPHICS */ 95 | 96 | /* ********************************************************** */ 97 | /* Rnum2pins computes two pin numbers for resistor number num */ 98 | uint16_t Rnum2pins(uint8_t num) { 99 | uint8_t x,y; 100 | 101 | x = TP1; 102 | y = TP3; 103 | if (num == 0) y = TP2; 104 | if (num == 2) x = TP2; 105 | return ((uint16_t)(y<<8) | x); 106 | } 107 | -------------------------------------------------------------------------------- /Software/trunk/ReadBigCap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/ReadBigCap.c -------------------------------------------------------------------------------- /Software/trunk/ReadCapacity.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/ReadCapacity.c -------------------------------------------------------------------------------- /Software/trunk/ReadInductance.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/ReadInductance.c -------------------------------------------------------------------------------- /Software/trunk/ReadMe.txt: -------------------------------------------------------------------------------- 1 | This directory contains the program source for all TransistorTester versions. 2 | To build the programming files for your ATmega microcontroller 3 | please change to one of the following subdirectories: 4 | mega8, default, mega328, mega168_strip_grid, mega328_strip_grid, mega328_dogm and mega328_strip_grid_dogm 5 | 6 | The mega8 subdirectory contains the Makefile to build the programming data for a ATmega8 microcontroller. 7 | The default subdirectory contains the Makefile to build the programming data for a ATmega168 controller. 8 | The mega328 subdirectory contains the Makefile to build the programming data for a ATmega328 controller. 9 | The subdirectories with the _strip_grid ending contains the Makefiles for the different connection 10 | of the LCD used for the strip grid board and can not be used with the normal connection of the LCD. 11 | You can find the programming data and the matching Makefile for the DOGM style LCD in the subdirectories 12 | with dogm ending (mega328_dogm and mega328_strip_grid_dogm). 13 | 14 | All subdirectories hold the Makefile the compiled data TransistorTester.hex and TransistorTester.eep! 15 | The .hex data must be loaded to the flash memory and the .eep data must be loaded to the EEprom memory. 16 | With the Linux operating system or with WinAVR the data can be loaded with the program avrdude to the 17 | memory of the ATmega, controled with the Makefile. The connected ISP programmer must be supported by the program avrdude. 18 | The data can also be loaded with any other program to the ATmega without control of the Makefile. 19 | 20 | You can also create a own subdirectory and copy any of the Makefiles of the other directories to this 21 | own subdirectory. Now you can set other options in this Makefile copy in your directory and try to build 22 | your own TransistorTester programming data in this directory. 23 | 24 | Please tell me, if you have problems with my software or if you have found errors. 25 | You can send me a Email to kh_kuebbeler@web.de or answer to my www.mikrocontroller.net thread. 26 | 27 | Good luck 28 | Karl-Heinz Kübbeler 29 | 30 | -------------------------------------------------------------------------------- /Software/trunk/RefVoltage.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "Transistortester.h" 4 | 5 | // computes RHmultip, adc_internal_reference (ADCconfig.U_Bandgap) and ref_mv_offs 6 | 7 | void RefVoltage(void) { 8 | // RefVoltage interpolates table RHtab corresponding to voltage ref_mv_offs . 9 | // RHtab contain the factors to get capacity from load time with 470k for 10 | // different Band gab reference voltages. 11 | // for remember: 12 | //resistor 470000 Ohm 1000 1050 1100 1150 1200 1250 1300 1350 1400 mV 13 | //uint16_t RHTAB[] MEM_TEXT = { 954, 903, 856, 814, 775, 740, 707, 676, 648}; 14 | 15 | #define Ref_Tab_Abstand 50 // displacement of table is 50mV 16 | #define Ref_Tab_Beginn 1000 // begin of table is 1000mV 17 | 18 | unsigned int referenz; 19 | unsigned int y1, y2; 20 | uint8_t tabind; 21 | uint8_t tabres; 22 | 23 | #ifdef AUTO_CAL 24 | referenz = ref_mv + (int16_t)eeprom_read_word((uint16_t *)(&ref_offset)); 25 | #else 26 | referenz = ref_mv + REF_C_KORR; 27 | #endif 28 | ref_mv_offs = referenz; 29 | #ifdef AUTO_RH 30 | if (referenz >= Ref_Tab_Beginn) { 31 | referenz -= Ref_Tab_Beginn; 32 | } else { 33 | referenz = 0; // limit to begin of table 34 | } 35 | tabind = referenz / Ref_Tab_Abstand; 36 | tabres = referenz % Ref_Tab_Abstand; 37 | tabres = Ref_Tab_Abstand-tabres; 38 | if (tabind > 7) { 39 | tabind = 7; // limit to end of table 40 | } 41 | // interpolate the table of factors 42 | y1 = pgm_read_word(&RHtab[tabind]); 43 | y2 = pgm_read_word(&RHtab[tabind+1]); 44 | // RHmultip is the interpolated factor to compute capacity from load time with 470k 45 | RHmultip = ((y1 - y2) * tabres + (Ref_Tab_Abstand/2)) / Ref_Tab_Abstand + y2; 46 | //######################################## 47 | #else 48 | RHmultip = DEFAULT_RH_FAKT; // default Multiplier for capacity measurement with R_H (470KOhm) 49 | #endif 50 | 51 | #if PROCESSOR_TYP == 8 52 | referenz = 2560; // use defined internal ADC Voltage 53 | #else 54 | referenz = ref_mv; // use the read out internal Reference voltage 55 | #endif 56 | #ifdef AUTO_CAL 57 | ADCconfig.U_Bandgap = (referenz + (int8_t)eeprom_read_byte((uint8_t *)&RefDiff)); 58 | #else 59 | ADCconfig.U_Bandgap = (referenz + REF_R_KORR); 60 | #endif 61 | adc_internal_reference = ADCconfig.U_Bandgap; 62 | } /* end of RefVoltage */ 63 | 64 | -------------------------------------------------------------------------------- /Software/trunk/RvalOut.S: -------------------------------------------------------------------------------- 1 | #ifndef __ASSEMBLER__ 2 | #define __ASSEMBLER__ 3 | #endif 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include "config.h" 9 | #include "part_defs.h" 10 | 11 | 12 | /* #include */ 13 | /* #include */ 14 | /* #include */ 15 | 16 | /* #include "Transistortester.h" */ 17 | 18 | /* void RvalOut(uint8_t nrr) { */ 19 | /* // output of resistor value */ 20 | /* #if FLASHEND > 0x1fff */ 21 | /* uint16_t rr; */ 22 | /* if ((resis[nrr].rx < 100) && (inductor_lpre == 0)) { */ 23 | /* rr = GetESR(resis[nrr].ra,resis[nrr].rb); */ 24 | /* DisplayValue(rr,-2,LCD_CHAR_OMEGA,3); */ 25 | /* } else { */ 26 | /* DisplayValue(resis[nrr].rx,-1,LCD_CHAR_OMEGA,4); */ 27 | /* } */ 28 | /* #else */ 29 | /* DisplayValue(resis[nrr].rx,-1,LCD_CHAR_OMEGA,4); */ 30 | /* #endif */ 31 | /* lcd_space(); */ 32 | /* } */ 33 | 34 | #define zero_reg r1 35 | #define RCALL rcall 36 | 37 | .GLOBAL RvalOut 38 | .func RvalOut 39 | .extern DisplayValue 40 | .extern GetESR 41 | .extern lcd_space 42 | .extern ResistorVal 43 | 44 | .section .text 45 | 46 | RvalOut: ; void RvalOut(uint8_t nrr) 47 | push r16 48 | 49 | mov r16, r24 50 | LDIZ ResistorVal 51 | add r24, r24 ; nrr*2 52 | add r24, r24 ; nrr*4 53 | add r30, r24 54 | adc r31, zero_reg 55 | 56 | ld r22, Z ; resis[rr].rx 57 | ldd r23, Z+1 ; 0x01 58 | ldd r24, Z+2 ; 0x02 59 | ldd r25, Z+3 ; 0x03 60 | #if FLASHEND > 0x1fff 61 | cpi r22, 0x64 ; 100 62 | cpc r23, r1 63 | cpc r24, r1 64 | cpc r25, r1 65 | brcc ad1d8e ; (ResistorVal[nrr] < 100) 66 | lds r18, inductor_lpre 67 | sbrc r18, 7 ; minus bit set? 68 | rjmp ad1d8e ; (inductor_lpre >= 0) 69 | mov r24,r16 70 | ACALL Rnum2pins; ; pins = Rnum2pins(nrr) 71 | mov r22, r25 72 | ACALL GetESR ; rr = GetESR(resis[nrr].ra,resis[nrr].rb); 73 | ; movw r22, r24 74 | ; ldi r24, 0 75 | ; ldi r25, 0 76 | ; ldi r20, -2 ; 254 77 | ; ldi r16, 0x03 ; 3 78 | ; rjmp ad1d94 ; DisplayValue(rr,-2,LCD_CHAR_OMEGA,3); 79 | ldi r22, -2 80 | ldi r18, 3 81 | ldi r20, LCD_CHAR_OMEGA 82 | RCALL DisplayValue16 ; DisplayValue16(rr,-2,LCD_OMEGA,3); 83 | rjmp ret_with_space 84 | ad1d8e: ; } else { 85 | #endif 86 | ; r22-r25 = ResistorVal[rr] 87 | ldi r20, -1 ; 255 88 | ldi r16, 0x04 ; DisplayValue(resis[nrr].rx,-1,LCD_CHAR_OMEGA,4); 89 | ;ad1d94: 90 | ldi r18, LCD_CHAR_OMEGA ; 244 91 | RCALL DisplayValue 92 | ret_with_space: 93 | RCALL lcd_space ; lcd_space(); 94 | pop r16 95 | ret 96 | .endfunc 97 | -------------------------------------------------------------------------------- /Software/trunk/RvalOut.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | 6 | #include "Transistortester.h" 7 | 8 | void RvalOut(uint8_t nrr) { 9 | // output of resistor value 10 | union { 11 | uint16_t pw; // return value from Rnum2pins() 12 | uint8_t pb[2]; // the pin numbers LowPin and HighPin 13 | } rpins; // resistor pin structure to prevent two return parameters 14 | 15 | #if FLASHEND > 0x1fff 16 | uint16_t rr; 17 | if ((ResistorVal[nrr] < 100) && (inductor_lpre >= 0)) { 18 | rpins.pw = Rnum2pins(nrr); // compute the pin numbers for resistor nrr 19 | rr = GetESR(rpins.pb[1], rpins.pb[0]); 20 | DisplayValue16(rr,-2,LCD_CHAR_OMEGA,3); 21 | } else { 22 | DisplayValue(ResistorVal[nrr],-1,LCD_CHAR_OMEGA,4); 23 | } 24 | #else 25 | DisplayValue(ResistorVal[nrr],-1,LCD_CHAR_OMEGA,4); 26 | #endif 27 | lcd_space(); 28 | } 29 | 30 | -------------------------------------------------------------------------------- /Software/trunk/ST7735/ReadMe.txt: -------------------------------------------------------------------------------- 1 | The Makefile and .hex and .eep files in this directory 2 | are configured for a 1.44" 128X160 SPI Color TFT LCD Module, 3 | which is offered by some Chinese salesmen for a few dollars. 4 | The module use a 8 pin SIP connector terminal with 100 mil pitch 5 | for power and SPI signals: 6 | Pin Signal 7 | 1 VCC (5V or 3.3V) 8 | 2 GND 9 | 3 CS (Chip Select) 10 | 4 RESET 11 | 5 A0 (Command / Data) 12 | 6 SDA (Serial Data) 13 | 7 SCK (Serial Clock) 14 | 8 LED (Anode of the background LED) 15 | 16 | Normaly the module use a ST7735 controller. 17 | The module include a 3.3V voltage regulator, so that you can connect 18 | the VCC pin to 5V power directly. 19 | But you should connect all the SPI signals to the ATmega outputs with 20 | serial 10 kOhm resistors! 21 | The CS input can be connected to GND or to the PD5 output of the ATmega. 22 | 23 | The connection must be done in the following manner: 24 | 25 | ATMEGA | Char-LCD | Color-LCD-Module 26 | -------+----------+----------- 27 | PD0 | D4 (11) | RESET (4) 28 | PD1 | D5 (12) | A0 (5) 29 | PD2 | D6 (13) | SCK (7) 30 | PD3 | D7 (14) | SDA (6) 31 | (PD5) | (E (6)) | CS (3) 32 | GND | GND (1) | GND (2) 33 | VCC | VCC (2) | VCC (1) 34 | | LED (15) | LED (8) 35 | 36 | You should remember to use a 10k serial resistor for every connection 37 | to a ATmega output. The only exceptions are the VCC and GND power, 38 | which should be connected directly. 39 | The LED pin must be connected to 5V with a 40 | serial resistor (for example 39 Ohm) to accomplish a correct LED current. 41 | Please check your board, that the pin 15 of the character LCD terminal is not directly 42 | connected to VCC without any current limiting resistor. 43 | -------------------------------------------------------------------------------- /Software/trunk/ST7735/ST7735.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D004261636B436F6C3C 16 | :1000F0006F720046726F6E74436F6C6F720049438B 17 | :1001000045733D00494345303D0056657273696F44 18 | :100110006E20312E31336B000607080600060405F9 19 | :1001200006002A012020007A20513D002069662027 20 | :10013000002040302D35560006020600060106005C 21 | :1001400049723D004C3D0020566C6F73733D00209A 22 | :100150004553523D005643433D0043656C6C2100BE 23 | :10016000060306004056673D002056743D00556664 24 | :100170003D005562653D00203132333D0050696ECF 25 | :100180002000424A542D504E5000424A542D4E50A9 26 | :100190004E00433D0043673D006846453D002D4904 27 | :1001A000474254004A464554002D4D4F53004443A6 28 | :1001B00020507772204D6F6465004F4B0042617490 29 | :1001C0002E20004672657175656E63790073686FE5 30 | :1001D00072742050726F626573210053656C66748F 31 | :1001E000657374007475726E210043281E46292DB4 32 | :1001F000636F7272656374696F6E0031302D62696E 33 | :10020000742050574D00662D47656E657261746F9E 34 | :100210007200537769746368206F66660053686F75 35 | :1002200077206461746100566F6C74616765005477 36 | :1002300072616E736973746F720053656C65637479 37 | :10024000696F6E3A005465737420456E640069737B 38 | :100250006F6C6174652050726F6265732100536525 39 | :100260006C6674657374206D6F64652E2E0054691E 40 | :100270006D656F75742100206465746563746564D1 41 | :10028000004E6F2C20756E6B6E6F776E2C206F7228 42 | :100290000020756E6B6E6F776E00546879726973AB 43 | :1002A000742E00547269616300706172740064613D 44 | :1002B0006D616765642000656D70747921007765F4 45 | :1002C000616B0054657374696E672E0070578050BF 46 | :1002D0008D4A6645E340E83C5E3933365A33C630D2 47 | :1002E0006D2E492C532A8428DA264E25DF238922B5 48 | :1002F0004A212020081F011E091D201C431B731AC0 49 | :10030000AD19F1183F189517F4165A16C6153A1577 50 | :10031000B3143214B7134013CE126112F8119311B3 51 | :100320003111D3107810FFFF780014141414002F2B 52 | :10033000072F072F072F072F072F072F072F072F0D 53 | :10034000072F072F072F072F072F0739393B3B3B75 54 | :1003500039390C00032020202020205B524C5D0006 55 | :020360007846DD 56 | :00000001FF 57 | -------------------------------------------------------------------------------- /Software/trunk/Transistortester.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/Transistortester.h -------------------------------------------------------------------------------- /Software/trunk/UfAusgabe.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include "Transistortester.h" 4 | 5 | 6 | void DiodeSymbol_withPins(uint8_t nn) { 7 | uint8_t anode_nr; 8 | uint8_t cathode_nr; 9 | anode_nr = diodes.Anode[nn]; 10 | cathode_nr = diodes.Cathode[nn]; 11 | #if FLASHEND > 0x1fff 12 | // enough memory (>8k) to sort the pins 13 | #if EBC_STYLE == 321 14 | // the higher test pin number is left side 15 | if (anode_nr > cathode_nr) { 16 | DiodeSymbol_ApinCpin(nn); // 1->|-3 17 | } else { 18 | DiodeSymbol_CpinApin(nn); // 1-|<-3 19 | } 20 | #else 21 | // the higher test pin number is right side 22 | if (anode_nr < cathode_nr) { 23 | DiodeSymbol_ApinCpin(nn); // 1->|-3 24 | } else { 25 | DiodeSymbol_CpinApin(nn); // 1-|<-3 26 | } 27 | #endif 28 | #else 29 | // too less memory to sort the pins 30 | DiodeSymbol_ApinCpin(nn); // 1->|-3 31 | #endif 32 | lcd_space(); 33 | } 34 | void DiodeSymbol_ApinCpin(uint8_t nn) { 35 | lcd_testpin(diodes.Anode[nn]); 36 | DiodeSymbol_ACpin(nn); 37 | } 38 | void DiodeSymbol_ACpin(uint8_t nn) { 39 | lcd_MEM_string(AnKat_str); // "->|-" 40 | lcd_testpin(diodes.Cathode[nn]); 41 | } 42 | void DiodeSymbol_CpinApin(uint8_t nn) { 43 | lcd_testpin(diodes.Cathode[nn]); 44 | DiodeSymbol_CApin(nn); 45 | } 46 | void DiodeSymbol_CApin(uint8_t nn) { 47 | lcd_MEM_string(KatAn_str); // "-|<-" 48 | lcd_testpin(diodes.Anode[nn]); 49 | } 50 | 51 | void SerienDiodenAusgabe() { 52 | uint8_t first; 53 | uint8_t second; 54 | first = diode_sequence >> 4; 55 | second = diode_sequence & 3; 56 | DiodeSymbol_ApinCpin(first); // 1->|-2 57 | DiodeSymbol_ACpin(second); // ->|-3 58 | UfAusgabe(diode_sequence); 59 | } 60 | 61 | 62 | //****************************************************************** 63 | // output of flux voltage for 1-2 diodes in row 2 64 | // bcdnum = Numbers of both Diodes: 65 | // higher 4 Bit number of first Diode 66 | // lower 4 Bit number of second Diode (Structure diodes[nn]) 67 | // if number >= 3 no output is done 68 | void UfAusgabe(uint8_t bcdnum) { 69 | if (ResistorsFound > 0) { //also Resistor(s) found 70 | lcd_space(); 71 | lcd_data(LCD_CHAR_RESIS3); // special symbol or R 72 | } 73 | lcd_line2(); //2. row 74 | lcd_MEM_string(Uf_str); //"Uf=" 75 | mVAusgabe(bcdnum >> 4); 76 | mVAusgabe(bcdnum & 0x0f); 77 | } 78 | void mVAusgabe(uint8_t nn) { 79 | if (nn < 6) { 80 | // Output in mV units 81 | Display_mV(diodes.Voltage[nn],3); 82 | lcd_space(); 83 | } 84 | } 85 | 86 | -------------------------------------------------------------------------------- /Software/trunk/arduino_m2560/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Testaufbau auf einer ARDUINO MEGA 2560 Platine 2 | =============================================== 3 | 4 | Als Testversion diente ein ARDUINO Mega 2560 mit einem Lochrasteraufsatz. 5 | Der Lochrasteraufbau (Shield) wurde in Fädeltechnik mit Kupferlack-Draht verdrahtet. 6 | Der ATmega2560 hat mehr Ausgabe- und Eingangs-Ports als ein ATmega328. 7 | Als Analog-Eingang für die Testpins dient hier der Port F, 8 | für die 680 Ohm und 470 kOhm Widerstände wurde hier der Port K (Analog Pin 8-13) 9 | benutzt. 10 | Für die LCD-Anbindung wurde Port A (Digital Pin 22-27) benutzt. 11 | Die Batteriespannungsüberwachung wurde abgeschaltet und die Wartezeiten 12 | für die Referenzumschaltung des ADC aktiviert (keine NO_AREF_CAP Option). 13 | Die 2.5V Präzisionsreferenz wurde nicht bestückt, der Eingang PF4 (Analog pin 4) 14 | wurde aber mit einem PullUp Widerstand versehen. 15 | Die Belegung der Ports ist in config.h änderbar (PROCESSOR_TYP 1280). 16 | 17 | Der Upload ist über den USB-Port des ARDUINO und dem Bootloader des ATmega2560 18 | möglich und bei 115200 Baud mit wenigen Sekunden sehr schnell. 19 | -------------------------------------------------------------------------------- /Software/trunk/arduino_m2560/arduino_m2560.eep: -------------------------------------------------------------------------------- 1 | :1000000014141414002F072F072F072F072F072F63 2 | :10001000072F072F072F072F072F072F072F072F30 3 | :0D0020000739393B3B3B39390C000378466A 4 | :00000001FF 5 | -------------------------------------------------------------------------------- /Software/trunk/arduino_uno/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Sie müssen eine "shield" Platine für den Arduino UNO benutzen, um das Transistortester Programm zu nutzen. 2 | Sie finden eine Beispielplatine im Ordner Hardware/ArduinoUno_shield, welche aus einem Stück Streifenraster Platinenmaterial gebildet wurde. 3 | Diese Implementation des Transistortesters benutzt derzeit kein LCD Display. 4 | Alle Daten werden nur auf dem seriellen Port mit 115200 Baud ausgegeben. 5 | Natürlich hat ein unabhängiger Tester einige Vorteile. 6 | Aber der Arduino Uno ist ein einfacher Weg um die Software auszuprobieren 7 | weil man keinen Programmierer oder keine externe Stromversorgung braucht. 8 | 9 | Auf meinem Mint Linux-System habe ich die Arduino Sketch Entwicklungsumgebung benutzt, um das 10 | Board zu wählen (Tools/Board -> Arduino Uno). 11 | Dann konnte ich den richtigen seriellen Port prüfen und auswählen (Tools/Serieller Port -> /dev/ttyACM0) . 12 | Bitte überprüfen Sie auf ihrem Rechner die Port Nummer (ttyACM0, ttyACM1 ...). 13 | Benutzen Sie bitte nicht die Sketch Umgebung, um das Transistortester Programm zu übersetzen. 14 | Benutzen Sie bitte nur meine Makefile mit dem avr-gcc Paket und dem avrdude Programm um die Software 15 | zu übersetzen und zum ATmega zu übertragen. 16 | Ich habe das "make flash" Kommando auf einer Linux Terminal Fenster benutzt, um das Programm zum 17 | ATmega328P auf der Arduino Platine zu übertragen. 18 | Wenn ich den "make upload" Befehl benutzt habe, wurde die Programm-Daten zwar richtig zum ATmega328P 19 | übertragen, aber die EEprom Daten wurden nicht korrekt übertragen. 20 | Auf meinem Board hat das Laden der EEprom Daten einige Daten aus dem Flash Speicher zerstört und 21 | deshalb war das Programm nicht mehr lauffähig. 22 | Dieses Problem mit den EEprom Daten ist der Grund, warum Sie die Makefile Option USE_EEPROM nicht 23 | benutzen sollten und warum Sie die Kalibration zwei Mal laufen lassen sollten. 24 | 25 | Für die Tests habe ich zwei chinesische Arduino Uno Nachbildungen benutzt, die aber im Original Zustand 26 | viele Probleme zeigten. Der Grund war ein Hardware Problem bei diesen Arduino Boards mit einer DIP Version 27 | des ATmega328P. Das GND Signal von Pin 8 des ATmega328 war bei diesen Boards nicht angeschlossen. 28 | Sie sollten also besser die chinesischen Boards prüfen, wenn Sie eine DIP version des ATmega328 29 | auf einem Sockel finden. 30 | Der Widerstand zwischen Pin 8 und Pin 22 des ATmega328P sollte unter 0.5 Ohm liegen!!! 31 | Beide Pinne des ATmega328P sind auch intern verbunden, aber diese Verbindung hat gewöhnlich mehr als 1 Ohm. 32 | Wenn Sie nicht sicher sind, ob Ihr Board das gleiche Problem hat, können Sie auch den ATmega328 (DIP) 33 | entfernen und der Widerstand zwischen Pin 8 und Pin 22 des Sockels erneut messen. 34 | Sie sollten im Fehlerfall eine Drahtbrücke auf der Arduino Uno Platine nachrüsten. 35 | Sie können auch eine Beschreibung mit Bildern auf https://www.mikrocontroller.net/topic/395590 finden! 36 | Ich habe zusätzlich auch einen SMD Kondensator (220nF) zwischen Pin 7 und Pin 8 nachgerüstet. 37 | 38 | Um die Daten des Transistortesters anzuzeigen, wird der serielle Port (TXD, PD1) benutzt. 39 | Dieser Port ist mit der USB-Schnittstelle des Arduino verbunden. 40 | Um die Daten darzustellen, sollten Sie das Terminal Fenster (Tools/Serial Monitor) ihres Arduino Sketchs benutzen. 41 | Das Terminal Fenster startet mit der vorher ausgewählten seriellen Schnittstelle (Tools/Serieller Port). 42 | Sie müssen eine Baud Rate von 115200 auf ihrem "Seriell Monitor" Fenster einstellen. 43 | Bitte beenden Sie den "Seriell Monitor", bevor Sie versuchen neue Software hochladen. 44 | 45 | -------------------------------------------------------------------------------- /Software/trunk/arduino_uno/ReadMe.txt: -------------------------------------------------------------------------------- 1 | You must setup a shield board for the Arduino UNO to use the transistortester program. 2 | You can find a board example build with strip grid material in the Hardware/ArduinoUno_shield. 3 | This implementation currently don't use any LCD display. 4 | All the data output is written only to the serial port at 115200 baud. 5 | Of course a stand alone version of the tester have some advantages. 6 | But the Arduino Uno is a easy way to test the software because you need no programmer 7 | and no external power supply. 8 | 9 | On my Mint Linux-system I have used the Arduino sketch environment to select the board (Tools/Board -> Arduino Uno).Then I could check and select the right serial port (Tools/Serieller Port -> /dev/ttyACM0). 10 | Please check the number of the port (ttyACM0, ttyACM1 ...). 11 | Your transistortester Makefile in the directory trunk/arduino_uno should use the same 12 | USB PORT (behind PROGRAMMER=arduino). 13 | Please do not use the sketch to build a transistortester program for the Arduino. 14 | You should use my Makefile with the avr-gcc and the avrdude to build and upload the program data. 15 | I did use the "make flash" command at the linux command window to upload the program data to the ATmega328P. 16 | If you use the "make upload" command, the program data are loaded correctly, but the EEprom data are 17 | not written correctly. 18 | With my board the loading of EEprom data had destroyed some data in the flash memory and the program 19 | was not useable after this. 20 | This problem with the EEprom is the reason why you should not use the Makefile option USE_EEPROM and 21 | why you should run the calibration twice. 22 | 23 | For the tests I did use two chinese clones of the Arduino Uno, which have worked not proper in the original state. 24 | The reason for this was a hardware problem at the Arduino boards with a DIP version of the ATmega328. 25 | The GND signal for pin 8 of the ATmega was not connected at both boards. You should better check your 26 | board, if you find a DIP ATmega328 at a socket. 27 | The resistance between pin 8 and pin 22 of the ATmega328P should be below 0.5 Ohm!!! 28 | Both pins of the ATmega328P are internaly connected, but this connection has usually a resistance 29 | of more than 1 Ohm. When you are not shure, if your board has the same problem, you can remove the ATmega328 (DIP) 30 | and check the resistance between pin 8 and pin 22 at the socket again. 31 | You should solder a wire jumper to the Arduino Uno board, if you detect the same problem. 32 | You can find a report with pictures at https://www.mikrocontroller.net/topic/395590 ! 33 | I have also added a additional SMD capacitor (220nF) between pin 7 and pin 8. 34 | 35 | 36 | To display the data of your transistor tester, the serial port (TXD, PD1) is used. 37 | This is connected to the USB-port of your Arduino Board. 38 | To show the results, you should start the terminal window (Tools/Serial Monitor) at your Arduino sketch. 39 | The terminal window starts with the previous selected serial port (Tools/Serieller Port). 40 | You must select a baud rate of 115200 at your "Serial Monitor" window. 41 | Please finish your "Serial Monitor" before you try to upload new software ! 42 | -------------------------------------------------------------------------------- /Software/trunk/arduino_uno/arduino_uno.eep: -------------------------------------------------------------------------------- 1 | :100000001414141400002F072F072F072F072F0792 2 | :100010002F072F072F072F072F072F072F072F0730 3 | :0E0020002F0739393B3B3B39390C000378463A 4 | :00000001FF 5 | -------------------------------------------------------------------------------- /Software/trunk/default/TransistorTester.eep: -------------------------------------------------------------------------------- 1 | :1000000066706EE46D006B4D001E0203021E000060 2 | :10001000000F0818080F00001113171F1713110005 3 | :1000200011191D1F1D1911001B1B1B1B1B1B1B0066 4 | :100030005244533D00203530487A0043302000526E 5 | :10004000695F4C6F3D0052695F48693D00566572BB 6 | :1000500073696F6E20312E31336B002D77772D0051 7 | :100060002D04052D002A012020002D022D002D0138 8 | :100070002D00202049723D004C3D0020566C6F73CE 9 | :10008000733D00204553523D005643433D004365B8 10 | :100090006C6C21002D032D004056673D00205674E6 11 | :1000A0003D0055663D005562653D00203132333DCF 12 | :1000B00000504E50004E504E00433D00433D004224 13 | :1000C0003D002D49474254004A464554002D4D4FAE 14 | :1000D0005300444320507772204D6F6465004F4BAE 15 | :1000E000004261742E20005465737420456E6400D4 16 | :1000F00069736F6C6174652050726F626573210063 17 | :1001000053656C6674657374206D6F64652E2E0084 18 | :1001100054696D656F75742100206465746563743E 19 | :100120006564004E6F2C20756E6B6E6F776E2C20A1 20 | :100130006F720020756E6B6E6F776E005468797207 21 | :100140006973742E00547269616300706172740087 22 | :1001500064616D616765642000656D70747921006C 23 | :100160007765616B0054657374696E672E007A570A 24 | :100170008950954A6D45EA40EE3C643939365F3323 25 | :10018000CB30722E4E2C572A8928DE265225E323A7 26 | :100190008D224E2123200B1F041E0C1D231C461BE9 27 | :1001A000751AB019F41842189817F6165C16C91586 28 | :1001B0003C15B5143514B9134213D0126312FA1159 29 | :1001C00094113311D5107A101414141436363838AB 30 | :0601D0003836360C000376 31 | :00000001FF 32 | -------------------------------------------------------------------------------- /Software/trunk/default/TransistorTester.lss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/default/TransistorTester.lss -------------------------------------------------------------------------------- /Software/trunk/default/all_make.bat: -------------------------------------------------------------------------------- 1 | # 2 | echo "SubDir default" 3 | make 4 | cd ../mega8 5 | echo "SubDir mega8" 6 | make steril 7 | cd ../mega168_1.9V 8 | echo "SubDir mega168_1.9V" 9 | make steril 10 | cd ../mega328_1.9V 11 | echo "SubDir mega328_1.9V" 12 | make steril 13 | cd ../mega328 14 | echo "SubDir mega328" 15 | make steril 16 | cd ../mega168_3.3V 17 | echo "SubDir mega168_3.3V" 18 | make steril 19 | cd ../mega328_3.3V 20 | echo "SubDir mega328_3.3V" 21 | make steril 22 | cd ../mega328_dogm 23 | echo "SubDir mega328_dogm" 24 | make steril 25 | cd ../mega168_strip_grid 26 | echo "SubDir mega168_strip_grid" 27 | make steril 28 | cd ../mega328_strip_grid 29 | echo "SubDir mega328_strip_grid" 30 | make steril 31 | cd ../mega328_strip_grid_dogm 32 | echo "SubDir mega328_strip_grid_dogm" 33 | make steril 34 | cd ../mega328_2X16_menu 35 | echo "SubDir mega328_2X16_menu" 36 | make steril 37 | cd ../mega328_st7565 38 | echo "SubDir mega328_st7665" 39 | make steril 40 | cd ../mega328_st7565_kit 41 | echo "SubDir mega328_st7665_kit" 42 | make steril 43 | cd ../mega328_color_kit 44 | echo "SubDir mega328_color_kit" 45 | make steril 46 | cd ../mega328_st7920 47 | echo "SubDir mega328_st7920" 48 | make steril 49 | cd ../mega328_st7108 50 | echo "SubDir mega328_st7108" 51 | make steril 52 | cd ../mega328_GM328 53 | echo "SubDir mega328_GM328" 54 | make steril 55 | cd ../mega328_fish8840 56 | echo "SubDir mega328_fish8840" 57 | make steril 58 | cd ../mega328_fish8840_OC 59 | echo "SubDir mega328_fish8840_OC" 60 | make steril 61 | cd ../mega328_wei_st7565 62 | echo "SubDir mega328_wei_st7565" 63 | make steril 64 | cd ../mega328_MK-328 65 | echo "SubDir mega328_MK-328" 66 | make steril 67 | cd ../mega328_T3_T4_st7565 68 | echo "SubDir mega328_T3_T4_st7565" 69 | make steril 70 | cd ../mega328_T4_v2_st7565 71 | echo "SubDir mega328_T4_v2_st7565" 72 | make steril 73 | cd ../mega328_T5_st7565 74 | echo "SubDir mega328_T5_st7565" 75 | make steril 76 | cd ../mega328_ssd1306SPI 77 | echo "SubDir mega328_ssd1306SPI" 78 | make steril 79 | cd ../mega328_ssd1306I2C 80 | echo "SubDir mega328_ssd1306I2C" 81 | make steril 82 | cd ../mega328_ssd1327SPI 83 | echo "SubDir mega328_ssd1327SPI" 84 | make steril 85 | cd ../mega328_ssd1327I2C 86 | echo "SubDir mega328_ssd1327I2C" 87 | make steril 88 | cd ../mega328_PCF8812 89 | echo "SubDir mega328_PCF8812" 90 | make steril 91 | cd ../mega328_PCF8814 92 | echo "SubDir mega328_PCF8814" 93 | make steril 94 | cd ../arduino_m2560 95 | echo "SubDir arduino_m2560" 96 | make steril 97 | cd ../arduino_uno 98 | echo "SubDir arduino_uno" 99 | make steril 100 | cd ../mega644_LCD2004 101 | echo "SubDir mega664_LCD2004" 102 | make steril 103 | cd ../mega644_hiland_m644 104 | echo "SubDir mega644_hiland_m644" 105 | make steril 106 | cd ../mega644_ssd1306I2C 107 | echo "SubDir mega664_ssd1306I2C" 108 | make steril 109 | cd ../mega644_T7_Mod 110 | echo "SubDir mega664_T7_Mod" 111 | make steril 112 | cd ../ST7735 113 | echo "SubDir ST7735" 114 | make steril 115 | cd ../ILI9163 116 | echo "SubDir ILI9163" 117 | make steril 118 | cd ../default 119 | -------------------------------------------------------------------------------- /Software/trunk/fonts/Makefile: -------------------------------------------------------------------------------- 1 | 2 | ## General Flags 3 | CC = gcc 4 | 5 | CPP = g++ 6 | 7 | CFLAGS = -Wall -g 8 | 9 | 10 | 11 | ## Build 12 | all: font2ascii ascii2font ascii2font2 5x8_vertikal_LSB_1.asc 6x8_vertikal_LSB_1.asc \ 13 | 7x8_vertikal_LSB_1.asc 8x8_vertikal_LSB_1.asc \ 14 | 7x12_vertikal_LSB_1.asc 8x12_vertikal_LSB_1.asc \ 15 | 8x12_vertikal_LSB_1thin.asc 8x14_vertikal_LSB_1.asc \ 16 | 8x16_vertikal_LSB_1.asc 8x16_vertikal_LSB_1thin.asc \ 17 | 10x16_vertikal_LSB_1.asc \ 18 | 24x32_vertical_LSB.asc 19 | 20 | # Buils ascii tables from font tables for visual check 21 | 5x8_vertikal_LSB_1.asc: 5x8_vertikal_LSB_1.h 22 | ./font2ascii 5x8_vertikal_LSB_1.h 23 | 6x8_vertikal_LSB_1.asc: 6x8_vertikal_LSB_1.h 24 | ./font2ascii 6x8_vertikal_LSB_1.h 25 | 7x8_vertikal_LSB_1.asc: 7x8_vertikal_LSB_1.h 26 | ./font2ascii 7x8_vertikal_LSB_1.h 27 | 8x8_vertikal_LSB_1.asc: 8x8_vertikal_LSB_1.h 28 | ./font2ascii 8x8_vertikal_LSB_1.h 29 | 7x12_vertikal_LSB_1.asc: 7x12_vertikal_LSB_1.h 30 | ./font2ascii 7x12_vertikal_LSB_1.h 31 | 8x12_vertikal_LSB_1.asc: 8x12_vertikal_LSB_1.h 32 | ./font2ascii 8x12_vertikal_LSB_1.h 33 | 8x12_vertikal_LSB_1thin.asc: 8x12_vertikal_LSB_1thin.h 34 | ./font2ascii 8x12_vertikal_LSB_1thin.h 35 | 8x14_vertikal_LSB_1.asc: 8x14_vertikal_LSB_1.h 36 | ./font2ascii 8x14_vertikal_LSB_1.h 37 | 8x16_vertikal_LSB_1.asc: 8x16_vertikal_LSB_1.h 38 | ./font2ascii 8x16_vertikal_LSB_1.h 39 | 8x16_vertikal_LSB_1thin.asc: 8x16_vertikal_LSB_1thin.h 40 | ./font2ascii 8x16_vertikal_LSB_1thin.h 41 | 10x16_vertikal_LSB_1.asc: 10x16_vertikal_LSB_1.h 42 | ./font2ascii 10x16_vertikal_LSB_1.h 43 | 24x32_vertical_LSB.asc: 24x32_vertical_LSB.h 44 | ./font2ascii 24x32_vertical_LSB.h 45 | 46 | ##Link 47 | font2ascii: font2ascii.c 48 | $(CC) $(CFLAGS) -o font2ascii font2ascii.c 49 | ascii2font: ascii2font.c 50 | $(CC) $(CFLAGS) -g -o ascii2font ascii2font.c 51 | ascii2font2: ascii2font2.c 52 | $(CC) $(CFLAGS) -o ascii2font2 ascii2font2.c 53 | 54 | clean: 55 | rm *.asc 56 | -------------------------------------------------------------------------------- /Software/trunk/fonts/ascii2font2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | 6 | int main(int argc, char *argv[]) 7 | { 8 | int width; 9 | int ii; // loop counter 10 | int kk; // loop counter 11 | int line; // number of read ascii character bitmap 12 | int ll; 13 | int height; 14 | int beg_end; 15 | char comment[256]; 16 | char linebuf[256]; // buffer for reading a line from stdin 17 | int bbit; 18 | int hh; 19 | long bittab[80]; // bits for every line of bitmap 20 | 21 | 22 | line = 0; 23 | height = 0; 24 | while (fgets(linebuf,256,stdin) != NULL) { 25 | for (ll=0;ll<256;ll++) { 26 | if (linebuf[ll] == '\r') linebuf[ll] = (char)0; 27 | if (linebuf[ll] == '\n') linebuf[ll] = (char)0; 28 | } 29 | // fprintf(stdout,"%s", linebuf); 30 | beg_end = 0; 31 | if (linebuf[0] == '|') { 32 | if (height == 0) { 33 | for (kk=1; kk<256; kk++) { 34 | if (linebuf[kk] == '|') break; 35 | } 36 | width = kk-1; 37 | } 38 | bittab[height] = 0; 39 | for (kk=1; kk<=width; kk++) { 40 | if (linebuf[kk] != ' ') bittab[height] |= (1<<(kk-1)); 41 | } 42 | height++; 43 | } else { 44 | if ((strncmp(linebuf, "/* ",3)) == 0) { 45 | // save comment 46 | strcpy(comment,linebuf); 47 | } else { 48 | if ((linebuf[0] == ' ') && (linebuf[1] == '-')) { 49 | // begin or end of block 50 | beg_end = 1; 51 | } else { 52 | // copy the line 53 | fprintf(stdout,"%s\r\n",linebuf); 54 | } 55 | } 56 | } 57 | if ((height > 5) && (beg_end != 0)) { 58 | // last line of character is found 59 | fprintf(stdout,"{"); 60 | for (kk=0; kk 8) hh = 8; 64 | for (ii=0; ii 8)) fprintf(stdout,","); 69 | } /* end for kk */ 70 | if (height > 8) { 71 | fprintf(stdout,"\r\n "); 72 | for (kk=0; kk 8) hh = 8; 76 | for (ii=8; ii 5) && (beg_end != 0)) */ 93 | } /* end while */ 94 | return(0); 95 | } 96 | 97 | -------------------------------------------------------------------------------- /Software/trunk/function_menu.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/function_menu.c -------------------------------------------------------------------------------- /Software/trunk/get_log.S: -------------------------------------------------------------------------------- 1 | #ifndef __ASSEMBLER__ 2 | #define __ASSEMBLER__ 3 | #endif 4 | #include 5 | #include "config.h" 6 | #include 7 | #include "config.h" 8 | 9 | #define Log_Tab_Distance 20 10 | 11 | .GLOBAL get_log 12 | .func get_log 13 | 14 | .extern LogTab 15 | 16 | .section .text 17 | 18 | ; // get_log interpolate a table with the function -1000*log(1 - (permil/1000)) 19 | ; uint16_t get_log(uint16_t permil) { 20 | get_log: 21 | push r28 22 | push r29 23 | 24 | ldi r18, lo8(Log_Tab_Distance) ;0x14 25 | ldi r19, hi8(Log_Tab_Distance) ;0x00 26 | movw r22, r18 27 | call __udivmodhi4 ; tabind = permil / Log_Tab_Distance; // index to table 28 | movw r26, r24 29 | ; r26:27 = tabres = permil % Log_Tab_Distance; // fraction of table distance 30 | ; // interpolate the table of factors 31 | ; y1 = pgm_read_word(&LogTab[tabind]); // get the lower table value 32 | LDIZ LogTab; 33 | add r30, r22 34 | adc r31, r23 35 | add r30, r22 36 | adc r31, r23 ; &LogTab[tabind] 37 | lpm r28, Z+ ; y1 = pgm_read_word(&LogTab[tabind]); // get the lower table value 38 | lpm r29, Z+ 39 | lpm r20, Z+ ; y2 = pgm_read_word(&LogTab[tabind+1]); // get the higher table value 40 | lpm r21, Z+ 41 | ; result = ((y2 - y1) * tabres ) / Log_Tab_Distance + y1; // interpolate 42 | sub r20, r28 ; (y2 - y1) 43 | sbc r21, r29 ; hi8(y2 - y1) 44 | mul r20, r26 ; * tabres (maximum 19) 45 | movw r24, r0 ; r24:25 = ((y2 - y1) * tabres ) 46 | mul r20, r27 ; hi8(tabres) 47 | add r25, r0 48 | mul r21, r26 ; hi8(y2 - Y1) 49 | add r25, r0 50 | eor r1, r1 51 | movw r22, r18 ; Log_Tab_Distance 52 | call __udivmodhi4 ; ((y2 - y1) * tabres ) / Log_Tab_Distance 53 | add r22, r28 ; result = ((y2 - y1) * tabres ) / Log_Tab_Distance + y1; // interpolate 54 | adc r23, r29 55 | movw r24, r22 ; return(result); 56 | pop r29 57 | pop r28 58 | ret 59 | .endfunc 60 | -------------------------------------------------------------------------------- /Software/trunk/get_log.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "Transistortester.h" 5 | 6 | 7 | // get_log interpolate a table with the function -1000*log(1 - (permil/1000)) 8 | uint16_t get_log(uint16_t permil) { 9 | // for remember: 10 | // uint16_t LogTab[] PROGMEM = {0, 20, 41, 62, 83, 105, 128, 151, 174, 198, 223, 248, 274, 301, 329, 357, 386, 416, 446, 478, 511, 545, 580, 616, 654, 693, 734, 777, 821, 868, 916, 968,1022,1079,1139,1204,1273,1347,1427,1514,1609,1715,1833,1966,2120,2303,2526,2813,3219,3912,9210}; 11 | 12 | 13 | #define Log_Tab_Distance 20 // displacement of table is 20 mil 14 | 15 | uint16_t y1, y2; // table values 16 | uint16_t result; // result of interpolation 17 | uint8_t tabind; // index to table value 18 | uint8_t tabres; // distance to lower table value, fraction of Log_Tab_Distance 19 | 20 | tabind = permil / Log_Tab_Distance; // index to table 21 | tabres = permil % Log_Tab_Distance; // fraction of table distance 22 | // interpolate the table of factors 23 | y1 = pgm_read_word(&LogTab[tabind]); // get the lower table value 24 | y2 = pgm_read_word(&LogTab[tabind+1]); // get the higher table value 25 | result = ((y2 - y1) * tabres ) / Log_Tab_Distance + y1; // interpolate 26 | return(result); 27 | } 28 | -------------------------------------------------------------------------------- /Software/trunk/i2lcd.S: -------------------------------------------------------------------------------- 1 | #ifndef __ASSEMBLER__ 2 | #define __ASSEMBLER__ 3 | #endif 4 | #include 5 | #include 6 | #include "config.h" 7 | 8 | .GLOBAL u2lcd 9 | .GLOBAL u2lcd_space 10 | 11 | .extern lcd_data 12 | .extern lcd_string 13 | .extern lcd_space 14 | 15 | .func i2lcd 16 | 17 | ; use allways rcall for nearby functions 18 | #define RCALL rcall 19 | 20 | 21 | .section .text 22 | .GLOBAL i2lcd 23 | 24 | i2lcd: ; void i2lcd(int iw) 25 | 26 | #if FLASHEND > 0x1fff 27 | 28 | ;; movw r20, r24 29 | sbrs r25, 7 30 | rjmp to_lcd ; if (iw >= 0) { 31 | ; // negativ value, output - and invert iw 32 | push r24 ; save r24:r25 33 | push r25 34 | ldi r24,'-' ; 45 35 | RCALL lcd_data ; lcd_data('-'); uses r22 36 | pop r25 ; recall r25:r24 37 | pop r24 ; old r24 38 | com r25 39 | neg r24 40 | sbci r25,-1 ; iw = - iw 41 | #endif 42 | 43 | #if FLASHEND > 0x1fff 44 | u2lcd: ; void i2lcd(uint16_t iw) 45 | to_lcd: ; void i2lcd(uint16_t iw) 46 | ldi r22, lo8(outval) ;0x0F 47 | ldi r23, hi8(outval) ;0x01 48 | ldi r20, 10 49 | ldi r21, 0x00 ; 0 50 | ACALL utoa ; utoa(iw, outval, 10); //output voltage to string 51 | RCALL lcd_string ;lcd_string(utoa(iw, outval, 10)); //output correction voltage 52 | 53 | ret 54 | #endif 55 | 56 | #if FLASHEND > 0x1fff 57 | .GLOBAL i2lcd_space 58 | i2lcd_space: 59 | RCALL i2lcd 60 | rjmp space_ret ; use return from u2lcd_space 61 | 62 | u2lcd_space: 63 | RCALL i2lcd 64 | space_ret: 65 | ; RCALL lcd_space 66 | ; ret 67 | #endif 68 | .endfunc 69 | 70 | ; Output a ' ' to the LCD screen 71 | .GLOBAL lcd_space 72 | .func lcd_space 73 | lcd_space: 74 | ldi r24, ' ' 75 | RJMP lcd_data 76 | .endfunc 77 | 78 | ; Output a '-' to the LCD screen 79 | .GLOBAL lcd_minus 80 | .func lcd_minus 81 | lcd_minus: 82 | ldi r24, '-' 83 | RJMP lcd_data 84 | .endfunc 85 | 86 | ; Output a '=' to the LCD screen 87 | .GLOBAL lcd_equal 88 | .func lcd_equal 89 | lcd_equal: 90 | ldi r24, '=' 91 | RJMP lcd_data 92 | .endfunc 93 | -------------------------------------------------------------------------------- /Software/trunk/i2lcd.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "Transistortester.h" 5 | #include "lcd-routines.h" 6 | 7 | #if FLASHEND > 0x1fff 8 | void i2lcd(int iw) { 9 | if (iw < 0) { 10 | lcd_minus(); // lcd_data('-'); 11 | iw = -iw; 12 | } 13 | lcd_string(utoa((unsigned int)iw, outval, 10)); 14 | } 15 | #endif 16 | 17 | #if FLASHEND > 0x1fff 18 | void u2lcd(uint16_t uw) { 19 | lcd_string(utoa(uw, outval, 10)); 20 | } 21 | 22 | void u2lcd_space(uint16_t uw) { 23 | u2lcd(uw); 24 | lcd_space(); 25 | } 26 | #endif 27 | 28 | #if FLASHEND > 0x1fff 29 | void i2lcd_space(int16_t uw) { 30 | i2lcd(uw); 31 | lcd_space(); 32 | } 33 | #endif 34 | void lcd_space() { 35 | lcd_data(' '); 36 | } 37 | void lcd_minus() { 38 | lcd_data('-'); 39 | } 40 | void lcd_equal() { 41 | lcd_data('='); 42 | } 43 | -------------------------------------------------------------------------------- /Software/trunk/langBRASIL.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************ 2 | * (c) by Karl-Heinz Kuebbeler, Projekt Tranzistor Tester 3 | * 4 | * File: langBRASIL.h 5 | * Funktion: language selection 6 | * 7 | * History: Date Sign Kommentar 8 | * 2021-01-12 9 | * ************************************************************************ */ 10 | #if defined(LANG_BRASIL) // Brazilian Portuguese 11 | const unsigned char TestRunning[] MEM_TEXT = "Testando"; 12 | const unsigned char BatWeak[] MEM_TEXT = "fraca"; 13 | const unsigned char BatEmpty[] MEM_TEXT = "acabou!"; 14 | const unsigned char TestFailed2[] MEM_TEXT = "ou danificada..."; 15 | const unsigned char Bauteil[] MEM_TEXT = "peca"; 16 | // const unsigned char Diode[] MEM_TEXT = "Diodo: "; 17 | const unsigned char Triac[] MEM_TEXT = "Triac"; 18 | const unsigned char Thyristor[] MEM_TEXT = "Tiristor"; 19 | const unsigned char Unknown[] MEM_TEXT = " O que? "; 20 | const unsigned char TestFailed1[] MEM_TEXT = "Sem peca, ruim"; 21 | const unsigned char Detected[] MEM_TEXT = " detectado"; 22 | const unsigned char TestTimedOut[] MEM_TEXT = "Tempo Esgotado!"; 23 | #define Cathode_char 'K' 24 | #ifdef WITH_SELFTEST 25 | const unsigned char SELFTEST[] MEM_TEXT = "Autoteste..."; 26 | const unsigned char RELPROBE[] MEM_TEXT = "Isole Pontas!"; 27 | const unsigned char ATE[] MEM_TEXT = "Fim do Teste"; 28 | #endif 29 | #ifdef WITH_MENU 30 | const unsigned char SELECTION_str[] MEM2_TEXT = "Selecao:"; 31 | const unsigned char TESTER_str[] MEM2_TEXT = "Transistor"; 32 | #ifndef NO_FREQ_COUNTER 33 | const unsigned char FREQ_str[] MEM2_TEXT = "Frequencia"; 34 | #ifdef WITH_FREQUENCY_DIVIDER 35 | const unsigned char FScaler_str[] MEM2_TEXT = "F-Scaler"; 36 | #endif 37 | #endif 38 | const unsigned char VOLTAGE_str[] MEM2_TEXT = "Voltagem"; 39 | const unsigned char SHOW_str[] MEM2_TEXT = "mostram dados"; // "Show data" 40 | const unsigned char OFF_str[] MEM2_TEXT = "desconectar"; 41 | const unsigned char F_GEN_str[] MEM2_TEXT = "f-Generator"; 42 | #ifdef PWM_SERVO 43 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "Servo PWM"; 44 | #else 45 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "10-bit PWM"; 46 | #endif 47 | #ifdef WITH_ROTARY_CHECK 48 | const unsigned char RotaryEncoder_str[] MEM2_TEXT = "encoder rotativo"; 49 | #endif 50 | const unsigned char SetCapCorr_str[] MEM2_TEXT = {'C','(',LCD_CHAR_U,'F',')','-','C','o','r','r','e','c','t','i','o','n',0}; 51 | const unsigned char TURN_str[] MEM2_TEXT = "rodar!"; 52 | const unsigned char FULLCHECK_str[] MEM2_TEXT = "Autoteste"; 53 | const unsigned char SHORT_PROBES_str[] MEM2_TEXT = "conecte Pontas!"; 54 | #if (WITH_FREQUENCY_SWITCH == 1) 55 | const unsigned char HFREQ_str[] MEM2_TEXT = "Frequencia > 2MHz"; 56 | const unsigned char H_CRYSTAL_str[] MEM2_TEXT = "HF cristal"; 57 | const unsigned char L_CRYSTAL_str[] MEM2_TEXT = "LF cristal"; 58 | #endif 59 | #if ((LCD_ST_TYPE == 7565) || (LCD_ST_TYPE == 1306) || (LCD_ST_TYPE == 8812) || (LCD_ST_TYPE == 8814) || (LCD_ST_TYPE == 8814) || defined(LCD_DOGM)) 60 | const unsigned char CONTRAST_str[] MEM2_TEXT = "Contraste"; 61 | #endif 62 | #endif /* WITH_MENU */ 63 | #ifdef WITH_XTAL 64 | const unsigned char cerres_str[] MEM_TEXT = "Cer.resonator "; 65 | const unsigned char xtal_str[] MEM_TEXT = "Cristal "; 66 | #endif 67 | #define LANG_SELECTED 68 | #endif /* LANG BRASIL */ 69 | /* ****************************** EOF ***************************************** */ 70 | -------------------------------------------------------------------------------- /Software/trunk/langITALIAN.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************ 2 | * (c) by Karl-Heinz Kuebbeler, Projekt Tranzistor Tester 3 | * 4 | * File: LANG_ITALIAN.h 5 | * Funktion: language selection 6 | * 7 | * History: Date Sign Kommentar 8 | * 2021-01-12 9 | * ************************************************************************ */ 10 | #if defined(LANG_ITALIAN) //italiano 11 | const unsigned char TestRunning[] MEM_TEXT = "Analizzo"; 12 | const unsigned char BatWeak[] MEM_TEXT = "debole"; 13 | const unsigned char BatEmpty[] MEM_TEXT = "esaurita!"; 14 | const unsigned char TestFailed2[] MEM_TEXT = "guasto "; //"danneggiato "; 15 | const unsigned char Bauteil[] MEM_TEXT = "campione"; //"componente"; 16 | // const unsigned char Diode[] MEM_TEXT = "Diode: "; 17 | const unsigned char Triac[] MEM_TEXT = "Triac"; 18 | const unsigned char Thyristor[] MEM_TEXT = "SCR"; 19 | const unsigned char Unknown[] MEM_TEXT = " ignoto"; //" sconosciuto."; 20 | const unsigned char TestFailed1[] MEM_TEXT = "Test fallito, o"; 21 | const unsigned char Detected[] MEM_TEXT = " releva"; 22 | const unsigned char TestTimedOut[] MEM_TEXT = "Timeout!"; 23 | #define Cathode_char 'C' /* defines the character used for cathode */ 24 | #ifdef WITH_SELFTEST 25 | const unsigned char SELFTEST[] MEM_TEXT = "Autotest .."; 26 | const unsigned char RELPROBE[] MEM_TEXT = "Pin separati!"; 27 | const unsigned char ATE[] MEM_TEXT = "Fine del test"; 28 | #endif 29 | #ifdef WITH_MENU 30 | const unsigned char SELECTION_str[] MEM2_TEXT = "Selezione:"; 31 | const unsigned char TESTER_str[] MEM2_TEXT = "Transistor"; 32 | #ifndef NO_FREQ_COUNTER 33 | const unsigned char FREQ_str[] MEM2_TEXT = "Frequenza"; 34 | #ifdef WITH_FREQUENCY_DIVIDER 35 | const unsigned char FScaler_str[] MEM2_TEXT = "F-Scaler"; 36 | #endif 37 | #endif 38 | const unsigned char VOLTAGE_str[] MEM2_TEXT = "Voltaggio"; 39 | const unsigned char SHOW_str[] MEM2_TEXT = "Mostra dati"; // "Show data" 40 | const unsigned char OFF_str[] MEM2_TEXT = "Spegnere"; 41 | const unsigned char F_GEN_str[] MEM2_TEXT = "f-Generatore"; 42 | #ifdef PWM_SERVO 43 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "Servo PWM"; 44 | #else 45 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "10-bit PWM"; 46 | #endif 47 | #ifdef WITH_ROTARY_CHECK 48 | const unsigned char RotaryEncoder_str[] MEM2_TEXT = "encoder rotativo"; 49 | #endif 50 | const unsigned char SetCapCorr_str[] MEM2_TEXT = {'C','(',LCD_CHAR_U,'F',')','-','C','o','r','r','e','c','t','i','o','n',0}; 51 | const unsigned char TURN_str[] MEM2_TEXT = "turno!"; 52 | const unsigned char FULLCHECK_str[] MEM2_TEXT = "Autotest"; 53 | const unsigned char SHORT_PROBES_str[] MEM2_TEXT = "Pin collegare!"; 54 | #if (WITH_FREQUENCY_SWITCH == 1) 55 | const unsigned char HFREQ_str[] MEM2_TEXT = "Frequenza > 2MHz"; 56 | const unsigned char H_CRYSTAL_str[] MEM2_TEXT = "HF quarzo"; 57 | const unsigned char L_CRYSTAL_str[] MEM2_TEXT = "LF quarzo"; 58 | #endif 59 | #if ((LCD_ST_TYPE == 7565) || (LCD_ST_TYPE == 1306) || (LCD_ST_TYPE == 8812) || (LCD_ST_TYPE == 8814) || (LCD_ST_TYPE == 8814) || defined(LCD_DOGM)) 60 | const unsigned char CONTRAST_str[] MEM2_TEXT = "Contrasto"; 61 | #endif 62 | #endif /* WITH_MENU */ 63 | #ifdef WITH_XTAL 64 | const unsigned char cerres_str[] MEM_TEXT = "Cer.resonator "; 65 | const unsigned char xtal_str[] MEM_TEXT = "Quarzo "; 66 | #endif 67 | #define LANG_SELECTED 68 | #endif /* LANG ITALIAN */ 69 | 70 | /* ****************************** EOF ***************************************** */ 71 | -------------------------------------------------------------------------------- /Software/trunk/langPOLISH.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************ 2 | * (c) by Karl-Heinz Kuebbeler, Projekt Transistor Tester 3 | * 4 | * File: langPOLISH.h 5 | * Funktion: language selection 6 | * 7 | * History: Date Sign Kommentar 8 | * 2021-01-12 9 | * ************************************************************************ */ 10 | #if defined(LANG_POLISH) //polnisch 11 | const unsigned char TestRunning[] MEM_TEXT = "Testowanie"; 12 | const unsigned char BatWeak[] MEM_TEXT = "slaba"; 13 | const unsigned char BatEmpty[] MEM_TEXT = "za slaba"; 14 | const unsigned char TestFailed2[] MEM_TEXT = "lub uszkodzony"; 15 | const unsigned char Bauteil[] MEM_TEXT = " "; // don't fit on display, besides i think word is unnecesary repeated in second row after tests 16 | // const unsigned char Diode[] MEM_TEXT = "Dioda: "; 17 | const unsigned char Triac[] MEM_TEXT = "Triak"; 18 | const unsigned char Thyristor[] MEM_TEXT = "Tyrystor"; 19 | const unsigned char Unknown[] MEM_TEXT = " nieznany"; 20 | const unsigned char TestFailed1[] MEM_TEXT = "Brak elementu"; 21 | const unsigned char Detected[] MEM_TEXT = " wykrywa"; 22 | const unsigned char TestTimedOut[] MEM_TEXT = "Przekr. czasu!"; 23 | #define Cathode_char 'K' 24 | #ifdef WITH_SELFTEST 25 | const unsigned char SELFTEST[] MEM_TEXT = "Tryb auto-test"; 26 | const unsigned char RELPROBE[] MEM_TEXT = "Rozlacz piny!"; 27 | const unsigned char ATE[] MEM_TEXT = "Koniec testu"; 28 | #endif 29 | #ifdef WITH_MENU 30 | const unsigned char SELECTION_str[] MEM2_TEXT = "MENU:"; 31 | const unsigned char TESTER_str[] MEM2_TEXT = "Tranzystor"; 32 | #ifndef NO_FREQ_COUNTER 33 | const unsigned char FREQ_str[] MEM2_TEXT = "Czestotliwosc"; 34 | #ifdef WITH_FREQUENCY_DIVIDER 35 | const unsigned char FScaler_str[] MEM2_TEXT = "F-Scaler"; 36 | #endif 37 | #endif 38 | const unsigned char VOLTAGE_str[] MEM2_TEXT = "Napiecie"; 39 | const unsigned char SHOW_str[] MEM2_TEXT = "Pokaz dane"; // "Show data" 40 | const unsigned char OFF_str[] MEM2_TEXT = "Wylacz"; 41 | const unsigned char F_GEN_str[] MEM2_TEXT = "f-Generator"; 42 | #ifdef PWM_SERVO 43 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "Servo PWM"; 44 | #else 45 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "10-bit PWM"; 46 | #endif 47 | #ifdef WITH_ROTARY_CHECK 48 | const unsigned char RotaryEncoder_str[] MEM2_TEXT = "Enkoder obrotowy"; 49 | #endif 50 | const unsigned char SetCapCorr_str[] MEM2_TEXT = {'C','(',LCD_CHAR_U,'F',')','-','c','o','r','e','c','t','a',0}; 51 | const unsigned char TURN_str[] MEM2_TEXT = "Pokrec!"; 52 | const unsigned char FULLCHECK_str[] MEM2_TEXT = "Auto-test"; 53 | const unsigned char SHORT_PROBES_str[] MEM2_TEXT = "Polacz Piny!"; 54 | #if (WITH_FREQUENCY_SWITCH == 1) 55 | const unsigned char HFREQ_str[] MEM2_TEXT = "Czestotliwosc > 2MHz"; 56 | const unsigned char H_CRYSTAL_str[] MEM2_TEXT = "HF kwarc"; 57 | const unsigned char L_CRYSTAL_str[] MEM2_TEXT = "LF kwarc"; 58 | #endif 59 | #if ((LCD_ST_TYPE == 7565) || (LCD_ST_TYPE == 1306) || (LCD_ST_TYPE == 8812) || (LCD_ST_TYPE == 8814) || (LCD_ST_TYPE == 8814) || defined(LCD_DOGM)) 60 | const unsigned char CONTRAST_str[] MEM2_TEXT = "Kontrast"; 61 | #endif 62 | #endif /* WITH_MENU */ 63 | #ifdef WITH_XTAL 64 | const unsigned char cerres_str[] MEM_TEXT = "Cer.resonator "; 65 | const unsigned char xtal_str[] MEM_TEXT = "Kwarc "; 66 | #endif 67 | #define LANG_SELECTED 68 | #endif /* LANG POLISH */ 69 | 70 | /* ****************************** EOF ***************************************** */ 71 | -------------------------------------------------------------------------------- /Software/trunk/langSLOVENE.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************ 2 | * (c) by Karl-Heinz Kuebbeler, Projekt Tranzistor Tester 3 | * 4 | * File: langSLOVENE.h 5 | * Funktion: language selection 6 | * 7 | * History: Date Sign Kommentar 8 | * 2021-01-13 Bohu ISO 8859-2 text add 9 | * ************************************************************************ */ 10 | #if defined(LANG_SLOVENE) //slovenian 11 | const unsigned char TestRunning[] MEM_TEXT = "Testiranje"; 12 | const unsigned char BatWeak[] MEM_TEXT = "slaba!"; 13 | const unsigned char BatEmpty[] MEM_TEXT = "prazna!"; 14 | const unsigned char TestFailed2[] MEM_TEXT = "pokvarjen "; 15 | const unsigned char Bauteil[] MEM_TEXT = "del"; 16 | // const unsigned char Diode[] MEM_TEXT = "Dioda: "; 17 | const unsigned char Triac[] MEM_TEXT = "Triak"; 18 | const unsigned char Thyristor[] MEM_TEXT = "Tiristor"; 19 | const unsigned char Unknown[] MEM_TEXT = " neznan"; 20 | const unsigned char TestFailed1[] MEM_TEXT = "Ni, neznan, ali"; 21 | const unsigned char Detected[] MEM_TEXT = " detektira"; 22 | const unsigned char TestTimedOut[] MEM_TEXT = "Timeout!"; 23 | #define Cathode_char 'C' 24 | #ifdef WITH_SELFTEST 25 | const unsigned char SELFTEST[] MEM_TEXT = "Selftest mode.."; 26 | const unsigned char RELPROBE[] MEM_TEXT = "isolate Probes!"; 27 | const unsigned char ATE[] MEM_TEXT = "Test End"; 28 | #endif 29 | #ifdef WITH_MENU 30 | const unsigned char SELECTION_str[] MEM2_TEXT = "Izbor:"; 31 | const unsigned char TESTER_str[] MEM2_TEXT = "Tranzistor"; 32 | #ifndef NO_FREQ_COUNTER 33 | const unsigned char FREQ_str[] MEM2_TEXT = "Frekvenca"; 34 | #ifdef WITH_FREQUENCY_DIVIDER 35 | const unsigned char FScaler_str[] MEM2_TEXT = "F-Scaler"; 36 | #endif 37 | #endif 38 | const unsigned char VOLTAGE_str[] MEM2_TEXT = "Voltage"; 39 | const unsigned char SHOW_str[] MEM2_TEXT = "Prikazi podatke"; // "Show data" 40 | const unsigned char OFF_str[] MEM2_TEXT = "izklopi"; 41 | const unsigned char F_GEN_str[] MEM2_TEXT = "f-Generator"; 42 | #ifdef PWM_SERVO 43 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "Servo PWM"; 44 | #else 45 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "10-bit PWM"; 46 | #endif 47 | #ifdef WITH_ROTARY_CHECK 48 | const unsigned char RotaryEncoder_str[] MEM2_TEXT = "rotary encoder"; 49 | #endif 50 | const unsigned char SetCapCorr_str[] MEM2_TEXT = {'C','(',LCD_CHAR_U,'F',')','-','k','o','r','r','e','k','c','i','j','a',0}; 51 | const unsigned char TURN_str[] MEM2_TEXT = "turn!"; 52 | const unsigned char FULLCHECK_str[] MEM2_TEXT = "Selftest"; 53 | const unsigned char SHORT_PROBES_str[] MEM2_TEXT = "short Probes!"; 54 | #if (WITH_FREQUENCY_SWITCH == 1) 55 | const unsigned char HFREQ_str[] MEM2_TEXT = "Frekvenca > 2MHz"; 56 | const unsigned char H_CRYSTAL_str[] MEM2_TEXT = "HF kristal"; 57 | const unsigned char L_CRYSTAL_str[] MEM2_TEXT = "LF kristal"; 58 | #endif 59 | #if ((LCD_ST_TYPE == 7565) || (LCD_ST_TYPE == 1306) || (LCD_ST_TYPE == 8812) || (LCD_ST_TYPE == 8814) || (LCD_ST_TYPE == 8814) || defined(LCD_DOGM)) 60 | const unsigned char CONTRAST_str[] MEM2_TEXT = "Kontrast"; 61 | #endif 62 | #endif /* WITH_MENU */ 63 | #ifdef WITH_XTAL 64 | const unsigned char cerres_str[] MEM_TEXT = "Cer.resonator "; 65 | const unsigned char xtal_str[] MEM_TEXT = "Kristal "; 66 | #endif 67 | #define LANG_SELECTED 68 | #endif /* LANG SLOVENE */ 69 | /* ****************************** EOF ***************************************** */ 70 | -------------------------------------------------------------------------------- /Software/trunk/langSPANISH.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************ 2 | * (c) by Karl-Heinz Kuebbeler, Projekt Tranzistor Tester 3 | * 4 | * File: langCZECH.h 5 | * Funktion: language selection 6 | * 7 | * History: Date Sign Kommentar 8 | * 2021-01-12 9 | * ************************************************************************ */ 10 | #if defined(LANG_SPANISH) 11 | const unsigned char TestRunning[] MEM_TEXT = "Testeando"; 12 | const unsigned char BatWeak[] MEM_TEXT = "Poca bateria"; 13 | const unsigned char BatEmpty[] MEM_TEXT = "Sin bateria"; 14 | const unsigned char TestFailed2[] MEM_TEXT = "Pieza "; 15 | const unsigned char Bauteil[] MEM_TEXT = "mal..."; 16 | // const unsigned char Diode[] MEM_TEXT = "Diodo: "; 17 | const unsigned char Triac[] MEM_TEXT = "Triac"; 18 | const unsigned char Thyristor[] MEM_TEXT = "Tiristor"; 19 | const unsigned char Unknown[] MEM_TEXT = "No se ?"; 20 | const unsigned char TestFailed1[] MEM_TEXT = "Componente mal"; 21 | const unsigned char Detected[] MEM_TEXT = " detecta"; 22 | const unsigned char TestTimedOut[] MEM_TEXT = "Tiempo agotado!"; 23 | #define Cathode_char 'K' 24 | #ifdef WITH_SELFTEST 25 | const unsigned char SELFTEST[] MEM_TEXT = "Calibracion..."; 26 | const unsigned char RELPROBE[] MEM_TEXT = "Aislar Puntas!"; 27 | const unsigned char ATE[] MEM_TEXT = "Fin de Cal."; 28 | #endif 29 | #ifdef WITH_MENU 30 | const unsigned char SELECTION_str[] MEM2_TEXT = "Seleccion:"; 31 | const unsigned char TESTER_str[] MEM2_TEXT = "Transistor"; 32 | #ifndef NO_FREQ_COUNTER 33 | const unsigned char FREQ_str[] MEM2_TEXT = "Frequencia"; 34 | #ifdef WITH_FREQUENCY_DIVIDER 35 | const unsigned char FScaler_str[] MEM2_TEXT = "F-Scaler"; 36 | #endif 37 | #endif 38 | const unsigned char VOLTAGE_str[] MEM2_TEXT = "Voltage"; 39 | const unsigned char SHOW_str[] MEM2_TEXT = "mostrar datos"; 40 | const unsigned char OFF_str[] MEM2_TEXT = "desconectar"; 41 | const unsigned char F_GEN_str[] MEM2_TEXT = "F-Generador"; 42 | #ifdef PWM_SERVO 43 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "Servo PWM"; 44 | #else 45 | const unsigned char PWM_10bit_str[] MEM2_TEXT = "10-bit PWM"; 46 | #endif 47 | #ifdef WITH_ROTARY_CHECK 48 | const unsigned char RotaryEncoder_str[] MEM2_TEXT = "encoder rotativo"; 49 | #endif 50 | const unsigned char SetCapCorr_str[] MEM2_TEXT = {'C','(',LCD_CHAR_U,'F',')','-','C','o','r','r','e','c','c','i','o','n',0}; 51 | const unsigned char TURN_str[] MEM2_TEXT = "rotar!"; 52 | const unsigned char FULLCHECK_str[] MEM2_TEXT = "Calibracion..."; 53 | const unsigned char SHORT_PROBES_str[] MEM2_TEXT = "Cortocircuite las puntas!"; 54 | #if (WITH_FREQUENCY_SWITCH == 1) 55 | const unsigned char HFREQ_str[] MEM2_TEXT = "Frequencia > 2MHz"; 56 | const unsigned char H_CRYSTAL_str[] MEM2_TEXT = "HF cristal"; 57 | const unsigned char L_CRYSTAL_str[] MEM2_TEXT = "LF cristal"; 58 | #endif 59 | #if ((LCD_ST_TYPE == 7565) || (LCD_ST_TYPE == 1306) || (LCD_ST_TYPE == 8812) || (LCD_ST_TYPE == 8814) || (LCD_ST_TYPE == 8814) || defined(LCD_DOGM)) 60 | const unsigned char CONTRAST_str[] MEM2_TEXT = "Contraste"; 61 | #endif 62 | #endif /* WITH_MENU */ 63 | #ifdef WITH_XTAL 64 | const unsigned char cerres_str[] MEM_TEXT = "Cer.resonator "; 65 | const unsigned char xtal_str[] MEM_TEXT = "Cristal "; 66 | #endif 67 | #define LANG_SELECTED 68 | #endif /* LANG SPANISH */ 69 | /* ****************************** EOF ***************************************** */ 70 | -------------------------------------------------------------------------------- /Software/trunk/lcd-routines.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/lcd-routines.c -------------------------------------------------------------------------------- /Software/trunk/lcd-routines.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // Interfacing of a HD44780 compatible LCD with 4-Bit-Interface mode 4 | // http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial 5 | // 6 | 7 | extern void _lcd_hw_write(uint8_t flags, uint8_t data); 8 | extern void _lcd_hw_select(uint8_t flags); 9 | 10 | //LCD 11 | void lcd_testpin(unsigned char temp); 12 | void lcd_data(unsigned char temp1); 13 | void lcd_big_icon(unsigned char temp1); 14 | void lcd_update_icon(const unsigned char * ubitmap); 15 | void lcd_update_icon_opt(const unsigned char * ubitmap, unsigned char options); 16 | void lcd_space(void); // clear one character 17 | void lcd_equal(void); // send = character to display 18 | void lcd_minus(void); // send - character to display 19 | void lcd_spaces(int8_t number); // clear number characters (number negative -> no chars cleared) 20 | void lcd_command(unsigned char temp1); 21 | void lcd_string(char *data); 22 | void lcd_init(void); 23 | void lcd_clear(void); 24 | void lcd_fix_string(const unsigned char *data); 25 | void lcd_pgm_string(const unsigned char *data); 26 | void lcd_fix_customchar(const unsigned char *chardata); 27 | void lcd_clear_line(void); // clear 20 characters 28 | void lcd_clear_line1(void); // clear line 1 of display 29 | void lcd_clear_line2(void); // clear line 2 of display 30 | void lcd_set_cursor(unsigned char y, unsigned char x); 31 | uint8_t lcd_save_position(void); // save the last Character position (line,column) and returns the line 32 | void lcd_restore_position(void); // restore the character position, saved with lcd_save_position() 33 | void lcd_next_line(uint8_t xx); // y is incremented by 1 34 | void lcd_next_line_wait(uint8_t xx); // y is incremented by 1 and call wait_for_key_5s_line2 35 | void lcd_powersave(void); 36 | void lcd_line1(void); 37 | void lcd_line2(void); 38 | void lcd_line3(void); 39 | void lcd_line4(void); 40 | 41 | unsigned char reverse_byte(unsigned char); 42 | void lcd_show_Cg(void); // show Cg=xxxpF 43 | void lcd_show_rds(uint8_t xpos); // show Rgs at column xpos 44 | // Graphics display only: Some drawing functions for graphics LCD 45 | void lcd_pgm_bitmap(const unsigned char * pbitmap, 46 | unsigned char x, unsigned char y, 47 | unsigned char options); 48 | void lcd_set_pixels(const unsigned char * pdata, 49 | unsigned char x, unsigned char y, 50 | unsigned char options, 51 | unsigned char width, unsigned char height); 52 | #ifdef WITH_GRAPHICS 53 | void ShowIcons(void); /* show the different Icons */ 54 | void lcd_draw_pin(unsigned char index, char dx, char dy); 55 | void lcd_draw_trans_pins( char dxb, char dyb); 56 | #endif 57 | #if (LCD_ST_TYPE == 7920) 58 | void lcd_refresh(void); /* for ST7920 controller only*/ 59 | #endif 60 | 61 | //Software-UART 62 | void uart_putc(uint8_t data); 63 | #ifdef WITH_UART 64 | void uart_newline(void); 65 | #endif 66 | 67 | -------------------------------------------------------------------------------- /Software/trunk/mark_as_uncalibrated.c: -------------------------------------------------------------------------------- 1 | void mark_as_uncalibrated( void) { 2 | uint8_t ii; 3 | if (!UnCalibrated) { 4 | // equipment has changed, zero capacity value is too high or zero resistance is too high 5 | // but the device is marked as Calibrated. 6 | ii = eeprom_read_byte((uint8_t *)&c_zero_tab[0]); // read first zero offset 7 | ii++; 8 | // make the unused c_zero_tab[3] different to c_zero_tab[0] to mark uncalibrated 9 | eeprom_write_byte((uint8_t *)&c_zero_tab[3], ii); // mark uncalibrated permanent 10 | UnCalibrated = 1; // set back to uncalibrated 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Software/trunk/mega168_1.9V/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Diese Konfiguration ist vorgesehen für die ATmega168 Version 2 | des Testers mit DC-DC Converter-Betrieb aus einer Lithium Knopfzelle. 3 | Verwenden Sie diese Version nicht für den Betrieb mit einem LiIon Akkumulator. 4 | Die untere Spannungsgrenze von 1.9V ist nur für nicht ladbare Knopfzellen 5 | vorgesehen! 6 | Als Anzeige wird ein 2x16 Zeichen Textdisplay verwendet. 7 | Die Schaltung wurde von Funkamateuren im Rahmen des Fichtenfieldday 2013 8 | entwickelt (http://www.o28.sischa.net/fifiprojekte/44-mini-bauteiltester). 9 | -------------------------------------------------------------------------------- /Software/trunk/mega168_1.9V/mega168_1.9V.eep: -------------------------------------------------------------------------------- 1 | :1000000066706EE46D006B4D001E0203021E000060 2 | :10001000000F0818080F00001113171F1713110005 3 | :1000200011191D1F1D1911001B1B1B1B1B1B1B0066 4 | :100030005244533D00203530487A0043302000526E 5 | :10004000695F4C6F3D0052695F48693D00566572BB 6 | :1000500073696F6E20312E31336B002D77772D0051 7 | :100060002D04052D002A012020002D022D002D0138 8 | :100070002D00202049723D004C3D0020566C6F73CE 9 | :10008000733D00204553523D005643433D004365B8 10 | :100090006C6C21002D032D004056673D00205674E6 11 | :1000A0003D0055663D005562653D00203132333DCF 12 | :1000B00000504E50004E504E00433D00433D004224 13 | :1000C0003D002D49474254004A464554002D4D4FAE 14 | :1000D0005300444320507772204D6F6465004F4BAE 15 | :1000E000004261742E20005465737420456E64656F 16 | :1000F000005472656E6E652050696E732100536501 17 | :100100006C62737474657374202E2E0054696D656F 18 | :100110006F7574210020646574656B746965727411 19 | :10012000004B65696E2C756E62656B2E206F646581 20 | :10013000720020756E62656B2E0054687972697367 21 | :10014000742E005472696163004261757465696C54 22 | :1001500000646566656B74657320006C656572216B 23 | :1001600000676572696E670054657374656E2E0072 24 | :100170007A578950954A6D45EA40EE3C64393936E4 25 | :100180005F33CB30722E4E2C572A8928DE2652251B 26 | :10019000E3238D224E2123200B1F041E0C1D231C44 27 | :1001A000461B751AB019F41842189817F6165C1603 28 | :1001B000C9153C15B5143514B9134213D012631286 29 | :1001C000FA1194113311D5107A1014141414363610 30 | :0801D00038383836360C000304 31 | :00000001FF 32 | -------------------------------------------------------------------------------- /Software/trunk/mega168_3.3V/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Diese Konfiguration ist vorgesehen für die ATmega168 Version 2 | des Testers mit DC-DC Converter-Betrieb aus einem LiIon Akkumulator. 3 | Die untere Spannungsgrenze von 3.3V sollte einen Defekt des Akkus 4 | durch Tiefentladung verhindern! 5 | Als Anzeige wird ein 2x16 Zeichen Textdisplay verwendet. 6 | Die Schaltung wurde von Funkamateuren im Rahmen des Fichtenfieldday 2013 7 | entwickelt (http://www.o28.sischa.net/fifiprojekte/44-mini-bauteiltester). 8 | -------------------------------------------------------------------------------- /Software/trunk/mega168_3.3V/mega168_3.3V.eep: -------------------------------------------------------------------------------- 1 | :1000000066706EE46D006B4D001E0203021E000060 2 | :10001000000F0818080F00001113171F1713110005 3 | :1000200011191D1F1D1911001B1B1B1B1B1B1B0066 4 | :100030005244533D00203530487A0043302000526E 5 | :10004000695F4C6F3D0052695F48693D00566572BB 6 | :1000500073696F6E20312E31336B002D77772D0051 7 | :100060002D04052D002A012020002D022D002D0138 8 | :100070002D00202049723D004C3D0020566C6F73CE 9 | :10008000733D00204553523D005643433D004365B8 10 | :100090006C6C21002D032D004056673D00205674E6 11 | :1000A0003D0055663D005562653D00203132333DCF 12 | :1000B00000504E50004E504E00433D00433D004224 13 | :1000C0003D002D49474254004A464554002D4D4FAE 14 | :1000D0005300444320507772204D6F6465004F4BAE 15 | :1000E000004261742E20005465737420456E64656F 16 | :1000F000005472656E6E652050696E732100536501 17 | :100100006C62737474657374202E2E0054696D656F 18 | :100110006F7574210020646574656B746965727411 19 | :10012000004B65696E2C756E62656B2E206F646581 20 | :10013000720020756E62656B2E0054687972697367 21 | :10014000742E005472696163004261757465696C54 22 | :1001500000646566656B74657320006C656572216B 23 | :1001600000676572696E670054657374656E2E0072 24 | :100170007A578950954A6D45EA40EE3C64393936E4 25 | :100180005F33CB30722E4E2C572A8928DE2652251B 26 | :10019000E3238D224E2123200B1F041E0C1D231C44 27 | :1001A000461B751AB019F41842189817F6165C1603 28 | :1001B000C9153C15B5143514B9134213D012631286 29 | :1001C000FA1194113311D5107A1014141414363610 30 | :0801D00038383836360C000304 31 | :00000001FF 32 | -------------------------------------------------------------------------------- /Software/trunk/mega168_strip_grid/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Achtung, diese Version aktiviert eine andere Pinbelegung für den Anschluss des LC-Displays. 2 | Auf keinen Fall für eine Leiterplatte mit Standard-Belegung der Port D Pins benutzen! 3 | -------------------------------------------------------------------------------- /Software/trunk/mega168_strip_grid/ReadMe.txt: -------------------------------------------------------------------------------- 1 | Attention, this Version activates another pin assignment for the LC display access. 2 | Do not use this version for a printed board with standard port D assignments! 3 | -------------------------------------------------------------------------------- /Software/trunk/mega168_strip_grid/mega168_strip_grid.eep: -------------------------------------------------------------------------------- 1 | :1000000066706EE46D006B4D001E0203021E000060 2 | :10001000000F0818080F00001113171F1713110005 3 | :1000200011191D1F1D1911001B1B1B1B1B1B1B0066 4 | :100030005244533D00203530487A0043302000526E 5 | :10004000695F4C6F3D0052695F48693D00566572BB 6 | :1000500073696F6E20312E31336B002D77772D0051 7 | :100060002D04052D002A012020002D022D002D0138 8 | :100070002D0049723D004C3D0020566C6F73733D5E 9 | :1000800000204553523D005643433D0043656C6C90 10 | :1000900021002D032D004056673D002056743D0081 11 | :1000A00055663D005562653D00203132333D0050BC 12 | :1000B0004E50004E504E00433D0043673D006846A1 13 | :1000C000453D002D49474254004A464554002D4DB8 14 | :1000D0004F5300444320507772204D6F6465004FAA 15 | :1000E0004B004261742E20005465737420456E6489 16 | :1000F0000069736F6C6174652050726F6265732163 17 | :100100000053656C6674657374206D6F64652E2E84 18 | :100110000054696D656F75742100206465746563B2 19 | :10012000746564004E6F2C20756E6B6E6F776E2C4D 20 | :10013000206F720020756E6B6E6F776E0054687959 21 | :10014000726973742E005472696163007061727415 22 | :100150000064616D616765642000656D707479216C 23 | :10016000007765616B0054657374696E672E007A61 24 | :10017000578950954A6D45EA40EE3C643939365FFF 25 | :1001800033CB30722E4E2C572A8928DE265225E397 26 | :10019000238D224E2123200B1F041E0C1D231C46E1 27 | :1001A0001B751AB019F41842189817F6165C16C980 28 | :1001B000153C15B5143514B9134213D0126312FA55 29 | :1001C0001194113311D5107A101D1D1D1D363638AE 30 | :0701D000383836360C00033D 31 | :00000001FF 32 | -------------------------------------------------------------------------------- /Software/trunk/mega328/mega328.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00312D032D3320342D33307B 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706EE426 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00312D03BD 8 | :100070002D332000312D04052D77772D33200043BB 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B002D77772D002D04052D002A01205B 18 | :1001100020007A20513D0020696620002040302DCB 19 | :100120003556002D022D002D012D00202049723D55 20 | :10013000004C3D0020566C6F73733D0020455352B8 21 | :100140003D005643433D0043656C6C21002D032D5B 22 | :10015000004056673D002056743D0055663D0055F1 23 | :1001600062653D00203132333D00504E50004E500C 24 | :100170004E00433D00433D00423D002D494742545F 25 | :10018000004A464554002D4D4F53004443205077BC 26 | :1001900072204D6F6465004F4B004261742E200049 27 | :1001A0004672657175656E63790073686F7274204D 28 | :1001B00050726F626573210053656C667465737469 29 | :1001C000007475726E21004328E446292D636F7216 30 | :1001D00072656374696F6E0031302D6269742050EE 31 | :1001E000574D00662D47656E657261746F720053DE 32 | :1001F0007769746368206F66660053686F77206460 33 | :1002000061746100566F6C74616765005472616E51 34 | :10021000736973746F720053656C656374696F6E94 35 | :100220003A005465737420456E640069736F6C61A5 36 | :1002300074652050726F626573210053656C66743B 37 | :10024000657374206D6F64652E2E0054696D656F43 38 | :1002500075742100206465746563746564004E6F75 39 | :100260002C20756E6B6E6F776E2C206F7200207570 40 | :100270006E6B6E6F776E00546879726973742E00BE 41 | :10028000547269616300706172740064616D6167CA 42 | :1002900065642000656D70747921007765616B007D 43 | :1002A00054657374696E672E00705780508D4A666E 44 | :1002B00045E340E83C5E3933365A33C6306D2E494B 45 | :1002C0002C532A8428DA264E25DF2389224A21202E 46 | :1002D00020081F011E091D201C431B731AAD19F1B4 47 | :1002E000183F189517F4165A16C6153A15B3143256 48 | :1002F00014B7134013CE126112F81193113111D3B8 49 | :1003000010781014141414002F072F072F072F072D 50 | :100310002F072F072F072F072F072F072F072F072D 51 | :100320002F072F0739393B3B3B39390C000320207D 52 | :0B033000202020205B524C5D0078462E 53 | :00000001FF 54 | -------------------------------------------------------------------------------- /Software/trunk/mega328_1.9V/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Diese Konfiguration ist vorgesehen für die ATmega328 Version 2 | des Testers mit DC-DC Converter-Betrieb aus einer Lithium Knopfzelle. 3 | Verwenden Sie diese Version nicht für den Betrieb mit einem LiIon Akkumulator. 4 | Die untere Spannungsgrenze von 1.9V ist nur für nicht ladbare Knopfzellen 5 | vorgesehen! 6 | Als Anzeige wird ein 2x16 Zeichen Textdisplay verwendet. 7 | Die Schaltung wurde von Funkamateuren im Rahmen des Fichtenfieldday 2013 8 | entwickelt (http://www.o28.sischa.net/fifiprojekte/44-mini-bauteiltester). 9 | -------------------------------------------------------------------------------- /Software/trunk/mega328_1.9V/mega328_1.9V.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00206574613D00554A540096 2 | :1000100050555400312D032D3320342D33306E468E 3 | :10002000284C29005245465F523D005245465F43E9 4 | :100030003D00203E3130306E460066706EE46D004B 5 | :100040006B4D041F111111111F04001E0203021E2B 6 | :100050000000000F0818080F00001113171F1713D6 7 | :10006000110011191D1F1D1911001B1B1B1B1B1B30 8 | :100070001B005244533D005B435D00312D032D3383 9 | :100080002000312D04052D77772D332000432B459B 10 | :100090005352405450313A3300664054503200209D 11 | :1000A0003530487A00433073616D70200043302052 12 | :1000B0000052695F4C6F3D0052695F48693D0052D4 13 | :1000C000303D0052482F524C002B52482D203132E7 14 | :1000D000203133203233002B524C2D20313220314D 15 | :1000E000332032330052482B0052482D00524866CC 16 | :1000F0003D005265663D00494345733D0049434517 17 | :10010000303D0056657273696F6E20312E31336B4E 18 | :10011000002D77772D002D04052D002A01202000C9 19 | :100120007A20513D0020696620002040302D355650 20 | :10013000002D022D002D012D00202049723D004C84 21 | :100140003D0020566C6F73733D00204553523D00B7 22 | :100150005643433D0043656C6C21002D032D004048 23 | :1001600056673D002056743D0055663D005562655A 24 | :100170003D00203132333D00504E50004E504E0075 25 | :10018000433D00433D00423D002D49474254004A53 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000566510 28 | :1001B0007262696E64652050696E73210053656CCC 29 | :1001C000627374746573740064726568656E21008F 30 | :1001D0004328E446292D4B6F7272656B747572006B 31 | :1001E00031302D6269742050574D00662D47656E81 32 | :1001F000657261746F7200536368616C746520612D 33 | :100200007573005A6569676520446174656E0053B3 34 | :1002100070616E6E756E67004672657175656E7A97 35 | :10022000005472616E736973746F720041757377F5 36 | :1002300061686C3A005465737420456E64650054BF 37 | :1002400072656E6E652050696E73210053656C6235 38 | :10025000737474657374202E2E0054696D656F7508 39 | :1002600074210020646574656B7469657274004B59 40 | :1002700065696E2C756E62656B2E206F6465720009 41 | :1002800020756E62656B2E00546879726973742EE6 42 | :10029000005472696163004261757465696C006441 43 | :1002A0006566656B74657320006C65657221006717 44 | :1002B0006572696E670054657374656E2E007057C1 45 | :1002C00080508D4A6645E340E83C5E3933365A3308 46 | :1002D000C6306D2E492C532A8428DA264E25DF237A 47 | :1002E00089224A212020081F011E091D201C431BB2 48 | :1002F000731AAD19F1183F189517F4165A16C6154A 49 | :100300003A15B3143214B7134013CE126112F81118 50 | :1003100093113111D310781014141414002F072FD7 51 | :10032000072F072F072F072F072F072F072F072F1D 52 | :10033000072F072F072F072F0739393B3B3B393949 53 | :100340000C00032020202020205B524C5D007846CA 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_2X16_menu/mega328_2X16_menu.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00206574613D00554A540096 2 | :1000100050555400312D032D3320342D33306E468E 3 | :10002000284C29005245465F523D005245465F43E9 4 | :100030003D00203E3130306E460066706EE46D004B 5 | :100040006B4D041F111111111F04001E0203021E2B 6 | :100050000000000F0818080F00001113171F1713D6 7 | :10006000110011191D1F1D1911001B1B1B1B1B1B30 8 | :100070001B005244533D005B435D00312D032D3383 9 | :100080002000312D04052D77772D332000432B459B 10 | :100090005352405450313A3300664054503200209D 11 | :1000A0003530487A00433073616D70200043302052 12 | :1000B0000052695F4C6F3D0052695F48693D0052D4 13 | :1000C000303D0052482F524C002B52482D203132E7 14 | :1000D000203133203233002B524C2D20313220314D 15 | :1000E000332032330052482B0052482D00524866CC 16 | :1000F0003D005265663D00494345733D0049434517 17 | :10010000303D0056657273696F6E20312E31336B4E 18 | :10011000002D77772D002D04052D002A01202000C9 19 | :100120007A20513D0020696620002040302D355650 20 | :10013000002D022D002D012D00566578743D002004 21 | :100140002049723D004C3D0020566C6F73733D009A 22 | :10015000204553523D005643433D0043656C6C219E 23 | :10016000002D032D004056673D002056743D00557C 24 | :10017000663D005562653D00203132333D00504EF2 25 | :1001800050004E504E00433D00433D00423D002D87 26 | :1001900049474254004A464554002D4D4F530044B0 27 | :1001A0004320507772204D6F6465004F4B004261D1 28 | :1001B000742E2000462D5363616C65720046726593 29 | :1001C0007175656E63790073686F72742050726F19 30 | :1001D000626573210053656C667465737400747591 31 | :1001E000726E21004328E446292D636F72726563A5 32 | :1001F00074696F6E0031302D6269742050574D0064 33 | :10020000662D47656E657261746F7200537769740D 34 | :100210006368206F66660053686F7720646174615D 35 | :1002200000566F6C74616765005472616E73697318 36 | :10023000746F720053656C656374696F6E3A005435 37 | :1002400065737420456E640069736F6C617465201A 38 | :1002500050726F626573210053656C6674657374C8 39 | :10026000206D6F64652E2E0054696D656F75742165 40 | :1002700000206465746563746564004E6F2C20759E 41 | :100280006E6B6E6F776E2C206F720020756E6B6ECA 42 | :100290006F776E00546879726973742E00547269B6 43 | :1002A000616300706172740064616D6167656420F0 44 | :1002B00000656D70747921007765616B005465731A 45 | :1002C00074696E672E00705780508D4A6645E34012 46 | :1002D000E83C5E3933365A33C6306D2E492C532AEA 47 | :1002E0008428DA264E25DF2389224A212020081F70 48 | :1002F000011E091D201C431B731AAD19F1183F186C 49 | :100300009517F4165A16C6153A15B3143214B713C6 50 | :100310004013CE126112F81193113111D3107810DD 51 | :100320001414141400002F072F072F072F072F076F 52 | :100330002F072F072F072F072F072F072F072F070D 53 | :100340002F0739393B3B3B39390C00032020202053 54 | :0903500020205B524C5D00784650 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega328_3.3V/LiesMich.txt: -------------------------------------------------------------------------------- 1 | Diese Konfiguration ist vorgesehen für die ATmega328 Version 2 | des Testers mit DC-DC Converter-Betrieb aus einem LiIon Akkumulator. 3 | Die untere Spannungsgrenze von 3.3V sollte einen Defekt des Akkus 4 | durch Tiefentladung verhindern! 5 | Als Anzeige wird ein 2x16 Zeichen Textdisplay verwendet. 6 | Die Schaltung wurde von Funkamateuren im Rahmen des Fichtenfieldday 2013 7 | entwickelt (http://www.o28.sischa.net/fifiprojekte/44-mini-bauteiltester). 8 | -------------------------------------------------------------------------------- /Software/trunk/mega328_3.3V/mega328_3.3V.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00206574613D00554A540096 2 | :1000100050555400312D032D3320342D33306E468E 3 | :10002000284C29005245465F523D005245465F43E9 4 | :100030003D00203E3130306E460066706EE46D004B 5 | :100040006B4D041F111111111F04001E0203021E2B 6 | :100050000000000F0818080F00001113171F1713D6 7 | :10006000110011191D1F1D1911001B1B1B1B1B1B30 8 | :100070001B005244533D005B435D00312D032D3383 9 | :100080002000312D04052D77772D332000432B459B 10 | :100090005352405450313A3300664054503200209D 11 | :1000A0003530487A00433073616D70200043302052 12 | :1000B0000052695F4C6F3D0052695F48693D0052D4 13 | :1000C000303D0052482F524C002B52482D203132E7 14 | :1000D000203133203233002B524C2D20313220314D 15 | :1000E000332032330052482B0052482D00524866CC 16 | :1000F0003D005265663D00494345733D0049434517 17 | :10010000303D0056657273696F6E20312E31336B4E 18 | :10011000002D77772D002D04052D002A01202000C9 19 | :100120007A20513D0020696620002040302D355650 20 | :10013000002D022D002D012D00202049723D004C84 21 | :100140003D0020566C6F73733D00204553523D00B7 22 | :100150005643433D0043656C6C21002D032D004048 23 | :1001600056673D002056743D0055663D005562655A 24 | :100170003D00203132333D00504E50004E504E0075 25 | :10018000433D00433D00423D002D49474254004A53 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000566510 28 | :1001B0007262696E64652050696E73210053656CCC 29 | :1001C000627374746573740064726568656E21008F 30 | :1001D0004328E446292D4B6F7272656B747572006B 31 | :1001E00031302D6269742050574D00662D47656E81 32 | :1001F000657261746F7200536368616C746520612D 33 | :100200007573005A6569676520446174656E0053B3 34 | :1002100070616E6E756E67004672657175656E7A97 35 | :10022000005472616E736973746F720041757377F5 36 | :1002300061686C3A005465737420456E64650054BF 37 | :1002400072656E6E652050696E73210053656C6235 38 | :10025000737474657374202E2E0054696D656F7508 39 | :1002600074210020646574656B7469657274004B59 40 | :1002700065696E2C756E62656B2E206F6465720009 41 | :1002800020756E62656B2E00546879726973742EE6 42 | :10029000005472696163004261757465696C006441 43 | :1002A0006566656B74657320006C65657221006717 44 | :1002B0006572696E670054657374656E2E007057C1 45 | :1002C00080508D4A6645E340E83C5E3933365A3308 46 | :1002D000C6306D2E492C532A8428DA264E25DF237A 47 | :1002E00089224A212020081F011E091D201C431BB2 48 | :1002F000731AAD19F1183F189517F4165A16C6154A 49 | :100300003A15B3143214B7134013CE126112F81118 50 | :1003100093113111D310781014141414002F072FD7 51 | :10032000072F072F072F072F072F072F072F072F1D 52 | :10033000072F072F072F072F0739393B3B3B393949 53 | :100340000C00032020202020205B524C5D007846CA 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_GM328/ReadMe.txt: -------------------------------------------------------------------------------- 1 | This ist the support for a clone on ebay from seller moncss 2 | See: http://www.mikrocontroller.net/topic/345717 3 | 4 | FUSES: lfuse=0xF7 hfuse=0xD9 efuse=0xFC 5 | Note: Some newer AvrDude would like to see efuse=0x04 6 | 7 | Contrast is a little bit low. Adjust by Menu or set first 8 | EEPROM value to 55=0x37. 9 | 10 | -------------------------------------------------------------------------------- /Software/trunk/mega328_GM328/mega328_GM328.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E7472617374004672657175656E6379F1 29 | :1001C0000073686F72742050726F62657321005300 30 | :1001D000656C6674657374007475726E21004328D3 31 | :1001E0001E46292D636F7272656374696F6E0031EC 32 | :1001F000302D6269742050574D00662D47656E653D 33 | :100200007261746F7200537769746368206F6666F9 34 | :100210000053686F77206461746100566F6C74617D 35 | :100220006765005472616E736973746F7200536511 36 | :100230006C656374696F6E3A005465737420456E23 37 | :10024000640069736F6C6174652050726F626573CE 38 | :10025000210053656C6674657374206D6F64652E40 39 | :100260002E0054696D656F75742100206465746596 40 | :1002700063746564004E6F2C20756E6B6E6F776EC5 41 | :100280002C206F720020756E6B6E6F776E00546855 42 | :1002900079726973742E00547269616300706172BF 43 | :1002A000740064616D616765642000656D707479C8 44 | :1002B00021007765616B0054657374696E672E0069 45 | :1002C000705780508D4A6645E340E83C5E393336CE 46 | :1002D0005A33C6306D2E492C532A8428DA264E25EF 47 | :1002E000DF2389224A212020081F011E091D201C0E 48 | :1002F000431B731AAD19F1183F189517F4165A16C7 49 | :10030000C6153A15B3143214B7134013CE12611246 50 | :10031000F81193113111D31078102814141414000B 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F072F072F072F0739393B3B91 53 | :100340003B39390C000320202020202020205B5244 54 | :050350004C5D00784641 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega328_MK-328/mega328_MK-328.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E74726173740073686F72742050726F22 29 | :1001C000626573210053656C6674657374007475A1 30 | :1001D000726E210043281E46292D636F727265637B 31 | :1001E00074696F6E0031302D6269742050574D0074 32 | :1001F000662D47656E657261746F7200537769741E 33 | :100200006368206F66660053686F7720646174616D 34 | :1002100000566F6C74616765005472616E73697328 35 | :10022000746F720053656C656374696F6E3A005445 36 | :1002300065737420456E640069736F6C617465202A 37 | :1002400050726F626573210053656C6674657374D8 38 | :10025000206D6F64652E2E0054696D656F75742175 39 | :1002600000206465746563746564004E6F2C2075AE 40 | :100270006E6B6E6F776E2C206F720020756E6B6EDA 41 | :100280006F776E00546879726973742E00547269C6 42 | :10029000616300706172740064616D616765642000 43 | :1002A00000656D70747921007765616B005465732A 44 | :1002B00074696E672E00705780508D4A6645E34022 45 | :1002C000E83C5E3933365A33C6306D2E492C532AFA 46 | :1002D0008428DA264E25DF2389224A212020081F80 47 | :1002E000011E091D201C431B731AAD19F1183F187C 48 | :1002F0009517F4165A16C6153A15B3143214B713D7 49 | :100300004013CE126112F81193113111D3107810ED 50 | :100310003714141414002F072F072F072F072F0748 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F0739393B3B3B39390C00032020202063 53 | :0903400020205B524C5D00784660 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_PCF8812/mega328_PCF8812.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D005245465F523D0052454678 2 | :100010005F433D00203E3130306E460066706E1EFC 3 | :100020006D006B4D041F111111111F04001E0203FE 4 | :10003000021E0000000F0818080F00001113171F00 5 | :100040001713110011191D1F1D1911001B1B1B1B5C 6 | :100050001B1B1B005244533D005B435D00310603F4 7 | :100060000633200031060405060708063320004346 8 | :100070002B455352405450313A330066405450326D 9 | :1000800000203530487A004330200052695F4C6FC1 10 | :100090003D0052695F48693D0052303D0052482F93 11 | :1000A000524C002B52482D20313220313320323334 12 | :1000B000002B524C2D20313220313320323300526C 13 | :1000C000482B0052482D005248663D005265663D5F 14 | :1000D00000494345733D00494345303D0056657234 15 | :1000E00073696F6E20312E31336B000607080600EE 16 | :1000F00006040506002A012020000602060006016B 17 | :10010000060049723D004C3D0020566C6F73733DF4 18 | :1001100000204553523D005643433D0043656C6CFF 19 | :100120002100060306004056673D002056743D003E 20 | :1001300055663D005562653D00203132333D00502B 21 | :10014000696E2000424A542D504E5000424A542DB0 22 | :100150004E504E00433D0043673D006846453D001C 23 | :100160002D49474254004A464554002D4D4F5300F7 24 | :10017000444320507772204D6F6465004F4B00421E 25 | :1001800061742E2000436F6E747261737400467246 26 | :10019000657175656E63790073686F727420507253 27 | :1001A0006F626573210053656C66746573740074C7 28 | :1001B00075726E210043281E46292D636F72726589 29 | :1001C0006374696F6E0031302D6269742050574D31 30 | :1001D00000662D47656E657261746F7200537769B2 31 | :1001E000746368206F66660053686F77206461747B 32 | :1001F0006100566F6C74616765005472616E73695B 33 | :1002000073746F720053656C656374696F6E3A0046 34 | :100210005465737420456E640069736F6C61746516 35 | :100220002050726F626573210053656C667465734C 36 | :1002300074206D6F64652E2E0054696D656F757442 37 | :100240002100206465746563746564004E6F2C2022 38 | :10025000756E6B6E6F776E2C206F720020756E6BF3 39 | :100260006E6F776E00546879726973742E005472E1 40 | :1002700069616300706172740064616D61676564D7 41 | :100280002000656D70747921007765616B0054659D 42 | :100290007374696E672E00705780508D4A6645E30F 43 | :1002A00040E83C5E3933365A33C6306D2E492C5304 44 | :1002B0002A8428DA264E25DF2389224A2120200895 45 | :1002C0001F011E091D201C431B731AAD19F1183F95 46 | :1002D000189517F4165A16C6153A15B3143214B7F2 47 | :1002E000134013CE126112F81193113111D310780B 48 | :1002F000104E141414140039393B3B3B39390C00AF 49 | :0D03000003202020202020205B524C5D00B7 50 | :00000001FF 51 | -------------------------------------------------------------------------------- /Software/trunk/mega328_PCF8814/mega328_PCF8814.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :10018000433D001C3D002D49474254004A4645541A 26 | :10019000002D4D4F5300444320507772204D6F6423 27 | :1001A00065004F4B004261742E2000436F6E7472E5 28 | :1001B000617374004672657175656E63790073686A 29 | :1001C0006F72742050726F626573210053656C66A4 30 | :1001D00074657374007475726E210043281E46297D 31 | :1001E0002D636F7272656374696F6E0031302D62BA 32 | :1001F00069742050574D00662D47656E65726174B5 33 | :100200006F7200537769746368206F666600536885 34 | :100210006F77206461746100566F6C74616765006C 35 | :100220005472616E736973746F720053656C6563A9 36 | :1002300074696F6E3A005465737420456E6400698A 37 | :10024000736F6C6174652050726F62657321005327 38 | :10025000656C6674657374206D6F64652E2E005432 39 | :10026000696D656F757421002064657465637465DC 40 | :1002700064004E6F2C20756E6B6E6F776E2C206F46 41 | :10028000720020756E6B6E6F776E005468797269BC 42 | :1002900073742E005472696163007061727400643B 43 | :1002A000616D616765642000656D70747921007708 44 | :1002B00065616B0054657374696E672E00705780BA 45 | :1002C000508D4A6645E340E83C5E3933365A33C6C2 46 | :1002D000306D2E492C532A8428DA264E25DF2389B7 47 | :1002E000224A212020081F011E091D201C431B73C8 48 | :1002F0001AAD19F1183F189517F4165A16C6153A83 49 | :1003000015B3143214B7134013CE126112F81193BF 50 | :10031000113111D31078101014141414002F072F5A 51 | :10032000072F072F072F072F072F072F072F072F1D 52 | :10033000072F072F072F072F0739393B3B3B393949 53 | :100340000C00032020202020205B524C5D007846CA 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_T3_T4_st7565/ReadMe.txt: -------------------------------------------------------------------------------- 1 | This configuration is made for the chinese printed board 2 | T3 or T4 with a graphical display. 3 | Pictures and some usefull information is published from user Tomas P. 4 | at the transistortester thread: 5 | https://www.mikrocontroller.net/topic/248078?goto=4120737#4105488 6 | -------------------------------------------------------------------------------- /Software/trunk/mega328_T3_T4_st7565/mega328_T3_T4_st7565.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E74726173740073686F72742050726F22 29 | :1001C000626573210053656C6674657374007475A1 30 | :1001D000726E210043281E46292D636F727265637B 31 | :1001E00074696F6E0031302D6269742050574D0074 32 | :1001F000662D47656E657261746F7200537769741E 33 | :100200006368206F66660053686F7720646174616D 34 | :1002100000566F6C74616765005472616E73697328 35 | :10022000746F720053656C656374696F6E3A005445 36 | :1002300065737420456E640069736F6C617465202A 37 | :1002400050726F626573210053656C6674657374D8 38 | :10025000206D6F64652E2E0054696D656F75742175 39 | :1002600000206465746563746564004E6F2C2075AE 40 | :100270006E6B6E6F776E2C206F720020756E6B6EDA 41 | :100280006F776E00546879726973742E00547269C6 42 | :10029000616300706172740064616D616765642000 43 | :1002A00000656D70747921007765616B005465732A 44 | :1002B00074696E672E00705780508D4A6645E34022 45 | :1002C000E83C5E3933365A33C6306D2E492C532AFA 46 | :1002D0008428DA264E25DF2389224A212020081F80 47 | :1002E000011E091D201C431B731AAD19F1183F187C 48 | :1002F0009517F4165A16C6153A15B3143214B713D7 49 | :100300004013CE126112F81193113111D3107810ED 50 | :100310003014141414002F072F072F072F072F074F 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F0739393B3B3B39390C00032020202063 53 | :0903400020205B524C5D00784660 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_T4_v2_st7565/mega328_T4_v2_st7565.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E74726173740073686F72742050726F22 29 | :1001C000626573210053656C6674657374007475A1 30 | :1001D000726E210043281E46292D636F727265637B 31 | :1001E00074696F6E0031302D6269742050574D0074 32 | :1001F000662D47656E657261746F7200537769741E 33 | :100200006368206F66660053686F7720646174616D 34 | :1002100000566F6C74616765005472616E73697328 35 | :10022000746F720053656C656374696F6E3A005445 36 | :1002300065737420456E640069736F6C617465202A 37 | :1002400050726F626573210053656C6674657374D8 38 | :10025000206D6F64652E2E0054696D656F75742175 39 | :1002600000206465746563746564004E6F2C2075AE 40 | :100270006E6B6E6F776E2C206F720020756E6B6EDA 41 | :100280006F776E00546879726973742E00547269C6 42 | :10029000616300706172740064616D616765642000 43 | :1002A00000656D70747921007765616B005465732A 44 | :1002B00074696E672E00705780508D4A6645E34022 45 | :1002C000E83C5E3933365A33C6306D2E492C532AFA 46 | :1002D0008428DA264E25DF2389224A212020081F80 47 | :1002E000011E091D201C431B731AAD19F1183F187C 48 | :1002F0009517F4165A16C6153A15B3143214B713D7 49 | :100300004013CE126112F81193113111D3107810ED 50 | :100310003014141414002F072F072F072F072F074F 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F0739393B3B3B39390C00032020202063 53 | :0903400020205B524C5D00784660 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_T5_st7565/mega328_T5_st7565.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D005245465F523D0052454678 2 | :100010005F433D00203E3130306E460066706E1EFC 3 | :100020006D006B4D041F111111111F04001E0203FE 4 | :10003000021E0000000F0818080F00001113171F00 5 | :100040001713110011191D1F1D1911001B1B1B1B5C 6 | :100050001B1B1B005244533D005B435D00310603F4 7 | :100060000633200031060405060708063320004346 8 | :100070002B455352405450313A330066405450326D 9 | :1000800000203530487A004330200052695F4C6FC1 10 | :100090003D0052695F48693D0052303D0052482F93 11 | :1000A000524C002B52482D20313220313320323334 12 | :1000B000002B524C2D20313220313320323300526C 13 | :1000C000482B0052482D005248663D005265663D5F 14 | :1000D00000494345733D00494345303D0056657234 15 | :1000E00073696F6E20312E31336B000607080600EE 16 | :1000F00006040506002A012020000602060006016B 17 | :100100000600566578743D0049723D004C3D002064 18 | :10011000566C6F73733D00204553523D0056434368 19 | :100120003D0043656C6C2100060306004056673DA8 20 | :10013000002056743D0055663D005562653D002027 21 | :100140003132333D0050696E2000424A542D504EEA 22 | :100150005000424A542D4E504E00433D0043673DEF 23 | :10016000006846453D002D49474254004A464554E3 24 | :10017000002D4D4F5300444320507772204D6F6443 25 | :1001800065004F4B004261742E2000436F6E747205 26 | :10019000617374004672657175656E63790073688A 27 | :1001A0006F72742050726F626573210053656C66C4 28 | :1001B00074657374007475726E210043281E46299D 29 | :1001C0002D636F7272656374696F6E0031302D62DA 30 | :1001D00069742050574D00662D47656E65726174D5 31 | :1001E0006F7200537769746368206F6666005368A6 32 | :1001F0006F77206461746100566F6C74616765008D 33 | :100200005472616E736973746F720053656C6563C9 34 | :1002100074696F6E3A005465737420456E640069AA 35 | :10022000736F6C6174652050726F62657321005347 36 | :10023000656C6674657374206D6F64652E2E005452 37 | :10024000696D656F757421002064657465637465FC 38 | :1002500064004E6F2C20756E6B6E6F776E2C206F66 39 | :10026000720020756E6B6E6F776E005468797269DC 40 | :1002700073742E005472696163007061727400645B 41 | :10028000616D616765642000656D70747921007728 42 | :1002900065616B0054657374696E672E00705780DA 43 | :1002A000508D4A6645E340E83C5E3933365A33C6E2 44 | :1002B000306D2E492C532A8428DA264E25DF2389D7 45 | :1002C000224A212020081F011E091D201C431B73E8 46 | :1002D0001AAD19F1183F189517F4165A16C6153AA3 47 | :1002E00015B3143214B7134013CE126112F81193E0 48 | :1002F000113111D310781028141414140039393B1B 49 | :100300003B3B39390C00032020202020205B524C3D 50 | :020310005D008E 51 | :00000001FF 52 | -------------------------------------------------------------------------------- /Software/trunk/mega328_color_kit/OrigChina.eep: -------------------------------------------------------------------------------- 1 | :020000040000FA 2 | :100000005245465F523D005245465F433D00203E0B 3 | :100010003130306E4600706E056D006B4D00111171 4 | :1000200011131D101000000E11110A1B00041F11E6 5 | :100030001111111F04001E0203021E0000000F0810 6 | :1000400018080F00001113171F1713110011191DA5 7 | :100050001F1D1911001B1B1B1B1B1B1B0052445394 8 | :100060003D005B435D00310803083320005B524CC8 9 | :100070005D003108070608090A08332000432B45B4 10 | :100080005352405450313A330066405450320020AD 11 | :100090003530487A004330200052695F4C6F3D0094 12 | :1000A00052695F48693D0052303D0052482F524C22 13 | :1000B000002B52482D203132203133203233002B97 14 | :1000C000524C2D2031322031332032330052482B14 15 | :1000D0000052482D005248663D005265663D004979 16 | :1000E0004345733D00494345303D00566572736991 17 | :1000F0006F6E20312E31326B0008090A08000807A4 18 | :100100000608002A01202000080208000801080053 19 | :10011000566578743D0049723D004C3D0020566C98 20 | :100120006F73733D00204553523D005643433D00DD 21 | :1001300043656C6C2100080308004056673D0020B1 22 | :1001400056743D0055663D005562653D00203132D4 23 | :10015000333D0050696E2000424A542D504E5000ED 24 | :10016000424A542D4E504E00433D0043673D0068C7 25 | :1001700046453D002D49474254004A464554002D0E 26 | :100180004D4F5300444320507772204D6F646500FB 27 | :100190004F4B004261742E20004261636B436F6CD1 28 | :1001A0006F720046726F6E74436F6C6F720073688B 29 | :1001B0006F72742050726F626573210053656C66B4 30 | :1001C00074657374007475726E2100726F7461725D 31 | :1001D0007920656E636F6465720031302D626974D9 32 | :1001E0002050574D00662D47656E657261746F72C1 33 | :1001F00000537769746368206F66660053686F7791 34 | :10020000206461746100566F6C74616765004672AA 35 | :10021000657175656E6379005472616E736973748C 36 | :100220006F720053656C656374696F6E3A00546554 37 | :10023000737420456E640069736F6C61746520503F 38 | :10024000726F626573210053656C66746573742008 39 | :100250006D6F64652E2E0054696D656F7574210095 40 | :100260006F722064616D6167656420004E6F2C20A1 41 | :10027000756E6B6E6F776E2C206F720020756E6BD3 42 | :100280006E6F776E00546879726973742E005472C1 43 | :1002900069616300706172740064616D61676564B7 44 | :1002A0002000656D70747921007765616B0054657D 45 | :1002B0007374696E672E2E2E00AF57B950C24A97DD 46 | :1002C000451141133D87395A367E33E8308E2E6909 47 | :1002D0002C712AA128F5266925F923A2226221374B 48 | :1002E000201E1F161E1E1D341C571B851ABF190306 49 | :1002F000195018A61704176A16D6154915C21441C5 50 | :1003000014C5134E13DC126E1205129F113D11DF3E 51 | :10031000108410E107000014050C063E3E403E3EEE 52 | :100320003C3D0600F8FFFFFFFFFFFFFFFFFFFFFF61 53 | :10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD 54 | :10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD 55 | :10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD 56 | :10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D 57 | :10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D 58 | :10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D 59 | :10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D 60 | :1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D 61 | :1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D 62 | :1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D 63 | :1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D 64 | :1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D 65 | :1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D 66 | :00000001FF 67 | -------------------------------------------------------------------------------- /Software/trunk/mega328_color_kit/mega328_color_kit.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D004261636B436F6C3C 16 | :1000F0006F720046726F6E74436F6C6F720049438B 17 | :1001000045733D00494345303D0056657273696F44 18 | :100110006E20312E31336B000607080600060405F9 19 | :1001200006002A012020007A20513D002069662027 20 | :10013000002040302D35560006020600060106005C 21 | :10014000566578743D0049723D004C3D0020566C68 22 | :100150006F73733D00204553523D005643433D00AD 23 | :1001600043656C6C2100060306004056673D002085 24 | :1001700056743D0055663D005562653D00203132A4 25 | :10018000333D0050696E2000424A542D504E5000BD 26 | :10019000424A542D4E504E00433D0043673D006897 27 | :1001A00046453D002D49474254004A464554002DDE 28 | :1001B0004D4F5300444320507772204D6F646500CB 29 | :1001C0004F4B004261742E20004672657175656E5A 30 | :1001D00063790073686F72742050726F6265732167 31 | :1001E0000053656C6674657374007475726E2100DB 32 | :1001F00043281E46292D636F7272656374696F6EA2 33 | :100200000031302D6269742050574D00662D4765CE 34 | :100210006E657261746F7200537769746368206FE2 35 | :1002200066660053686F77206461746100566F6C76 36 | :1002300074616765005472616E736973746F7200E4 37 | :1002400053656C656374696F6E3A0054657374200E 38 | :10025000456E640069736F6C6174652050726F62E3 39 | :100260006573210053656C6674657374206D6F64EB 40 | :10027000652E2E0054696D656F75742100206465CC 41 | :10028000746563746564004E6F2C20756E6B6E6FC1 42 | :10029000776E2C206F720020756E6B6E6F776E001C 43 | :1002A000546879726973742E0054726961630070C6 44 | :1002B0006172740064616D616765642000656D70D2 45 | :1002C000747921007765616B0054657374696E679A 46 | :1002D0002E00705780508D4A6645E340E83C5E39F9 47 | :1002E00033365A33C6306D2E492C532A8428DA26E9 48 | :1002F0004E25DF2389224A212020081F011E091DC7 49 | :10030000201C431B731AAD19F1183F189517F416EA 50 | :100310005A16C6153A15B3143214B7134013CE1239 51 | :100320006112F81193113111D3107810FFFF78008A 52 | :1003300014141414002F072F072F072F072F072F30 53 | :10034000072F072F072F072F072F072F072F072FFD 54 | :100350000739393B3B3B39390C0003202020202052 55 | :0C03600020202020205B524C5D007846DD 56 | :00000001FF 57 | -------------------------------------------------------------------------------- /Software/trunk/mega328_dogm/mega328_dogm.eep: -------------------------------------------------------------------------------- 1 | :100000002414141414002F072F072F072F072F076E 2 | :100010002F072F072F072F072F072F072F072F0730 3 | :0E0020002F0739393B3B3B39390C000378463A 4 | :00000001FF 5 | -------------------------------------------------------------------------------- /Software/trunk/mega328_fish8840/ReadMe.txt: -------------------------------------------------------------------------------- 1 | This configuration is made for the chinese printed board 2 | fish8840 with a graphical display. 3 | The graphical display is controlled with a ST7565 controller or compatible. 4 | The LCD printed board is equipped with a 3.3V voltage regulator, but 5 | the 5V data signal level is routed to the controller input directly. 6 | The controller data sheet does not allow 5V signal level to any 7 | data input. 8 | So the operating voltage of the ST7565 controller can be increased 9 | by the signal level from ATmega outputs with internal protection diodes 10 | of the ST7565 controller. 11 | You should install serial resistors of about 2700 Ohm to all four 12 | data lines of the ATmega (PD0-PD3) to prevent this irregular voltage enhancement! 13 | Usually only 6 pins (11-16) of the 16 pin female header of the LCD is installed, 14 | but also pin 1-6 is connected at the main board. 15 | 16 | You can also use a special mode for SPI signal output with the option LCD_SPI_OPEN_COL 17 | in the Makefile instead of installing serial resistors. 18 | With this option set you must install a pull-up resistor to the 19 | SPI-Reset signal (PD0 or LCD-pin 11) or you must unset the Makefile option PULLUP_DISABLE. 20 | With the configuration Makefile in subdirectory mega328_fish8840_OC this options are set and 21 | the files FishTesterOC.hex and FishTesterOC.eep are generated. 22 | With this setting (no PULLUP_DISABLE) you need no modification of the LDC connections. 23 | 24 | You can also use a character display (16x2) with this printed board, 25 | if you install a additional female header (1-6) and update the processor 26 | with a program version for character display. But you should notice, 27 | that there is no current limiting resistor at pin 15 of the femal header 28 | for the anode of the background LED. If your display module is equipped 29 | with a background LED, you should check that pin 15 of your display module 30 | is not directly connected to the anode ot the LED. 31 | 32 | Some details are described in the PDF documentation about this board. 33 | You should check, if the battery voltage measurement must be modified 34 | to prevent a irregular battery consumption. 35 | -------------------------------------------------------------------------------- /Software/trunk/mega328_fish8840/mega328_fish8840.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E7472617374004672657175656E6379F1 29 | :1001C0000073686F72742050726F62657321005300 30 | :1001D000656C6674657374007475726E21004328D3 31 | :1001E0001E46292D636F7272656374696F6E0031EC 32 | :1001F000302D6269742050574D00662D47656E653D 33 | :100200007261746F7200537769746368206F6666F9 34 | :100210000053686F77206461746100566F6C74617D 35 | :100220006765005472616E736973746F7200536511 36 | :100230006C656374696F6E3A005465737420456E23 37 | :10024000640069736F6C6174652050726F626573CE 38 | :10025000210053656C6674657374206D6F64652E40 39 | :100260002E0054696D656F75742100206465746596 40 | :1002700063746564004E6F2C20756E6B6E6F776EC5 41 | :100280002C206F720020756E6B6E6F776E00546855 42 | :1002900079726973742E00547269616300706172BF 43 | :1002A000740064616D616765642000656D707479C8 44 | :1002B00021007765616B0054657374696E672E0069 45 | :1002C000705780508D4A6645E340E83C5E393336CE 46 | :1002D0005A33C6306D2E492C532A8428DA264E25EF 47 | :1002E000DF2389224A212020081F011E091D201C0E 48 | :1002F000431B731AAD19F1183F189517F4165A16C7 49 | :10030000C6153A15B3143214B7134013CE12611246 50 | :10031000F81193113111D31078102814141414000B 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F072F072F072F0739393B3B91 53 | :100340003B39390C000320202020202020205B5244 54 | :050350004C5D00784641 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega328_fish8840_OC/FishTesterOC.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310803083320342D3330C5 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E0505 4 | :100030006D006B4D00111111131D101000000E11F9 5 | :10004000110A1B00041F111111111F04001E0203CD 6 | :10005000021E0000000F0818080F00001113171FE0 7 | :100060001713110011191D1F1D1911001B1B1B1B3C 8 | :100070001B1B1B005244533D005B435D00310803D2 9 | :10008000083320003108070608090A083320004316 10 | :100090002B455352405450313A330066405450324D 11 | :1000A00000203530487A00433073616D7020004382 12 | :1000B00030200052695F4C6F3D0052695F48693DD6 13 | :1000C0000052303D0052482F524C002B52482D20F8 14 | :1000D0003132203133203233002B524C2D2031323B 15 | :1000E0002031332032330052482B0052482D005229 16 | :1000F00048663D005265663D00494345733D0049F1 17 | :100100004345303D0056657273696F6E20312E3164 18 | :10011000336B0008090A080008070608002A0120B6 19 | :1001200020007A20513D0020696620002040302DBB 20 | :10013000355600080208000801080049723D004CCD 21 | :100140003D0020566C6F73733D00204553523D00B7 22 | :100150005643433D0043656C6C2100080308004092 23 | :1001600056673D002056743D0055663D005562655A 24 | :100170003D00203132333D0050696E2000424A5428 25 | :100180002D504E5000424A542D4E504E00433D00DB 26 | :1001900043673D006846453D002D49474254004AAB 27 | :1001A000464554002D4D4F53004443205077722054 28 | :1001B0004D6F6465004F4B004261742E2000436F09 29 | :1001C0006E7472617374004672657175656E6379E1 30 | :1001D0000073686F72742050726F626573210053F0 31 | :1001E000656C6674657374007475726E21004328C3 32 | :1001F0000546292D636F7272656374696F6E0031F5 33 | :10020000302D6269742050574D00662D47656E652C 34 | :100210007261746F7200537769746368206F6666E9 35 | :100220000053686F77206461746100566F6C74616D 36 | :100230006765005472616E736973746F7200536501 37 | :100240006C656374696F6E3A005465737420456E13 38 | :10025000640069736F6C6174652050726F626573BE 39 | :10026000210053656C6674657374206D6F64652E30 40 | :100270002E0054696D656F75742100206465746586 41 | :1002800063746564004E6F2C20756E6B6E6F776EB5 42 | :100290002C206F720020756E6B6E6F776E00546845 43 | :1002A00079726973742E00547269616300706172AF 44 | :1002B000740064616D616765642000656D707479B8 45 | :1002C00021007765616B0054657374696E672E0059 46 | :1002D000705780508D4A6645E340E83C5E393336BE 47 | :1002E0005A33C6306D2E492C532A8428DA264E25DF 48 | :1002F000DF2389224A212020081F011E091D201CFE 49 | :10030000431B731AAD19F1183F189517F4165A16B6 50 | :10031000C6153A15B3143214B7134013CE12611236 51 | :10032000F81193113111D3107810281414141400FB 52 | :100330002F072F072F072F072F072F072F072F070D 53 | :100340002F072F072F072F072F072F0739393B3B81 54 | :100350003B39390C000320202020202020205B5234 55 | :050360004C5D00784631 56 | :00000001FF 57 | -------------------------------------------------------------------------------- /Software/trunk/mega328_fish8840_OC/ReadMe.txt: -------------------------------------------------------------------------------- 1 | This configuration is made for the chinese printed board 2 | fish8840 with a graphical display. 3 | The graphical display is controlled with a ST7565 controller or compatible. 4 | The LCD printed board is equipped with a 3.3V voltage regulator, but 5 | the 5V data signal level is routed to the controller input directly. 6 | The controller data sheet does not allow 5V signal level to any 7 | data input. 8 | So the operating voltage of the ST7565 controller can be increased 9 | by the signal level from ATmega outputs with internal protection diodes 10 | of the ST7565 controller. 11 | You should install serial resistors of about 2700 Ohm to all four 12 | data lines of the ATmega (PD0-PD3) to prevent this irregular voltage enhancement! 13 | Usually only 6 pins (11-16) of the 16 pin female header of the LCD is installed, 14 | but also pin 1-6 is connected at the main board. 15 | 16 | You can also use a special mode for SPI signal output with the option LCD_SPI_OPEN_COL 17 | in the Makefile instead of installing serial resistors. 18 | With this option set you must install a pull-up resistor to the 19 | SPI-Reset signal (PD0 or LCD-pin 11) or you must unset the Makefile option PULLUP_DISABLE. 20 | With the configuration Makefile in subdirectory mega328_fish8840_OC this options are set and 21 | the files FishTesterOC.hex and FishTesterOC.eep are generated. 22 | With this setting (no PULLUP_DISABLE) you need no modification of the LDC connections. 23 | 24 | You can also use a character display (16x2) with this printed board, 25 | if you install a additional female header (1-6) and update the processor 26 | with a program version for character display. But you should notice, 27 | that there is no current limiting resistor at pin 15 of the femal header 28 | for the anode of the background LED. If your display module is equipped 29 | with a background LED, you should check that pin 15 of your display module 30 | is not directly connected to the anode ot the LED. 31 | 32 | Some details are described in the PDF documentation about this board. 33 | You should check, if the battery voltage measurement must be modified 34 | to prevent a irregular battery consumption. 35 | -------------------------------------------------------------------------------- /Software/trunk/mega328_fish8840_OC/mega328_fish8840_OC.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E7472617374004672657175656E6379F1 29 | :1001C0000073686F72742050726F62657321005300 30 | :1001D000656C6674657374007475726E21004328D3 31 | :1001E0001E46292D636F7272656374696F6E0031EC 32 | :1001F000302D6269742050574D00662D47656E653D 33 | :100200007261746F7200537769746368206F6666F9 34 | :100210000053686F77206461746100566F6C74617D 35 | :100220006765005472616E736973746F7200536511 36 | :100230006C656374696F6E3A005465737420456E23 37 | :10024000640069736F6C6174652050726F626573CE 38 | :10025000210053656C6674657374206D6F64652E40 39 | :100260002E0054696D656F75742100206465746596 40 | :1002700063746564004E6F2C20756E6B6E6F776EC5 41 | :100280002C206F720020756E6B6E6F776E00546855 42 | :1002900079726973742E00547269616300706172BF 43 | :1002A000740064616D616765642000656D707479C8 44 | :1002B00021007765616B0054657374696E672E0069 45 | :1002C000705780508D4A6645E340E83C5E393336CE 46 | :1002D0005A33C6306D2E492C532A8428DA264E25EF 47 | :1002E000DF2389224A212020081F011E091D201C0E 48 | :1002F000431B731AAD19F1183F189517F4165A16C7 49 | :10030000C6153A15B3143214B7134013CE12611246 50 | :10031000F81193113111D31078102814141414000B 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F072F072F072F0739393B3B91 53 | :100340003B39390C000320202020202020205B5244 54 | :050350004C5D00784641 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega328_ssd1306I2C/mega328_ssd1306I2C.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E7472617374004672657175656E6379F1 29 | :1001C0000073686F72742050726F62657321005300 30 | :1001D000656C6674657374007475726E21004328D3 31 | :1001E0001E46292D636F7272656374696F6E0031EC 32 | :1001F000302D6269742050574D00662D47656E653D 33 | :100200007261746F7200537769746368206F6666F9 34 | :100210000053686F77206461746100566F6C74617D 35 | :100220006765005472616E736973746F7200536511 36 | :100230006C656374696F6E3A005465737420456E23 37 | :10024000640069736F6C6174652050726F626573CE 38 | :10025000210053656C6674657374206D6F64652E40 39 | :100260002E0054696D656F75742100206465746596 40 | :1002700063746564004E6F2C20756E6B6E6F776EC5 41 | :100280002C206F720020756E6B6E6F776E00546855 42 | :1002900079726973742E00547269616300706172BF 43 | :1002A000740064616D616765642000656D707479C8 44 | :1002B00021007765616B0054657374696E672E0069 45 | :1002C000705780508D4A6645E340E83C5E393336CE 46 | :1002D0005A33C6306D2E492C532A8428DA264E25EF 47 | :1002E000DF2389224A212020081F011E091D201C0E 48 | :1002F000431B731AAD19F1183F189517F4165A16C7 49 | :10030000C6153A15B3143214B7134013CE12611246 50 | :10031000F81193113111D31078103C1414141400F7 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F072F072F072F0739393B3B91 53 | :100340003B39390C000320202020202020205B5244 54 | :050350004C5D00784641 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega328_ssd1306SPI/mega328_ssd1306SPI.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E7472617374004672657175656E6379F1 29 | :1001C0000073686F72742050726F62657321005300 30 | :1001D000656C6674657374007475726E21004328D3 31 | :1001E0001E46292D636F7272656374696F6E0031EC 32 | :1001F000302D6269742050574D00662D47656E653D 33 | :100200007261746F7200537769746368206F6666F9 34 | :100210000053686F77206461746100566F6C74617D 35 | :100220006765005472616E736973746F7200536511 36 | :100230006C656374696F6E3A005465737420456E23 37 | :10024000640069736F6C6174652050726F626573CE 38 | :10025000210053656C6674657374206D6F64652E40 39 | :100260002E0054696D656F75742100206465746596 40 | :1002700063746564004E6F2C20756E6B6E6F776EC5 41 | :100280002C206F720020756E6B6E6F776E00546855 42 | :1002900079726973742E00547269616300706172BF 43 | :1002A000740064616D616765642000656D707479C8 44 | :1002B00021007765616B0054657374696E672E0069 45 | :1002C000705780508D4A6645E340E83C5E393336CE 46 | :1002D0005A33C6306D2E492C532A8428DA264E25EF 47 | :1002E000DF2389224A212020081F011E091D201C0E 48 | :1002F000431B731AAD19F1183F189517F4165A16C7 49 | :10030000C6153A15B3143214B7134013CE12611246 50 | :10031000F81193113111D31078103C1414141400F7 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F072F072F072F0739393B3B91 53 | :100340003B39390C000320202020202020205B5244 54 | :050350004C5D00784641 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega328_ssd1327I2C/ReadMe.txt: -------------------------------------------------------------------------------- 1 | The software is tested with a board labled "1.5inch OLED Module". 2 | This module can be configured with a I2C or with a SPI (4-wire) interface. 3 | The default configuration is the SPI interface. 4 | Please note, that the module require 3.3V signal level! 5 | Usually the I2C protocol switch the SCL and SDA down to GND signal level only. 6 | Pull-Up resistors of 10k to 3.3V are allready mounted at the Display Module. 7 | The middle contact of the "BS" jumper field must be connected to the "1" side. 8 | The 0 Ohm resistor to the "0" side must be removed. 9 | The output to the display is rather slow with the I2C interface, 10 | the 4-SPI interface is much faster. 11 | 12 | Please note, that the horizontal and vertical orientation is interchanged 13 | in the driver. One line of text is shown in Row (COM) direction. 14 | The character height is 8 pixel of 16 pixel, which will use 4 or 8 column segments. 15 | You can rotate the image by 180 degree by changing the LCD_ST7565_H_FLIP and 16 | LCD_ST7565_V_FLIP option in the Makefile. 17 | But there is currently no way to rotate the display content by 90 degree or 270 degree. 18 | Please mount the module in a correct position. 19 | -------------------------------------------------------------------------------- /Software/trunk/mega328_ssd1327I2C/mega328_ssd1327I2C.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000467213 28 | :1001B000657175656E63790073686F727420507233 29 | :1001C0006F626573210053656C66746573740074A7 30 | :1001D00075726E210043281E46292D636F72726569 31 | :1001E0006374696F6E0031302D6269742050574D11 32 | :1001F00000662D47656E657261746F720053776992 33 | :10020000746368206F66660053686F77206461745A 34 | :100210006100566F6C74616765005472616E73693A 35 | :1002200073746F720053656C656374696F6E3A0026 36 | :100230005465737420456E640069736F6C617465F6 37 | :100240002050726F626573210053656C667465732C 38 | :1002500074206D6F64652E2E0054696D656F757422 39 | :100260002100206465746563746564004E6F2C2002 40 | :10027000756E6B6E6F776E2C206F720020756E6BD3 41 | :100280006E6F776E00546879726973742E005472C1 42 | :1002900069616300706172740064616D61676564B7 43 | :1002A0002000656D70747921007765616B0054657D 44 | :1002B0007374696E672E00705780508D4A6645E3EF 45 | :1002C00040E83C5E3933365A33C6306D2E492C53E4 46 | :1002D0002A8428DA264E25DF2389224A2120200875 47 | :1002E0001F011E091D201C431B731AAD19F1183F75 48 | :1002F000189517F4165A16C6153A15B3143214B7D2 49 | :10030000134013CE126112F81193113111D31078EA 50 | :100310001014141414002F072F072F072F072F076F 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F0739393B3B3B39390C00032020202063 53 | :0903400020205B524C5D00784660 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_ssd1327SPI/ReadMe.txt: -------------------------------------------------------------------------------- 1 | The software is tested with a board labled "1.5inch OLED Module". 2 | This module can be configured with a I2C or with a SPI (4-wire) interface. 3 | The default configuration is the SPI interface. 4 | Please note, that the module require 3.3V signal level! 5 | I have used a voltage divider build with 1k and 2.2k resistors for each 6 | signal pin. 7 | Pull-Up resistors of 10k to 3.3V are allready mounted at the Display Module. 8 | The middle contact of the "BS" jumper field must be connected to the "0" side 9 | (default position of the 0 Ohm resistor). 10 | The tested modules have a connection between D1 (pin 17) and D2 (pin 18) 11 | of the display connector. This signal is routed to the DIN pin of the module. 12 | I have isolated the D2 (pin 18) connection for correct operation with the SPI interface. 13 | 14 | 15 | Please note, that the horizontal and vertical orientation is interchanged 16 | in the driver. One line of text is shown in Row (COM) direction. 17 | The character height is 8 pixel of 16 pixel, which will use 4 or 8 column segments. 18 | You can rotate the image by 180 degree by changing the LCD_ST7565_H_FLIP and 19 | LCD_ST7565_V_FLIP option in the Makefile. 20 | But there is currently no way to rotate the display content by 90 degree or 270 degree. 21 | Please mount the module in a correct position. 22 | -------------------------------------------------------------------------------- /Software/trunk/mega328_ssd1327SPI/mega328_ssd1327SPI.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000467213 28 | :1001B000657175656E63790073686F727420507233 29 | :1001C0006F626573210053656C66746573740074A7 30 | :1001D00075726E210043281E46292D636F72726569 31 | :1001E0006374696F6E0031302D6269742050574D11 32 | :1001F00000662D47656E657261746F720053776992 33 | :10020000746368206F66660053686F77206461745A 34 | :100210006100566F6C74616765005472616E73693A 35 | :1002200073746F720053656C656374696F6E3A0026 36 | :100230005465737420456E640069736F6C617465F6 37 | :100240002050726F626573210053656C667465732C 38 | :1002500074206D6F64652E2E0054696D656F757422 39 | :100260002100206465746563746564004E6F2C2002 40 | :10027000756E6B6E6F776E2C206F720020756E6BD3 41 | :100280006E6F776E00546879726973742E005472C1 42 | :1002900069616300706172740064616D61676564B7 43 | :1002A0002000656D70747921007765616B0054657D 44 | :1002B0007374696E672E00705780508D4A6645E3EF 45 | :1002C00040E83C5E3933365A33C6306D2E492C53E4 46 | :1002D0002A8428DA264E25DF2389224A2120200875 47 | :1002E0001F011E091D201C431B731AAD19F1183F75 48 | :1002F000189517F4165A16C6153A15B3143214B7D2 49 | :10030000134013CE126112F81193113111D31078EA 50 | :100310001014141414002F072F072F072F072F076F 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F0739393B3B3B39390C00032020202063 53 | :0903400020205B524C5D00784660 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_st7108/mega328_st7108.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000467213 28 | :1001B000657175656E63790073686F727420507233 29 | :1001C0006F626573210053656C66746573740074A7 30 | :1001D00075726E210043281E46292D636F72726569 31 | :1001E0006374696F6E0031302D6269742050574D11 32 | :1001F00000662D47656E657261746F720053776992 33 | :10020000746368206F66660053686F77206461745A 34 | :100210006100566F6C74616765005472616E73693A 35 | :1002200073746F720053656C656374696F6E3A0026 36 | :100230005465737420456E640069736F6C617465F6 37 | :100240002050726F626573210053656C667465732C 38 | :1002500074206D6F64652E2E0054696D656F757422 39 | :100260002100206465746563746564004E6F2C2002 40 | :10027000756E6B6E6F776E2C206F720020756E6BD3 41 | :100280006E6F776E00546879726973742E005472C1 42 | :1002900069616300706172740064616D61676564B7 43 | :1002A0002000656D70747921007765616B0054657D 44 | :1002B0007374696E672E00705780508D4A6645E3EF 45 | :1002C00040E83C5E3933365A33C6306D2E492C53E4 46 | :1002D0002A8428DA264E25DF2389224A2120200875 47 | :1002E0001F011E091D201C431B731AAD19F1183F75 48 | :1002F000189517F4165A16C6153A15B3143214B7D2 49 | :10030000134013CE126112F81193113111D31078EA 50 | :100310001014141414002F072F072F072F072F076F 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F0739393B3B3B39390C00032020202063 53 | :0903400020205B524C5D00784660 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_st7565/mega328_st7565.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E7472617374004672657175656E6379F1 29 | :1001C0000073686F72742050726F62657321005300 30 | :1001D000656C6674657374007475726E21004328D3 31 | :1001E0001E46292D636F7272656374696F6E0031EC 32 | :1001F000302D6269742050574D00662D47656E653D 33 | :100200007261746F7200537769746368206F6666F9 34 | :100210000053686F77206461746100566F6C74617D 35 | :100220006765005472616E736973746F7200536511 36 | :100230006C656374696F6E3A005465737420456E23 37 | :10024000640069736F6C6174652050726F626573CE 38 | :10025000210053656C6674657374206D6F64652E40 39 | :100260002E0054696D656F75742100206465746596 40 | :1002700063746564004E6F2C20756E6B6E6F776EC5 41 | :100280002C206F720020756E6B6E6F776E00546855 42 | :1002900079726973742E00547269616300706172BF 43 | :1002A000740064616D616765642000656D707479C8 44 | :1002B00021007765616B0054657374696E672E0069 45 | :1002C000705780508D4A6645E340E83C5E393336CE 46 | :1002D0005A33C6306D2E492C532A8428DA264E25EF 47 | :1002E000DF2389224A212020081F011E091D201C0E 48 | :1002F000431B731AAD19F1183F189517F4165A16C7 49 | :10030000C6153A15B3143214B7134013CE12611246 50 | :10031000F81193113111D31078102814141414000B 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F072F072F072F0739393B3B91 53 | :100340003B39390C00032020202020205B524C5DDB 54 | :03035000007846EC 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega328_st7565_kit/mega328_st7565_kit.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E7472617374004672657175656E6379F1 29 | :1001C0000073686F72742050726F62657321005300 30 | :1001D000656C6674657374007475726E21004328D3 31 | :1001E0001E46292D636F7272656374696F6E0031EC 32 | :1001F000302D6269742050574D00662D47656E653D 33 | :100200007261746F7200537769746368206F6666F9 34 | :100210000053686F77206461746100566F6C74617D 35 | :100220006765005472616E736973746F7200536511 36 | :100230006C656374696F6E3A005465737420456E23 37 | :10024000640069736F6C6174652050726F626573CE 38 | :10025000210053656C6674657374206D6F64652E40 39 | :100260002E0054696D656F75742100206465746596 40 | :1002700063746564004E6F2C20756E6B6E6F776EC5 41 | :100280002C206F720020756E6B6E6F776E00546855 42 | :1002900079726973742E00547269616300706172BF 43 | :1002A000740064616D616765642000656D707479C8 44 | :1002B00021007765616B0054657374696E672E0069 45 | :1002C000705780508D4A6645E340E83C5E393336CE 46 | :1002D0005A33C6306D2E492C532A8428DA264E25EF 47 | :1002E000DF2389224A212020081F011E091D201C0E 48 | :1002F000431B731AAD19F1183F189517F4165A16C7 49 | :10030000C6153A15B3143214B7134013CE12611246 50 | :10031000F81193113111D31078102514141414000E 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F072F072F072F0739393B3B91 53 | :100340003B39390C00032020202020205B524C5DDB 54 | :03035000007846EC 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega328_st7920/mega328_st7920.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000467213 28 | :1001B000657175656E63790073686F727420507233 29 | :1001C0006F626573210053656C66746573740074A7 30 | :1001D00075726E210043281E46292D636F72726569 31 | :1001E0006374696F6E0031302D6269742050574D11 32 | :1001F00000662D47656E657261746F720053776992 33 | :10020000746368206F66660053686F77206461745A 34 | :100210006100566F6C74616765005472616E73693A 35 | :1002200073746F720053656C656374696F6E3A0026 36 | :100230005465737420456E640069736F6C617465F6 37 | :100240002050726F626573210053656C667465732C 38 | :1002500074206D6F64652E2E0054696D656F757422 39 | :100260002100206465746563746564004E6F2C2002 40 | :10027000756E6B6E6F776E2C206F720020756E6BD3 41 | :100280006E6F776E00546879726973742E005472C1 42 | :1002900069616300706172740064616D61676564B7 43 | :1002A0002000656D70747921007765616B0054657D 44 | :1002B0007374696E672E00705780508D4A6645E3EF 45 | :1002C00040E83C5E3933365A33C6306D2E492C53E4 46 | :1002D0002A8428DA264E25DF2389224A2120200875 47 | :1002E0001F011E091D201C431B731AAD19F1183F75 48 | :1002F000189517F4165A16C6153A15B3143214B7D2 49 | :10030000134013CE126112F81193113111D31078EA 50 | :100310001014141414002F072F072F072F072F076F 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F0739393B3B3B39390C00032020202063 53 | :0903400020205B524C5D00784660 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_strip_grid/mega328_strip_grid.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00312D032D3320342D33307B 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706EE426 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00312D03BD 8 | :100070002D332000312D04052D77772D33200043BB 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B002D77772D002D04052D002A01205B 18 | :1001100020007A20513D0020696620002040302DCB 19 | :100120003556002D022D002D012D00202049723D55 20 | :10013000004C3D0020566C6F73733D0020455352B8 21 | :100140003D005643433D0043656C6C21002D032D5B 22 | :10015000004056673D002056743D0055663D0055F1 23 | :1001600062653D00203132333D00504E50004E500C 24 | :100170004E00433D00433D00423D002D494742545F 25 | :10018000004A464554002D4D4F53004443205077BC 26 | :1001900072204D6F6465004F4B004261742E200049 27 | :1001A0004672657175656E63790073686F7274204D 28 | :1001B00050726F626573210053656C667465737469 29 | :1001C000007475726E21004328E446292D636F7216 30 | :1001D00072656374696F6E0031302D6269742050EE 31 | :1001E000574D00662D47656E657261746F720053DE 32 | :1001F0007769746368206F66660053686F77206460 33 | :1002000061746100566F6C74616765005472616E51 34 | :10021000736973746F720053656C656374696F6E94 35 | :100220003A005465737420456E640069736F6C61A5 36 | :1002300074652050726F626573210053656C66743B 37 | :10024000657374206D6F64652E2E0054696D656F43 38 | :1002500075742100206465746563746564004E6F75 39 | :100260002C20756E6B6E6F776E2C206F7200207570 40 | :100270006E6B6E6F776E00546879726973742E00BE 41 | :10028000547269616300706172740064616D6167CA 42 | :1002900065642000656D70747921007765616B007D 43 | :1002A00054657374696E672E00705780508D4A666E 44 | :1002B00045E340E83C5E3933365A33C6306D2E494B 45 | :1002C0002C532A8428DA264E25DF2389224A21202E 46 | :1002D00020081F011E091D201C431B731AAD19F1B4 47 | :1002E000183F189517F4165A16C6153A15B3143256 48 | :1002F00014B7134013CE126112F81193113111D3B8 49 | :100300001078101D1D1D1D002F072F072F072F0709 50 | :100310002F072F072F072F072F072F072F072F072D 51 | :100320002F072F0739393B3B3B39390C000320207D 52 | :0B033000202020205B524C5D0078462E 53 | :00000001FF 54 | -------------------------------------------------------------------------------- /Software/trunk/mega328_strip_grid_dogm/mega328_strip_grid_dogm.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00312D032D3320342D33307B 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E0604 4 | :100030006D006B4D00111111131D1010041F1111D3 5 | :1000400011111F04001E0203021E0000000F0818F9 6 | :10005000080F00001113171F1713110011191D1F8E 7 | :100060001D1911001B1B1B1B1B1B1B005244533D66 8 | :10007000005B435D00312D032D332000312D04053D 9 | :100080002D77772D332000432B4553524054503168 10 | :100090003A3300664054503200203530487A0043ED 11 | :1000A0003073616D7020004330200052695F4C6FE7 12 | :1000B0003D0052695F48693D0052303D0052482F73 13 | :1000C000524C002B52482D20313220313320323314 14 | :1000D000002B524C2D20313220313320323300524C 15 | :1000E000482B0052482D005248663D005265663D3F 16 | :1000F00000494345733D00494345303D0056657214 17 | :1001000073696F6E20312E31336B002D77772D00A0 18 | :100110002D04052D002A012020007A20513D0020C9 19 | :10012000696620002040302D3556002D022D002D0F 20 | :10013000012D00202049723D004C3D0020566C6F7F 21 | :1001400073733D00204553523D005643433D0043E9 22 | :10015000656C6C21002D032D004056673D00205634 23 | :10016000743D0055663D005562653D0020313233D7 24 | :100170003D00504E50004E504E00433D00433D0068 25 | :10018000423D002D49474254004A464554002D4DFA 26 | :100190004F5300444320507772204D6F6465004FE9 27 | :1001A0004B004261742E2000436F6E747261737451 28 | :1001B000004672657175656E63790073686F72745D 29 | :1001C0002050726F626573210053656C66746573AD 30 | :1001D00074007475726E210043280646292D636FE2 31 | :1001E0007272656374696F6E0031302D62697420BC 32 | :1001F00050574D00662D47656E657261746F7200D1 33 | :10020000537769746368206F66660053686F772060 34 | :100210006461746100566F6C74616765005472614B 35 | :100220006E736973746F720053656C656374696F84 36 | :100230006E3A005465737420456E640069736F6C88 37 | :100240006174652050726F626573210053656C663E 38 | :1002500074657374206D6F64652E2E0054696D652E 39 | :100260006F75742100206465746563746564004E65 40 | :100270006F2C20756E6B6E6F776E2C206F72002066 41 | :10028000756E6B6E6F776E00546879726973742E39 42 | :1002900000547269616300706172740064616D6121 43 | :1002A0006765642000656D70747921007765616B06 44 | :1002B0000054657374696E672E00705780508D4AC4 45 | :1002C0006645E340E83C5E3933365A33C6306D2E1E 46 | :1002D000492C532A8428DA264E25DF2389224A21F5 47 | :1002E0002020081F011E091D201C431B731AAD1975 48 | :1002F000F1183F189517F4165A16C6153A15B31487 49 | :100300003214B7134013CE126112F8119311311148 50 | :10031000D31078102414141414002F072F072F075C 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F0739393B3B3B39390C000377 53 | :0D0340002020202020205B524C5D007846DC 54 | :00000001FF 55 | -------------------------------------------------------------------------------- /Software/trunk/mega328_wei_st7565/ReadMe.txt: -------------------------------------------------------------------------------- 1 | This version of Software is created for the chinese 2 | WEI_M8_LGTST_V2.1 board. 3 | This board carry a WEI_M8_LCD_LX02_V1.1 adapter board 4 | with a graphical LCD module. 5 | The controller of this LCD module is a ST7565 or compatible. 6 | The 13 pin female header has the following layout: 7 | Pin Signal 8 | 1 GND 9 | 2 VCC 10 | 3 GND LCD-CS 11 | 4 PD0 LCD-Reset 12 | 5 PD1 LCD-RS 13 | 6 PD2 LCD-SCLK 14 | 7 PD3 LCD-SI 15 | 8 VCC ISP 16 | 9 GND ISP 17 | 10 MOSI ISP 18 | 11 MISO ISP 19 | 12 SCLK ISP 20 | 13 Reset ISP 21 | The tester has a micro USB connector at the left side, 22 | which can be used to power the device and to charge 23 | a AA LiIon Accu. 24 | If the battery voltage is detected below 900mV, the tester 25 | shows the message "DC Pwr Mode" instead of the battery voltage. 26 | If you plug in a charged LiIon Accu, you must also connect 27 | the USB connector once for operating with the accu. 28 | I recommend to charge the accu before first use. 29 | You should not use the accu with a voltage below 2.8V. 30 | 31 | You can change the hardware and replace the start key with 32 | a rotary switch. Because both sides of the start key are connected, 33 | you have to cut three pcb-tracks and replace one of 34 | the tracks with a isolated wire to keep the start key function. 35 | One additional drill hole must be placed in the middle of the 36 | two holes at the outer board side for the common pin of the rotary switches. 37 | Take a look to the documentation for the details of connecting 38 | the rotary switch. You have to connect the two rotary switch 39 | connectors to PD1 (Pin 5) and PD3 (Pin 7) with 1 kOhm resistors. 40 | The common pin of the rotary switch must be connected to GND and 41 | two 10 kOhm resistors are needed also to provide 5V power to the 42 | rotary switch connectors. Don't forget to enable the 43 | rotary switch support with option WITH_ROTARY_SWITCH in the Makefile, 44 | rebuild the software and reprogram the ATmega328. 45 | 46 | =========================================================== 47 | Please note, that another simular version labled VANVELL ELC 48 | is also available! 49 | 50 | One main difference is a 12-pin female header. 51 | The layout is found by Janusz B. : 52 | Pin Signal 53 | 12 GND LCD-CS 54 | 11 PD0 LCD-Reset 55 | 10 PD1 LCD-RS 56 | 9 PD3 LCD-SI 57 | 8 PD2 LCD-SCLK 58 | 7 VCC ISP + LCD 59 | 6 GND ISP + LCD 60 | 5 150 Ohm to VCC +LED 61 | 4 MOSI ISP 62 | 3 MISO ISP 63 | 2 SCLK ISP 64 | 1 Reset ISP 65 | 66 | Please note, that the sequence of ISP-GND and ISP-VCC is different 67 | for both versions. You can not use the same ISP adapter. 68 | The signals of the LCD-Modul are also not in the same sequence! 69 | -------------------------------------------------------------------------------- /Software/trunk/mega328_wei_st7565/mega328_wei_st7565.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00310603063320342D3330C9 2 | :100010006E46284C29005245465F523D00524546E7 3 | :100020005F433D00203E3130306E460066706E1EEC 4 | :100030006D006B4D041F111111111F04001E0203EE 5 | :10004000021E0000000F0818080F00001113171FF0 6 | :100050001713110011191D1F1D1911001B1B1B1B4C 7 | :100060001B1B1B005244533D005B435D00310603E4 8 | :100070000633200031060405060708063320004336 9 | :100080002B455352405450313A330066405450325D 10 | :1000900000203530487A00433073616D7020004392 11 | :1000A00030200052695F4C6F3D0052695F48693DE6 12 | :1000B0000052303D0052482F524C002B52482D2008 13 | :1000C0003132203133203233002B524C2D2031324B 14 | :1000D0002031332032330052482B0052482D005239 15 | :1000E00048663D005265663D00494345733D004901 16 | :1000F0004345303D0056657273696F6E20312E3175 17 | :10010000336B00060708060006040506002A0120D6 18 | :1001100020007A20513D0020696620002040302DCB 19 | :10012000355600060206000601060049723D004CE5 20 | :100130003D0020566C6F73733D00204553523D00C7 21 | :100140005643433D0043656C6C21000603060040A6 22 | :1001500056673D002056743D0055663D005562656A 23 | :100160003D00203132333D0050696E2000424A5438 24 | :100170002D504E5000424A542D4E504E00433D00EB 25 | :1001800043673D006846453D002D49474254004ABB 26 | :10019000464554002D4D4F53004443205077722064 27 | :1001A0004D6F6465004F4B004261742E2000436F19 28 | :1001B0006E7472617374004672657175656E6379F1 29 | :1001C0000073686F72742050726F62657321005300 30 | :1001D000656C6674657374007475726E21004328D3 31 | :1001E0001E46292D636F7272656374696F6E0031EC 32 | :1001F000302D6269742050574D00662D47656E653D 33 | :100200007261746F7200537769746368206F6666F9 34 | :100210000053686F77206461746100566F6C74617D 35 | :100220006765005472616E736973746F7200536511 36 | :100230006C656374696F6E3A005465737420456E23 37 | :10024000640069736F6C6174652050726F626573CE 38 | :10025000210053656C6674657374206D6F64652E40 39 | :100260002E0054696D656F75742100206465746596 40 | :1002700063746564004E6F2C20756E6B6E6F776EC5 41 | :100280002C206F720020756E6B6E6F776E00546855 42 | :1002900079726973742E00547269616300706172BF 43 | :1002A000740064616D616765642000656D707479C8 44 | :1002B00021007765616B0054657374696E672E0069 45 | :1002C000705780508D4A6645E340E83C5E393336CE 46 | :1002D0005A33C6306D2E492C532A8428DA264E25EF 47 | :1002E000DF2389224A212020081F011E091D201C0E 48 | :1002F000431B731AAD19F1183F189517F4165A16C7 49 | :10030000C6153A15B3143214B7134013CE12611246 50 | :10031000F81193113111D3107810371414141400FC 51 | :100320002F072F072F072F072F072F072F072F071D 52 | :100330002F072F072F072F072F072F0739393B3B91 53 | :100340003B39390C00032020202020205B524C5DDB 54 | :03035000007846EC 55 | :00000001FF 56 | -------------------------------------------------------------------------------- /Software/trunk/mega644_LCD2004/mega644_LCD2004.eep: -------------------------------------------------------------------------------- 1 | :1000000014141414002F072F072F072F072F072F63 2 | :10001000072F072F072F072F072F072F072F072F30 3 | :0D0020000739393B3B3B39390C000378466A 4 | :00000001FF 5 | -------------------------------------------------------------------------------- /Software/trunk/mega644_T7_Mod/mega644_T7-Mod.eep: -------------------------------------------------------------------------------- 1 | :10000000496473733D00206574613D00554A540096 2 | :1000100050555400310603063320342D33306E46DC 3 | :10002000284C29005245465F523D005245465F43E9 4 | :100030003D00203E3130306E460066706E1E6D0011 5 | :100040006B4D041F111111111F04001E0203021E2B 6 | :100050000000000F0818080F00001113171F1713D6 7 | :10006000110011191D1F1D1911001B1B1B1B1B1B30 8 | :100070001B005244533D005B435D003106030633D1 9 | :1000800020003106040506070806332000432B45EF 10 | :100090005352405450313A3300664054503200209D 11 | :1000A0003530487A00433073616D70200043302052 12 | :1000B0000052695F4C6F3D0052695F48693D0052D4 13 | :1000C000303D0052482F524C002B52482D203132E7 14 | :1000D000203133203233002B524C2D20313220314D 15 | :1000E000332032330052482B0052482D00524866CC 16 | :1000F0003D005265663D00494345733D0049434517 17 | :10010000303D0056657273696F6E20312E31336B4E 18 | :1001100000060708060006040506002A0120200044 19 | :100120007A20513D0020696620002040302D355650 20 | :10013000000602060006010600566578743D004977 21 | :10014000723D004C3D0020566C6F73733D0020459E 22 | :1001500053523D005643433D0043656C6C210006FD 23 | :100160000306004056673D002056743D0055663D2D 24 | :10017000005562653D00203132333D0050696E20EC 25 | :1001800000424A542D504E5000424A542D4E504E7B 26 | :1001900000433D0043673D006846453D002D49470B 27 | :1001A0004254004A464554002D4D4F5300444320CD 28 | :1001B000507772204D6F6465004F4B004261742E82 29 | :1001C00020004372797374616C2020004365722EA5 30 | :1001D0007265736F6E61746F722020004672657174 31 | :1001E00075656E63790073686F72742050726F6208 32 | :1001F0006573210053656C66746573740074757261 33 | :100200006E210043281E46292D636F727265637448 34 | :10021000696F6E00726F7461727920656E636F64CE 35 | :1002200065720031302D6269742050574D00662D83 36 | :1002300047656E657261746F7200537769746368A5 37 | :10024000206F66660053686F7720646174610056A2 38 | :100250006F6C74616765005472616E736973746F5B 39 | :10026000720053656C656374696F6E3A0054657310 40 | :100270007420456E640069736F6C61746520507200 41 | :100280006F626573210053656C6674657374206DCD 42 | :100290006F64652E2E0054696D656F7574210020A2 43 | :1002A0006465746563746564004E6F2C20756E6BB5 44 | :1002B0006E6F776E2C206F720020756E6B6E6F778D 45 | :1002C0006E00546879726973742E005472696163A8 46 | :1002D00000706172740064616D616765642000651F 47 | :1002E0006D70747921007765616B00546573746972 48 | :1002F0006E672E00705780508D4A6645E340E83C9B 49 | :100300005E3933365A33C6306D2E492C532A842831 50 | :10031000DA264E25DF2389224A212020081F011ECC 51 | :10032000091D201C431B731AAD19F1183F189517AE 52 | :10033000F4165A16C6153A15B3143214B7134013EF 53 | :10034000CE126112F81193113111D31078101414D8 54 | :100350001414002F072F072F072F072F072F072F02 55 | :10036000072F072F072F072F072F072F072F0739D3 56 | :10037000393B3B3B39390C00032020202020202032 57 | :100380002020205B524C5D00784670617220007323 58 | :0803900065722000436D3D0081 59 | :00000001FF 60 | -------------------------------------------------------------------------------- /Software/trunk/mega644_hiland_m644/ReadMe.txt: -------------------------------------------------------------------------------- 1 | This is the configuration for yet another chinese board, which is named 2 | "Original Hiland M644 Transistor Tester LCR Diode Transistor Zener Quartz 3 | Measurement Frequency Counter PWM Square Wave Generator Online ESR" =). It is 4 | built on ATmega644PA and uses ST7565-based LCD display (original part number 5 | is "JLX12864G-378 Ver2.0"). 6 | 7 | In-system programming connector is located right under the display connector, 8 | labeled as "IDE" on PCB and has following pinout (from left to right): 9 | 1) /Reset 10 | 2) SCK 11 | 3) MISO 12 | 4) MOSI 13 | 5) +5V 14 | 6) GND 15 | -------------------------------------------------------------------------------- /Software/trunk/mega644_hiland_m644/mega644_hiland_m644.eep: -------------------------------------------------------------------------------- 1 | :100000002814141414002F072F072F072F072F076A 2 | :100010002F072F072F072F072F072F072F072F0730 3 | :0E0020002F0739393B3B3B39390C000378463A 4 | :00000001FF 5 | -------------------------------------------------------------------------------- /Software/trunk/mega644_ssd1306I2C/mega644_ssd1306I2C.eep: -------------------------------------------------------------------------------- 1 | :100000001914141414002F072F072F072F072F0779 2 | :100010002F072F072F072F072F072F072F072F0730 3 | :0E0020002F0739393B3B3B39390C000378463A 4 | :00000001FF 5 | -------------------------------------------------------------------------------- /Software/trunk/mega8/TransistorTestorig.eep: -------------------------------------------------------------------------------- 1 | :08000000041F1F0E0E041F0473 2 | :00000001FF 3 | -------------------------------------------------------------------------------- /Software/trunk/mega8/mega8.eep: -------------------------------------------------------------------------------- 1 | :1000000066706EE46D006B4D001E0203021E000060 2 | :10001000000F0818080F00001113171F1713110005 3 | :1000200011191D1F1D1911001B1B1B1B1B1B1B0066 4 | :1000300056657273696F6E20312E31336B002D045B 5 | :10004000052D002A012020002D022D002D012D005C 6 | :100050005643433D0043656C6C21002D032D004049 7 | :1000600056673D002056743D0055663D005562655B 8 | :100070003D00203132333D00504E50004E504E0076 9 | :10008000433D00433D00423D002D49474254004A54 10 | :10009000464554002D4D4F53004F4B004261742E86 11 | :1000A000200054696D656F75742100206465746566 12 | :1000B00063746564004E6F2C20756E6B6E6F776E87 13 | :1000C0002C206F720020756E6B6E6F776E00546817 14 | :1000D00079726973742E0054726961630070617281 15 | :1000E000740064616D616765642000656D7074798A 16 | :1000F00021007765616B0054657374696E672E002B 17 | :100100003F575250634A3E45BE40C53C3D391536C7 18 | :100110003D33AA30532E302C3B2A6D28C426392576 19 | :10012000CB23762237210E20F61EF01DF91C101C61 20 | :10013000341B641A9E19E31831188817E7164D16F8 21 | :10014000BA152E15A8142714AC133513C412571260 22 | :0E015000EE1189112711C9106F101D1D1D1D04 23 | :00000001FF 24 | -------------------------------------------------------------------------------- /Software/trunk/message_key_released.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "Transistortester.h" 4 | 5 | 6 | //================================================================= 7 | // Clear display, show Message XX_str and wait for key release 8 | 9 | #if FLASHEND > 0x3fff 10 | void message_key_released(const unsigned char XX_str[]) { 11 | 12 | uint8_t times; 13 | //#ifdef WITH_ROTARY_SWITCH 14 | // lcd_line1(); 15 | // lcd_clear_line(); 16 | // lcd_line2(); 17 | // lcd_clear_line(); 18 | // lcd_line1(); 19 | //#else 20 | lcd_clear(); 21 | //#endif 22 | lcd_MEM2_string(XX_str); // display MEM2_str in row 1 23 | for (times=0;times<100;times++) { 24 | wait_about10ms(); 25 | if((RST_PIN_REG & (1< 5 | #include 6 | #include "config.h" 7 | #include 8 | 9 | #define RCALL rcall 10 | 11 | .GLOBAL sleep_5ms 12 | .func sleep_5ms 13 | .GLOBAL sleep_10ms 14 | .extern wait5ms 15 | 16 | .section .text 17 | 18 | #define DELAY_10ms (((F_CPU_HZ / 100) - RESTART_DELAY_TICS) / TICS_PER_T2_COUNT) 19 | 20 | #define DELAY_5ms (((F_CPU_HZ / 200) - RESTART_DELAY_TICS) / TICS_PER_T2_COUNT) 21 | 22 | 23 | ;/* set the processor to sleep state */ 24 | ;/* wake up will be done with compare match interrupt of counter 2 */ 25 | sleep_10ms: 26 | ldi r24,2 27 | ; void sleep_5ms(uint8_t spause){ 28 | sleep_5ms: 29 | ; push r0 30 | ; push r20 31 | ; push r21 32 | ldi r25, 0x00 ; pause = spause; 33 | cpi r24, 201 34 | brcs wloop ; if (spause > 200) 35 | 36 | 37 | ;// spause = 202 = 2s 38 | ;// spause = 203 = 3s 39 | ;// spause = 204 = 4s 40 | ;// spause = 205 = 5s 41 | subi r24, 0xC8 ; 200 pause = (spause-200) * 200; 42 | ldi r20, 0xC8 ; 200 43 | mul r24, r20 ; (spause-200) * 200 44 | movw r24, r0 ; r24:25 = (spause-200) * 200 45 | eor r1, r1 46 | 47 | wloop: 48 | sbiw r24, 0x00 ; 0 while (pause > 0) 49 | brne check_remain 50 | ; sts TIMSK2, r1 ; TIMSK2 = (0< RESTART_DELAY_TICS 59 | lds r20, TCCR1B ; if (TCCR1B & ((1< 1) 70 | sbiw r24, 0x02 ; pause -= 2; 71 | ; // Startup time is too long with 1MHz Clock!!!! 72 | ldi r21, DELAY_10ms ; /* set to 10ms above the actual counter */ 73 | rjmp set_cntr 74 | 75 | only_one: 76 | ldi r21, DELAY_5ms ; /* set to 5ms above the actual counter */ 77 | ldi r24, 0x00 ; pause = 0; 78 | ldi r25, 0x00 ; 0 79 | 80 | set_cntr: 81 | lds r20, TCNT2 82 | add r20, r21 ; + t2_offset 83 | sts OCR2A, r20 ; OCR2A = TCNT2 + t2_offset; /* set the compare value */ 84 | ldi r20, ((0< 2 | #include 3 | #include 4 | #include 5 | #include "Transistortester.h" 6 | 7 | /* set the processor to sleep state */ 8 | /* wake up will be done with compare match interrupt of counter 2 */ 9 | void sleep_5ms(uint8_t spause){ 10 | uint16_t pause; // pause is the delay in 5ms units 11 | uint8_t t2_offset; 12 | 13 | pause = spause; 14 | // spause = 202 = 2s 15 | // spause = 203 = 3s 16 | // spause = 204 = 4s 17 | // spause = 205 = 5s 18 | if (spause > 200) { 19 | pause = (spause-200) * 200; 20 | } 21 | 22 | while (pause > 0) 23 | { 24 | #if (F_CPU / 400) > RESTART_DELAY_TICS 25 | /* 2 ms are more tics than RESTART_DELAY_TICS */ 26 | if ((TCCR1B & ((1< 1) 32 | { 33 | t2_offset = ((F_CPU / 100) - RESTART_DELAY_TICS) / TICS_PER_T2_COUNT; 34 | pause -= 2; 35 | } else { 36 | t2_offset = ((F_CPU / 200) - RESTART_DELAY_TICS) / TICS_PER_T2_COUNT; 37 | pause = 0; 38 | } 39 | 40 | OCR2A = TCNT2 + t2_offset; /* set the compare value */ 41 | TIMSK2 = (0< 5 | #include "config.h" 6 | 7 | #define bitcnt r18 8 | #define temp r21 9 | 10 | #define Txbyte r24 11 | 12 | #define SER_PORT _SFR_IO_ADDR(SERIAL_PORT) 13 | #define SER_DDR _SFR_IO_ADDR(SERIAL_DDR) 14 | 15 | ;* Software-UART nach Atmel AVR-Application-Note AVR305 16 | 17 | ;*************************************************************************** 18 | ;* 19 | ;* "putchar" 20 | ;* 21 | ;* This subroutine transmits the byte stored in the "Txbyte" register 22 | ;* Low registers used :None 23 | ;* High registers used :2 (bitcnt,Txbyte) 24 | ;* Pointers used :None 25 | ;* 26 | ;*************************************************************************** 27 | 28 | .func uart_putc 29 | .global uart_putc 30 | .extern wait100us 31 | .extern wait3us 32 | 33 | .section .text 34 | uart_putc: 35 | #if defined(WITH_UART) && (!defined(WITH_HARDWARE_SERIAL)) 36 | ; push bitcnt 37 | ; in temp,_SFR_IO_ADDR(SREG) 38 | push Txbyte ; save character 39 | push bitcnt ; save register used for bit count 40 | ldi bitcnt,10 ;1+8+sb (sb is # of stop bits) 41 | com Txbyte ;Inverte everything 42 | sbi SER_DDR,SERIAL_BIT ; enable output of serial bit 43 | sec ;Start bit 44 | 45 | putchar0: brcc putchar1 ;If carry set 46 | #ifdef SWUART_INVERT 47 | sbi SER_PORT,SERIAL_BIT ; send a '0' 48 | #else 49 | cbi SER_PORT,SERIAL_BIT ; send a '0' 50 | #endif 51 | rjmp putchar2 ;else 52 | 53 | putchar1: 54 | #ifdef SWUART_INVERT 55 | cbi SER_PORT,SERIAL_BIT ; send a '1' 56 | #else 57 | sbi SER_PORT,SERIAL_BIT ; send a '1' 58 | #endif 59 | nop 60 | 61 | putchar2: 62 | rcall wait100us ; about 9600 Baud 63 | #if F_CPU >= 8000000UL 64 | rcall wait3us 65 | #endif 66 | lsr Txbyte ;Get next bit 67 | dec bitcnt ;If not all bit sent 68 | brne putchar0 ; send next 69 | ;else 70 | pop bitcnt ; restore register used for bit count 71 | pop Txbyte ; restore character send 72 | ; out _SFR_IO_ADDR(SREG),temp 73 | ; pop bitcnt 74 | #endif /* defined(WITH_UART) && (!defined(WITH_HARDWARE_SERIAL)) */ 75 | #ifdef WITH_HARDWARE_SERIAL 76 | ; wait for empty transmit buffer 77 | w3: 78 | lds r25, UCSR0A 79 | sbrs r25, UDRE0 80 | rjmp w3 ; wait 81 | AOUT UDR0, r24 ; put data to transmit buffer 82 | #endif /* def WITH_HARDWARE_SERIAL */ 83 | ret ; return 84 | 85 | .endfunc 86 | 87 | 88 | -------------------------------------------------------------------------------- /Software/trunk/tt_globals.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mikrocontroller-net/transistortester/1e5674f98f862a9c4e86c0ebb8cd01745c9e88ad/Software/trunk/tt_globals.h -------------------------------------------------------------------------------- /Software/trunk/tt_resistor.h: -------------------------------------------------------------------------------- 1 | #if defined(MAIN_C) 2 | unsigned long ResistorVal[3]; // Values of resistor 0:1, 0:2, 1:2 3 | uint8_t ResistorList[3]; // list of the found resistor Numbers 4 | uint8_t ResistorChecked[3]; // 2, if resistor is checked in both directions 5 | uint8_t ResistorsFound; //Number of found resistors 6 | 7 | #if FLASHEND > 0x1fff 8 | unsigned long inductor_lx; // inductance 10uH or 100uH 9 | int8_t inductor_lpre; // prefix for inductance 10 | #endif 11 | 12 | #else /* no main */ 13 | 14 | extern unsigned long ResistorVal[3]; // Values of resistor 0:1, 0:2, 1:2, in units of 0.1 ohms 15 | extern uint8_t ResistorList[3]; // list of the found resistor Numbers 16 | extern uint8_t ResistorChecked[3]; // 2, if resistor is checked in both directions 17 | extern uint8_t ResistorsFound; //Number of found resistors 18 | 19 | #if FLASHEND > 0x1fff 20 | extern unsigned long inductor_lx; // inductance 10uH or 100uH 21 | extern int8_t inductor_lpre; // prefix for inductance 22 | #endif 23 | #endif 24 | 25 | #ifdef SamplingADC 26 | // these belong to the LC resonant frequency measurement 27 | extern uint32_t lc_fx; // measured resonant frequency 28 | #define lc_fpre 0 // ... and its (fixed) prefix 29 | extern uint16_t lc_qx; // measured resonance Q 30 | #define lc_qpre -1 // ... fixed prefix for Q: units of 10^{-1} 31 | extern uint32_t lc_lx; // measured inductance using the samplingADC method 32 | #define lc_lpre -9 // ... and fixed prefix 33 | extern uint16_t lc_cpar; // value of parallel capacitor used for calculating inductance, in pF 34 | extern uint16_t lc_cpartmp; // used to "exfiltrate" the raw capacitance value from ReadCapacitance() 35 | extern const uint16_t lc_cpar_ee EEMEM; // place for lc_cpar as calibration constant in eeprom 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /Software/trunk/wait1000ms.h: -------------------------------------------------------------------------------- 1 | // Definitions of wait loops (assembly coded) 2 | void wait5s(void); 3 | void wait4s(void); 4 | void wait3s(void); 5 | void wait2s(void); 6 | void wait1s(void); 7 | void wait1000ms(void); 8 | void wait500ms(void); 9 | void wait400ms(void); 10 | void wait300ms(void); 11 | void wait200ms(void); 12 | void wait100ms(void); 13 | void wait50ms(void); 14 | void wait40ms(void); 15 | void wait30ms(void); 16 | void wait20ms(void); 17 | void wait10ms(void); 18 | void wait5ms(void); 19 | void wait4ms(void); 20 | void wait3ms(void); 21 | void wait2ms(void); 22 | void wait1ms(void); 23 | void wait500us(void); 24 | void wait400us(void); 25 | void wait300us(void); 26 | void wait200us(void); 27 | void wait100us(void); 28 | void wait50us(void); 29 | void wait40us(void); 30 | void wait30us(void); 31 | void wait20us(void); 32 | void wait10us(void); 33 | // for 1 MHz clock is wait10us the last useable function! 34 | void wait5us(void); 35 | void wait4us(void); 36 | void wait3us(void); 37 | void wait2us(void); 38 | void wait1us(void); //only possible at clock frequency of 8 MHz 39 | void wait500ns(void); //only possible at clock frequency of 16 MHz 40 | 41 | --------------------------------------------------------------------------------