Hoi allemaal,

Ik heb een schakeling met een MAX7219CNG die 3x 7-segment displays aanstuurt via een microcontroller.

Het enige wat ik eruit krijg zijn alle decimale punten die oplichten en de rest is uit.

Ook als ik de datalijnen niet verbind en de MAX7219 enkel +5V geef, blijft dit hetzelfde.

Volgens mij ligt het niet aan de software, want ik heb een aantal jaar geleden dezelfde software gebruikt en deze werkte toen prima.

Weet er iemand hier wat er fout kan zijn ?

Hieronder het deel van de software dat de datalijnen aanstuurt:
(Ik werk met een Atmel AT89C51CC03 controller (8051 compatibel)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
OUT16L:	NOP
	NOP
	NOP
	NOP
	MOV	A,ADDR
	RLC	A
	MOV	DINL,C		;BIT 15
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 14
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 13
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 12
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 11
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 10
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 9
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 8
	LCALL	KLOKL

	MOV	A,REGI
	RLC	A
	MOV	DINL,C		;BIT 7
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 6
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 5
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 4
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 3
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 2
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 1
	LCALL	KLOKL
	RLC	A
	MOV	DINL,C		;BIT 0
	NOP
	NOP
	SETB	CLKL
	NOP
	NOP
	SETB	LDL		;load display
	NOP
	NOP
	NOP
	NOP
	CLR	CLKL
	NOP
	CLR	LDL
	NOP
	NOP
	NOP
	NOP
	NOP
	RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KLOKL:	NOP
	NOP
	NOP
	NOP
	SETB	CLKL
	NOP
	NOP
	NOP
	NOP
	CLR	CLKL
	NOP
	NOP
	NOP
	NOP
	RET

Waarom gebruik je de SPI niet?

Is de klok-frequentie van de Atmel controller misschien te hoog waardoor er timing problemen ontstaan richting MAX7219?

Daarom zou ik ook de SPI gebruiken, dan is de clock gedefinieerd.
Waarom bitbangen terwijl dat niet nodig is? (er is een SPI peripheral aan boord)

Is dit niet de code voor een HC595 ?
Klopt je LOAD of /CS lijn sturing zo wel ?
Bij SPI is de /CS lijn laag gedurende de hele bit-trein en gaat omhoog aan het einde. Bij de HC595 geef je alleen een puls aan het einde, dat laatste zie ik ook in jouw code.

Bedankt allemaal voor het antwoorden.
Hierbij wat feedback:

Ik ben al wat verder geraakt...

Het lag aan de PCB layout.
Ik heb een oud printje van me gevonden voor de MAX7219 deze werkt wel met mijn software en controller.

Waarom het niet werkt met het nieuwe printje is me nog niet geheel duidelijk.

Tenslotte:
@Arco, ik gebruik de AT89C51CC03 met PLCC44 voet en deze heeft geen SPI.

Hierbij een printscreen van mijn nieuwe print (waarbij ik dus enkel Decimale punten krijg)

PS: het ligt niet aan de linkse elco. Je ziet dat zijn beide pootjes verbonden zijn met +Vcc. Dit heb ik al gecorigeerd.

[Bericht gewijzigd door kohen op (11%)]

ik gebruik de AT89C51CC03 met PLCC44 voet en deze heeft geen SPI.

Da's dan zeker al een bejaard beestje...
(bij pic's hebben alle modellen van de laatste 25 jaar standaard SPI/i2c)

Op 18 november 2023 23:46:27 schreef Arco:
[...]
Da's dan zeker al een bejaard beestje...
(bij pic's hebben alle modellen van de laatste 25 jaar standaard SPI/i2c)

Ik ben ook al een oud beestje ondertussen :D

* Zijn alle via's goed doorgemetalliseerd?
* Waarom is pin 8 van het middelste display niet aangesloten?
* Zou je misschien een schema kunnen posten?

Er zit een fout in de pcb layout (ontstoring of iets anders?) maar ik weet begot niet wat ?

- Ik heb de lijnen doorgemeten en de via's zijn goed.
- Pin 8 van de display is intern doorverbonden met pin 3
- Blokschema:

Is die MAX7219 wel ok? Misschien kun je hem wisselen met die op het oude printje?

Op 19 november 2023 09:46:10 schreef KGE:
Is die MAX7219 wel ok? Misschien kun je hem wisselen met die op het oude printje?

Heb ik al geprobeerd ;) IC's zijn ok

Is de clock-frequentie van de Atmel niet te hoog?

Op 19 november 2023 09:52:38 schreef kohen:
[...]

Heb ik al geprobeerd ;) IC's zijn ok

Sturing is drie lijntjes, die piep je zo door, de aansluitingen naar display net zo.

Spanning op de MAX is wel correct?

Niet per ongeluk Common Anode displays er op gezet?

Snelheid zou met 'bit bangen' niet snel te hoog zijn. De oude 8051 serie deed CLK/12 per 'tik' de latere Atmels zijn wel sneller maar dan nog..

Blijft het feit dat je de /CS lijn pas aan het einde hoog maakt en laag laat gedurende de rest van de tijd. Zou theoretisch wel moeten kunnen maar het is netter de /CS lijn laag te maken vlak voordat je begint met data in te klokken en dan na het laatste bit de lijn omhoog zetten. (net zoals bij SPI)

[Bericht gewijzigd door KGE op (24%)]

Die "drie lijnen van de besturing" die zijn het waarschijnlijk niet:

ook zonder software gebeurt dit heb ik begrepen.

Dan is belangrijk: Is de pinout van je segmenten-display en van je max chipje goed?

Je kan kijken of je met je multimeter in diode-meet-stand een oplichtende led krijgt als je een combinatie meet waar een led tussen zit.

Het zal iets zijn als segmenten display omgekeerd in de socket of common anode vs common kathode.

Op 19 november 2023 12:43:32 schreef Bobosje:
Is de clock-frequentie van de Atmel niet te hoog?

Nee, want met een ander printje en dezelfde software werkt het wel.

Hierbij 2 fotos: Ik heb voor de gein een 2e printje gemaakt en dit geeft hetzelfde.

Zoals je ziet werkte het oude (kleine) printje wel:

Op 19 november 2023 13:26:17 schreef KGE:
[...]

Sturing is drie lijntjes, die piep je zo door, de aansluitingen naar display net zo.

Spanning op de MAX is wel correct?

Niet per ongeluk Common Anode displays er op gezet?

Snelheid zou met 'bit bangen' niet snel te hoog zijn. De oude 8051 serie deed CLK/12 per 'tik' de latere Atmels zijn wel sneller maar dan nog..

Blijft het feit dat je de /CS lijn pas aan het einde hoog maakt en laag laat gedurende de rest van de tijd. Zou theoretisch wel moeten kunnen maar het is netter de /CS lijn laag te maken vlak voordat je begint met data in te klokken en dan na het laatste bit de lijn omhoog zetten. (net zoals bij SPI)

ik heb alles al meerdere malen doorgepiept.
Spanning op de MAX is +5V gemeten.
Ik maak de /CS lijn al laag voor ik begin met in te klokken, maar ik kan proberen ze nog eens laag te zetten aan het begin van mijn code...

Maar toch,... hieraan kan het niet liggen, want met een oud en kleiner printje werkte het wel. Met dezelfde software.

Nogmaals, ik vrees dat er iets mis is met het nieuwe (grote) printje.

Op 19 november 2023 13:51:10 schreef kohen:
[...]
Nogmaals, ik vrees dat er iets mis is met het nieuwe (grote) printje.

Heb je ook op onderlinge sluiting gecontroleerd? Misschien dat er iets aan elkaar zit wat niet aan elkaar moet zitten..

Wat ik wel vreemd vind is dat de via's geen gaatjes hebben en dat de baantjes toch goed doorpiepen.

Printjes komen van JLCPCB

Is dit een nieuw soort van via's of zou hier toch iets mis mee zijn ?

De via's hebben toch gewoon gaatjes???

Misschien een domme vraag: de displays zitten toch niet ondersteboven op de print? :+

[Bericht gewijzigd door Arco op (45%)]

Het zijn normale via's en ze hebben wel gaatjes (kleine diameter). Je ziet de gaatjes niet goed omdat het groene soldeermasker eroverheen ligt en de via gaatjes opvult.

Op 19 november 2023 14:40:28 schreef Arco:
De via's hebben toch gewoon gaatjes???

[bijlage]

Ja, ik denk ook dat er niets mis mee is. Ik dacht dat ze altijd gaatjes moesten hebben waar je doorheen kon kijken, maar op de site van JLCPCB staat het goed uitgelegd.

Ze zijn van het type 'tented', dus gevuld met soldermask.

Ook meten ze goed door. Dus dat is ok.

Op 19 november 2023 14:40:28 schreef Arco:

Misschien een domme vraag: de displays zitten toch niet ondersteboven op de print? :+

Nee, dat is het ook niet.

En de displays zijn common cathode wat ook goed is.

Heb je het oude schema en het oude printje 1:1 vergeleken met het nieuwe schema en het nieuwe printje?

Op 19 november 2023 09:40:40 schreef kohen: Pin 8 van de display is intern doorverbonden met pin 3

Maar bij de beide andere displays heb je die wél alletwee aangesloten, vandaar.