USB till USART-/SPI-omvandlarkort - AVR-CDC
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Exakt, du kan glömma att bara plugga in FTDI kretsen och tro att det bara är att köra, krävs drivrutiner och DLLer till den också.
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Behövs inga DLL'er om man kör direkt mot COM porten som FTDI emulerar.
Skall man köra direkt mot "native FTDI" API'n måste man ha ett bibliotek från FTDI, men det levererar man ju med sin app, och kräver ingen installation.
FTDI USB drivern kan laddas från Windows update när man pluggar i första gången.
I Linux finns FTDI USB drivern med som standard.
Skall man köra direkt mot "native FTDI" API'n måste man ha ett bibliotek från FTDI, men det levererar man ju med sin app, och kräver ingen installation.
FTDI USB drivern kan laddas från Windows update när man pluggar i första gången.
I Linux finns FTDI USB drivern med som standard.
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Ok, har alltid laddat ner deras rutiner från hemsidan, så hade ingen koll på att det gick automatsikt.
Har kört via dll i VisualStudio VB..NET och det har funkat mycket bra.
Lite of topic detta dock...
Har kört via dll i VisualStudio VB..NET och det har funkat mycket bra.
Lite of topic detta dock...
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Vet att man ska editera, men vill ha detta i en ny post.
Mitt förslag är att man kör som Bearing postade, men att man byter ut tiny45 mot en tiny44 för lite mer flexibilitet, blir typ +2kr. Angående strömförsörjningen är jag lite kluven, men tycker nästan det är bäst att ta den från USBn och ha nått sätt att välja mellan 5 och 3.3V. Annars blir det jobbigt om man vill debugga ett egenbyggt kretskort. Men är som sagt lite kluven där.
Mitt förslag är att man kör som Bearing postade, men att man byter ut tiny45 mot en tiny44 för lite mer flexibilitet, blir typ +2kr. Angående strömförsörjningen är jag lite kluven, men tycker nästan det är bäst att ta den från USBn och ha nått sätt att välja mellan 5 och 3.3V. Annars blir det jobbigt om man vill debugga ett egenbyggt kretskort. Men är som sagt lite kluven där.
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Tänkte inte på speedratingen när jag la till processorn. De flesta ATtiny hos ELFA har visst suffixet -10. Jag hade tänkt köra i 16,5 MHz via PLL. Överklockning till 12,8MHz går ju också, men det finns risk att det blir problem med skrivning till flashminnet då, har jag läst. ATtiny44 saknar PLL, så den måste köras i 12,8 MHz.
Helst skulle jag vilja ha en krets med inbyggd USART, men då tror jag man måste gå upp till ATmega. ATtiny använder mjukvaru-UART, och jag är osäker på vad som händer ifall USB-rutinen "krockar" med USARTen. SPI sköts av periferienheten USI. USI kan även användas för att göra en "halvhårdvaru-UART".
Mekade ihop följande. Anledningen var mest att komma igång med EAGLE. Allt fick plats på ett ensidigt kort, fast på några ställen är det lite trångt, t.ex. ledningen som går under motstånden. Funderar på att prova att göra det här kortet med toner transfer, som test. Hur ska man ordna drill-aiden för att göra det enkelt att borra?
http://img522.imageshack.us/img522/7340 ... tiny45.png
http://img404.imageshack.us/img404/7552 ... tiny45.png
EDIT: och finns det några mindre pads för 0805? jag tycker dom här ser onödigt stora ut. Är 0805 en bra storlek på motstånden och kondensatorn?
Helst skulle jag vilja ha en krets med inbyggd USART, men då tror jag man måste gå upp till ATmega. ATtiny använder mjukvaru-UART, och jag är osäker på vad som händer ifall USB-rutinen "krockar" med USARTen. SPI sköts av periferienheten USI. USI kan även användas för att göra en "halvhårdvaru-UART".
Mekade ihop följande. Anledningen var mest att komma igång med EAGLE. Allt fick plats på ett ensidigt kort, fast på några ställen är det lite trångt, t.ex. ledningen som går under motstånden. Funderar på att prova att göra det här kortet med toner transfer, som test. Hur ska man ordna drill-aiden för att göra det enkelt att borra?
http://img522.imageshack.us/img522/7340 ... tiny45.png
http://img404.imageshack.us/img404/7552 ... tiny45.png
EDIT: och finns det några mindre pads för 0805? jag tycker dom här ser onödigt stora ut. Är 0805 en bra storlek på motstånden och kondensatorn?
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Beställ 0603 motstånd istället då?
Gillar inte Elfa då dom inte har 0402 grejer styckevis : p
Angående drill-aiden är det bara att köra den, 0,3mm blir bra.
Enda nackdelen med denna är att den kräver 5V system, är det inte möjligt att lägga till stöd på kortet för en 3,3V regulator?
Sedan en 3 pinnars stifftlist när man kan bygla för att välja mellan?
Edit: 5,30kr för en regulator som tex denna https://www1.elfa.se/elfa~se_sv/catalog ... 000A0A036A
Gillar inte Elfa då dom inte har 0402 grejer styckevis : p
Angående drill-aiden är det bara att köra den, 0,3mm blir bra.
Enda nackdelen med denna är att den kräver 5V system, är det inte möjligt att lägga till stöd på kortet för en 3,3V regulator?
Sedan en 3 pinnars stifftlist när man kan bygla för att välja mellan?
Edit: 5,30kr för en regulator som tex denna https://www1.elfa.se/elfa~se_sv/catalog ... 000A0A036A
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Lysdioden är fortfarande kvar, så VDD blir ca 3V via USB. Om man kopplar in 5V från labbplattan slocknar lysdioden och VDD blir 5V. Med 5V VDD driver I/O pinnarna 5V på D+ och D-, vilket inte är tillåtet enligt USB-specen, därför la jag till 3.6V zenerdioder. En nackdel med det är att strömmen genom 68-ohms motstånden och zenerdioderna blir 20 mA när AVR:en driver...
Undviker helst byglar. Fungerar det att använda 3.3V-regulator på kortet, och sedan koppla in 5V på regulatorns utgång, eller brinner regulatorn då?
Med mindre pads skulle marginalen till ledaren som går mellan de tre motstånden ovanför nedre stiftlisten bli större. Kortet går inte igenom DRC-kontrollen, marginalen är mindre än 8(?) mil.
Mindre motstånd är svårare att löda. Klarar man problemfritt 0603 med vanlig enkel lödstation?
Avståndet mellan padsen är mindre för 0603, så det blir ju ännu svårare att dra ledare under SMD-motstånd.
Undviker helst byglar. Fungerar det att använda 3.3V-regulator på kortet, och sedan koppla in 5V på regulatorns utgång, eller brinner regulatorn då?
Med mindre pads skulle marginalen till ledaren som går mellan de tre motstånden ovanför nedre stiftlisten bli större. Kortet går inte igenom DRC-kontrollen, marginalen är mindre än 8(?) mil.
Mindre motstånd är svårare att löda. Klarar man problemfritt 0603 med vanlig enkel lödstation?
Avståndet mellan padsen är mindre för 0603, så det blir ju ännu svårare att dra ledare under SMD-motstånd.
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Tja, jag har lött 0402 med en station, men det är meckigt, 0603 borde man fixa utan större problem.
Sant att marginalen nog blir för liten då. Men så länge du har minst 8mil så är det lugnt om man ska beställa kort från batchPCB. Kanske bäst att köra med 0806.
5V på regulatorn är inga som helst problem, såg att länken var kass, regulatorn jag tänkte på är LM1117MP-3.3
Sant att marginalen nog blir för liten då. Men så länge du har minst 8mil så är det lugnt om man ska beställa kort från batchPCB. Kanske bäst att köra med 0806.
5V på regulatorn är inga som helst problem, såg att länken var kass, regulatorn jag tänkte på är LM1117MP-3.3
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Frågan blev otydlig första försöket. Jag har ändrat. Det jag undrar är om man kan koppla 5V till utgången på regulatorn. Alltså om man vill kunna koppla in 5V från labbplattan lika flexibelt som med "lysdiodsregulatorn".
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Knepigt att veta faktiskt, ingen aning.
Men det blir kanske konstigt att stoppa in 5V där när regulatorn ger ut 3,3V redan...
Kanske är enklare med diodvarianten.
Men det blir kanske konstigt att stoppa in 5V där när regulatorn ger ut 3,3V redan...
Kanske är enklare med diodvarianten.
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Fortsätter med lysdioden. Jag tror regulatorn brinner upp om man kopplar 5V på utgången.
Här är en USB-i2C-brygga
http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
Här är en USB-i2C-brygga
http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Går väl att köra I2C på våran också, gäller bara att någon orkar skriva det bit-bangat.
Skulle vara nice med den möjligheten också : )
Skulle vara nice med den möjligheten också : )
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Hittade att USI kan användas till i2c
AVR310: Using the USI module as a I2C master
AVR312: Using the USI module as a I2C slave
Och här är om USI som UART
AVR307: Half Duplex UART Using the USI Module
AVR-CDC-koden för SPI är som master. För "tjuvlyssning" måste koden ändras.
AVR310: Using the USI module as a I2C master
AVR312: Using the USI module as a I2C slave
Och här är om USI som UART
AVR307: Half Duplex UART Using the USI Module
AVR-CDC-koden för SPI är som master. För "tjuvlyssning" måste koden ändras.
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Mycket nice!
Ser fram emot prototypen : )
Mycket användbart projekt.
Ser fram emot prototypen : )
Mycket användbart projekt.
Re: USB till USART-/SPI-omvandlarkort - AVR-CDC
Jag har kollat runt efter bootloaders till ATtiny. Hittar inte någon USB-bootloader som fungerar tillsammans med ATtiny, bara ATmega.
Många (alla?) ATmega har en sektion i minnet avsedd för bootloader Man kan kan flytta interruptvektorerna till bootloader-sektionen genom att sätta en bit i ett register. ATtiny har så vitt jag vet inte den möjligheten att flytta interruptvektorerna. Jag tro att det är orsaken till att ingen USB-bootloader existerar för ATtiny.
Två spontana idéer på lösning:
1. Inledningen av bootloadern sparar undan instruktionerna som ligger vid interruptvektorn och skriver över med "CALL bootloaderns interruptrutin". Innan bootloadern lämnas återställs koden. Ifall koden som bootloadern programmerar ska skriva till den aktuella interruptvektorn hoppas det över, och skrivs istället innan bootloadern lämnas. Jag vet inte om det här funkar, för jag är osäker på om man kan få interrupt samtidigt som sidan i FLASH skrivs.
*Pollning. Pinnen som är kopplad till USB-interruptet pollas ofta i bootloaderkoden. Istället för att USB-rutinen körs i interrupt körs den i en funktion som anropas vid samma villkor som annars utlöser interruptet.
Många (alla?) ATmega har en sektion i minnet avsedd för bootloader Man kan kan flytta interruptvektorerna till bootloader-sektionen genom att sätta en bit i ett register. ATtiny har så vitt jag vet inte den möjligheten att flytta interruptvektorerna. Jag tro att det är orsaken till att ingen USB-bootloader existerar för ATtiny.
Två spontana idéer på lösning:
1. Inledningen av bootloadern sparar undan instruktionerna som ligger vid interruptvektorn och skriver över med "CALL bootloaderns interruptrutin". Innan bootloadern lämnas återställs koden. Ifall koden som bootloadern programmerar ska skriva till den aktuella interruptvektorn hoppas det över, och skrivs istället innan bootloadern lämnas. Jag vet inte om det här funkar, för jag är osäker på om man kan få interrupt samtidigt som sidan i FLASH skrivs.
*Pollning. Pinnen som är kopplad till USB-interruptet pollas ofta i bootloaderkoden. Istället för att USB-rutinen körs i interrupt körs den i en funktion som anropas vid samma villkor som annars utlöser interruptet.