Ik heb 2 movingheads waarvan de stuurprinten missen. Nu heb ik vandaag eenzelfde erbij gekocht die het nog prima doet en wil ik de print "na maken" met zelf geprogrammeerde microcontrollers (AVR). Het probleem is echter dat bij de gebruikte microcontrollers (3 identieke) grotendeels de typenummers eraf gevijld zijn... Nu heb ik ze allen op de scanner gelegd, met een hoge DPI gescanned en met behulp van fotosoep ze over elkaar gelegd en ben tot een logo'tje en een gedeelte van een nummer gekomen. Het de fabrikant/logo is mij echter niet bekend en ik kan deze niet terug vinden in de logo db van t.net Is er misschien iemand die het logo danwel de microcontroller herkend ?

Ohja.. het zijn 42 Pins DIP chips met een afwijkende pin afstand (~1.7mm)

Misschien heb je het over het hoofd gezien, maar eh, Myson Technology?

Krijg nou ***** heb er idd overheen gekeken... |:(

*gaat weer verder met googlen

hm, dmx gaan ontvangen met een avr, t kon wel eens lastig worden. heb je ook al eens gekeken naar de chipies van the willows?

DMX ontvangen met avr lastig ? nee hoor.. heb ik al vaak zat gedaan =) gewoon de USART goed instellen, tellertje bijhouden, en zodra je een FE (Frame error) krijgt de teller resetten..

[edit] B.t.w... de chippies van the willows zijn ook AVR's :P

Denk dat ik (met dank aan flipflop's reactie) de chip in kwestie heb gevonden... MTV212MS64 nu alleen nog een datascheet vinden voor de pinbezettingen en aan het ontwerpen en proggen slaan =)

@fossalta

Heb je een site waar je projecten opstaan? of wil je wat code delen? ben altijd wel geïntereseerd in avr code, zeker mbt DMX. Welke taal is het in geschreven?

Heb nog niet echt een site voor m'n elektronica projecten, maar ben wel van plan er een voor te maken. Dit movinghead project zal daar uiteraard bij komen te staan.

Ik gebruik over het algemeen avrlib-c, maar soms ook de die-hard assembler (afhankelijk van complexiteit). Complete stukken code zet ik liever niet online, maar wil best m'n DMX-IN routine hier posten. Zal morgen even opzoek naar de betreffende files, want nu is het tijd voor ZZZzzzzzzz

Prachtig jatwerk :P Idem voor de SMD Codes...

[Bericht gewijzigd door Henry S. op ]

Zoals beloofd hierbij de dmx_in routine die ik meestal gebruik. Heb hem net even gestript van overbodige code, maar weet niet 100% zeker of ie nu klopt (heb winavr niet geinstalleerd op deze computer)

dmx_in.h:


#ifndef __DMX_IN_H__
#define __DMX_IN_H__

#define START_CODE 0

void dmx_in_init(void);

#endif

dmx_in.c:


/*
  DMX INPUT routine for AVR microcontrollers.

  Created by L. Fridsma

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License v2.0 as published by
  the Free Software Foundation.
 */

#include <avr/interrupt.h>

#include "dmx_in.h"

uint16_t	dmx_chan_counter	= 0;
uint8_t		dmx_start_code		= 0;

void dmx_in_init(void) {
	// For testing set DDRA to output and show the DMX value of channel 3
	DDRA = 0xFF;
	// Set USART control registers (Input, interrupt enabled, 8 databits, 
	// 2 stopbits, no parity)
	UCSRB = (1 << RXCIE) | (1 << RXEN);
	UCSRC = (1 << URSEL) | (1 << USBS) | (3 << UCSZ0);
	
	// Set for 16Mhz
	UBRRL = 3;
	UBRRH = 0;
	// Enable global interrupts
	sei();
}

ISR(USART_RXC_vect) {
	// Check for frame-error (= break)
	if (UCSRA & (1 << FE)) {
		// reset channel counter
		dmx_chan_counter = 0;
		// Read UDR to clear receive buffer
		UDR;
	}
	else {
		uint8_t c = UDR;
		// First byte received is startcode
		if (dmx_chan_counter == 0) {
			dmx_start_code = c;
		}
		else if (dmx_start_code == START_CODE) {
			// Do your thing here. The current channel is in the dmx_chan_counter and the value is in "c"
			
			// Test: Set port A to value if channel is 3
			if (dmx_chan_counter == 3) {
				PORTA = c;
			}
			
			// Note: Don't use this routine to do time-sensitive or time-
			// consuming things, because the interrupt is quite fast and you
			// could miss frames if your routines take too long.
		}
		dmx_chan_counter++;
	}
}

Is het zo simpel???

Ik heb weinig ervaring nog met C, maar als dat alles is wat nodig is een DMX waarde uit te lezen...

Iig bedankt voor het delen van je code, hou ons op de hoogte van je projecten:)