mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-03 23:02:34 +01:00 
			
		
		
		
	Oops - PDI handshake delay was too long, causing the device's /RESET functionality to be re-enabled.
This commit is contained in:
		
							parent
							
								
									97f7cd947b
								
							
						
					
					
						commit
						75d27f8ef0
					
				@ -152,9 +152,11 @@ void XPROGTarget_EnableTargetPDI(void)
 | 
				
			|||||||
	DDRD |=  (1 << 5) | (1 << 3);
 | 
						DDRD |=  (1 << 5) | (1 << 3);
 | 
				
			||||||
	DDRD &= ~(1 << 2);
 | 
						DDRD &= ~(1 << 2);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/* Set DATA line high for at least 90ns to disable /RESET functionality */
 | 
						/* Set DATA line high for at least 90ns to disable /RESET functionality (note: too long will enable it again,
 | 
				
			||||||
 | 
						 * so a fixed number of NOPs are used here */
 | 
				
			||||||
	PORTD |= (1 << 3);
 | 
						PORTD |= (1 << 3);
 | 
				
			||||||
	_delay_ms(1);
 | 
						asm volatile ("NOP"::);
 | 
				
			||||||
 | 
						asm volatile ("NOP"::);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/* Set up the synchronous USART for XMEGA communications - 
 | 
						/* Set up the synchronous USART for XMEGA communications - 
 | 
				
			||||||
	   8 data bits, even parity, 2 stop bits */
 | 
						   8 data bits, even parity, 2 stop bits */
 | 
				
			||||||
@ -166,9 +168,11 @@ void XPROGTarget_EnableTargetPDI(void)
 | 
				
			|||||||
	BITBANG_PDIDATA_DDR  |= BITBANG_PDIDATA_MASK;
 | 
						BITBANG_PDIDATA_DDR  |= BITBANG_PDIDATA_MASK;
 | 
				
			||||||
	BITBANG_PDICLOCK_DDR |= BITBANG_PDICLOCK_MASK;
 | 
						BITBANG_PDICLOCK_DDR |= BITBANG_PDICLOCK_MASK;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/* Set DATA line high for at least 90ns to disable /RESET functionality */
 | 
						/* Set DATA line high for at least 90ns to disable /RESET functionality (note: too long will enable it again,
 | 
				
			||||||
 | 
						 * so a fixed number of NOPs are used here */
 | 
				
			||||||
	BITBANG_PDIDATA_PORT |= BITBANG_PDIDATA_MASK;
 | 
						BITBANG_PDIDATA_PORT |= BITBANG_PDIDATA_MASK;
 | 
				
			||||||
	_delay_ms(1);
 | 
						asm volatile ("NOP"::);
 | 
				
			||||||
 | 
						asm volatile ("NOP"::);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Fire timer compare channel A ISR to manage the software USART */
 | 
						/* Fire timer compare channel A ISR to manage the software USART */
 | 
				
			||||||
	OCR1A   = BITS_BETWEEN_USART_CLOCKS;
 | 
						OCR1A   = BITS_BETWEEN_USART_CLOCKS;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user