Avr uart funkar sisådär
Avr uart funkar sisådär
Jag för söker få till så ett java program kan skicka lite information till en Atmega328p via en CP2102 och det funkar inte helt 100.
Jag har gjort så att om man skickar nåt till microcontrollern så ekar den tillbaka det bara.
Mikrocontroller går på en extern kristall som rimmar med uart, 7,nånting mhz.
Om jag använder HyperSerialPort för att skicka så funkar det bra, men om jag skickar från java programmet jag skrivit så funkar det inge vidare.
Det känns lite som om javaprogrammet har fel baud fast det har det inte.
Jag undrar om det är nån som har testat nåt liknande och kan tipsa om vad felet kan vara. Jag kanske har glömt nåt eftersom jag inte gjort nåt liknande förr.
Skulle gärna ta emot om bra bibliotek eller plugin till eclipse/java för uart om nån har erfarenhet av nåt bra/enkelt.
Jag har gjort så att om man skickar nåt till microcontrollern så ekar den tillbaka det bara.
Mikrocontroller går på en extern kristall som rimmar med uart, 7,nånting mhz.
Om jag använder HyperSerialPort för att skicka så funkar det bra, men om jag skickar från java programmet jag skrivit så funkar det inge vidare.
Det känns lite som om javaprogrammet har fel baud fast det har det inte.
Jag undrar om det är nån som har testat nåt liknande och kan tipsa om vad felet kan vara. Jag kanske har glömt nåt eftersom jag inte gjort nåt liknande förr.
Skulle gärna ta emot om bra bibliotek eller plugin till eclipse/java för uart om nån har erfarenhet av nåt bra/enkelt.
Re: Avr uart funkar sisådär
CP2102 är en USB<->COM-port med 5V signalnivå.
Då den fungerar "perfekt" med terminalprogram lär den inte bli trasig för att ett annat program skickar data.
"...funkar det inget vidare."
OK - men på vilket sätt är det skit?
Fattas det bytes?
Kommer inget ut?
Kan ATmega'n svara snabbt nog?
Då den fungerar "perfekt" med terminalprogram lär den inte bli trasig för att ett annat program skickar data.
"...funkar det inget vidare."
OK - men på vilket sätt är det skit?
Fattas det bytes?
Kommer inget ut?
Kan ATmega'n svara snabbt nog?
Re: Avr uart funkar sisådär
Porten måste ju nog konfigureras med baudrate enligt klockfrekvensen. Är det barebone AVR eller Arduino-bootloader? Med bootloaderna kan man använda antingen 8 eller 16 MHz kristall. Redan med inbyggda 8 MHz-oskillatorn har jag haft problem att serieporten börjar ge bogustecken efter ett tag, när den driftar.
Re: Avr uart funkar sisådär
Vad menar du med "driftar"? En UART synkar på varje tecken (startbit)
och det ska inte uppstå någon "drift". Möjligen om baud raten i sig
inte är stabil utan börjar drifta...
Och sen behövs det bättre exempel på vad som går fel från Ruben.
Hur ser det ut? Vad kommer resp vad förväntades? o.s.v.
och det ska inte uppstå någon "drift". Möjligen om baud raten i sig
inte är stabil utan börjar drifta...
Och sen behövs det bättre exempel på vad som går fel från Ruben.
Hur ser det ut? Vad kommer resp vad förväntades? o.s.v.
Re: Avr uart funkar sisådär
Jag kör en extern 7.3837 MHz tror jag det var. Den ska ge 0% fel enligt atmega328p databladet om jag fattat det rättJanErik skrev:Porten måste ju nog konfigureras med baudrate enligt klockfrekvensen. Är det barebone AVR eller Arduino-bootloader? Med bootloaderna kan man använda antingen 8 eller 16 MHz kristall. Redan med inbyggda 8 MHz-oskillatorn har jag haft problem att serieporten börjar ge bogustecken efter ett tag, när den driftar.
Re: Avr uart funkar sisådär
Men varför fokusera på AVR sidan!? Det var väl då du byter verktyg på PC
sidan (från HyperSerialPort till ett Java program) som problemen början!?
Jag tror att det har något med Java miljön att göra. Den kanske får för sig
att köra någon intern "garbage collection" eller liknande och då tappar
du tecken. Eller vad det nu är för fel som uppstår, du har ju inte
beskrivit vad "funkar inge vidare" faktiskt betyder.
sidan (från HyperSerialPort till ett Java program) som problemen början!?
Jag tror att det har något med Java miljön att göra. Den kanske får för sig
att köra någon intern "garbage collection" eller liknande och då tappar
du tecken. Eller vad det nu är för fel som uppstår, du har ju inte
beskrivit vad "funkar inge vidare" faktiskt betyder.
Re: Avr uart funkar sisådär
"inge vidare" Det är lite olika, om jag tex skickar 'F' så kommer det tillbaka ett 'F' skickar jag 'F' sedan 'g' kommer det tillbaka 'de'
Skickar jag 'elektronikforum' så skippar den vissa tecken eller så skickar den tillbaka dom första 4 och sedan bara en massa skumma tecken. "Driftar" typ.
Jag har en lista hemma på vad man får tillbaka om man skickar vissa tecken i en viss ordning.
Jag ska se om jag hittar den när jag kommer hem.
Skickar jag 'elektronikforum' så skippar den vissa tecken eller så skickar den tillbaka dom första 4 och sedan bara en massa skumma tecken. "Driftar" typ.
Jag har en lista hemma på vad man får tillbaka om man skickar vissa tecken i en viss ordning.
Jag ska se om jag hittar den när jag kommer hem.
Re: Avr uart funkar sisådär
Låter omedelbart som att porten kanske körs med paritet och kanske 7 bits + paritet.
Re: Avr uart funkar sisådär
> Skickar jag 'elektronikforum' så skippar den vissa tecken eller så skickar den tillbaka dom
> första 4 och sedan bara en massa skumma tecken. "Driftar" typ.
Gissningar och försök till egna beskrivningar ger inte mycket.
"Skumma tecken" säger i alla fall mig ingenting.
Om man har faktiska tecken in/ut så kan man jämföra och
direkt se om det t.ex. är något sådan som Icecap föreslår.
> om jag tex skickar 'F' så kommer det tillbaka ett 'F'...
Och om du skickar 'FFFFFFFFFFFFFFFFF', får du då tillbaka samtliga 'F'?
> skickar jag 'F' sedan 'g' kommer det tillbaka 'de'
Vad betyder "sedan"? Skickar du 'Fg' eller är det en paus mellan?
Kommer 'de' först då du har har skickat både 'F' och 'g'? Eller kommer
det ett 'd' först som svar på 'F' och sedan ett 'e' som svar på 'g'?
AVR'en ekar väl varje tecken direkt utan fördröjning(?).
Som du ser så ger vaga och otydliga beskrivningar inte mycket...
> Jag ska se om jag hittar den när jag kommer hem.
Ja, det är nog en bra idé.
> första 4 och sedan bara en massa skumma tecken. "Driftar" typ.
Gissningar och försök till egna beskrivningar ger inte mycket.
"Skumma tecken" säger i alla fall mig ingenting.
Om man har faktiska tecken in/ut så kan man jämföra och
direkt se om det t.ex. är något sådan som Icecap föreslår.
> om jag tex skickar 'F' så kommer det tillbaka ett 'F'...
Och om du skickar 'FFFFFFFFFFFFFFFFF', får du då tillbaka samtliga 'F'?
> skickar jag 'F' sedan 'g' kommer det tillbaka 'de'
Vad betyder "sedan"? Skickar du 'Fg' eller är det en paus mellan?
Kommer 'de' först då du har har skickat både 'F' och 'g'? Eller kommer
det ett 'd' först som svar på 'F' och sedan ett 'e' som svar på 'g'?
AVR'en ekar väl varje tecken direkt utan fördröjning(?).
Som du ser så ger vaga och otydliga beskrivningar inte mycket...
> Jag ska se om jag hittar den när jag kommer hem.
Ja, det är nog en bra idé.