USB till USART-/SPI-omvandlarkort - AVR-CDC

Planering och tankar kring eventuella framtida projekt.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av Virror »

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å.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av mri »

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.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av Virror »

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...
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av Virror »

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.
bearing
Inlägg: 11675
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av bearing »

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?
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av Virror »

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
bearing
Inlägg: 11675
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av bearing »

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.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av Virror »

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
bearing
Inlägg: 11675
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av bearing »

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".
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av Virror »

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.
bearing
Inlägg: 11675
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av bearing »

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
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av Virror »

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å : )
bearing
Inlägg: 11675
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av bearing »

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.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av Virror »

Mycket nice!
Ser fram emot prototypen : )
Mycket användbart projekt.
bearing
Inlägg: 11675
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: USB till USART-/SPI-omvandlarkort - AVR-CDC

Inlägg av bearing »

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.
Skriv svar