Kennt jemand von euch einen uC mit frei einstellbarer SPI-Wortbreite und durchgehendem SPI-Transfer? Die meisten uCs, auch viele ARMs unterstützten nur jew. 8 oder 16 Bit Transfers. Bisher sind mir nur die Infineon XC16x uCs aus dem Studium bekannt, welche z.b. auch nur 6 Bit rausshiften können und deren SPI(SSC) lückenlose Transfers mit double-buffering unterstützt. Denn 6 Bit sind ideal um einen 5x7-Font-Video-Zeichengenerator zu realisieren und durch den lückenlosen Transfer gibt es keine Abstände, es sei denn sie sind im Zeichensatz definiert, ausserdem können auch kleine grafische Logos ausgegeben werden. Eventuell kann man bei manchen uCs die SPI mit zyklengenauen ASM-Code nach dem 6. Bit "abwürgen", das nächste Bitmuster laden und einschalten - was aber dennoch eine kleine Lücke entstehen lässt. Weiss da jemand Vertreter abseits von Infineon?
Student schrieb: > Die meisten uCs, auch viele ARMs unterstützten nur jew. 8 oder 16 Bit Teil deine Messages in diese Größen, handle diese und frage, wenn du weiteres nicht verstanden hast, nachdem du dich über "Granularität" informiert hast.
Also bei den AVR Tinys kann man indem man das Zähler-reg vorlädt mit dem USI weniger als 8 Bit senden. Bei den Mega geht das dann mittels USART indem man die Frame-Länge entsprechend einstellt (ich glaub im synchronen Modus senden die dann auch keine Startbits, schwören kann ich das aber nicht, würde aber wohl wenig Sinn machen sonst)...
PICCOLO von TI. Aber ist das wirklich SOOOO wichtig? Mit etwas Grips kann man die Daten in ein passendes Array schreiben und mit 8/16 Bit Transfers leben.
http://www.elektor.de/jahrgang/2009/juli-047-august/cc2-basic-computer.988390.lynkx Elektor hat mit ihrem ATM18 (basiert auf einem AVR, mega8 glaub ich) einen Basic-Emulator gebaut, hol dir den Code, lass dich inspirieren :D
D. V. schrieb: > Student schrieb: >> Die meisten uCs, auch viele ARMs unterstützten nur jew. 8 oder 16 Bit > > Teil deine Messages in diese Größen, handle diese und frage, wenn du > weiteres nicht verstanden hast, nachdem du dich über "Granularität" > informiert hast. Das Problem ist, dass meine Messages keine Daten sind, sondern weisse und schwarze Pixel auf einem analogen Video-Signal (Clock-Leitung spielt keine Rolle). Mir ist schon klar, dass ich jetzt einen Puffer im RAM anlegen kann und mittels Logik, ähnlich wie bei Smooth-Scrolling, diese 6-Bit-Worte in ein Array aus 8-Bit Worten packen kann. Doch das kostet zusätzlich Zyklen und ist nicht so elegant wie ein SPI-Port, der auch 6 Bit senden kann. Denn dazu müsste ich ganze 8 Pixel-Zeilen im RAM vorpuffern, denn sonst bleibt keine Zeit, um diese 6-to-8 Conversion zu machen. Es ginge drum, ein bereits fertiges Video-Inserter Projekt von einem Infineon XC164 auf was anders zu portieren, was auch in der Hobbyszene verwendet wird. Max D. schrieb: > Also bei den AVR Tinys kann man indem man das Zähler-reg vorlädt > mit dem > USI weniger als 8 Bit senden. Bei den Mega geht das dann mittels USART > indem man die Frame-Länge entsprechend einstellt (ich glaub im > synchronen Modus senden die dann auch keine Startbits, schwören kann ich > das aber nicht, würde aber wohl wenig Sinn machen sonst)... Das klingt interessant, dann schaue ich mir mal das Datenblatt an. Den USART kann man natürlich meistens auch als Video-Shifter "missbrauchen". Falk Brunner schrieb: > PICCOLO von TI. Aber ist das wirklich SOOOO wichtig? Mit etwas > Grips > kann man die Daten in ein passendes Array schreiben und mit 8/16 Bit > Transfers leben. Ja, wenn's nicht anders geht, mach ich's ja so oder steige auf einen anderen Font um. Dachte mir nur, ich kann da gleich einen passenden uC finden. PICCOLO ist genauso "exotisch" wie der XC164 den ich ersetzen wollte, aber danke trotzdem. Max D. schrieb: > http://www.elektor.de/jahrgang/2009/juli-047-augus... > Elektor hat mit ihrem ATM18 (basiert auf einem AVR, mega8 glaub ich) > einen Basic-Emulator gebaut, hol dir den Code, lass dich inspirieren :D Danke. Hat der einen 5x7 Font ? (kanns im Moment nicht runterladen ohne Account)
Student schrieb: > Kennt jemand von euch einen uC mit frei einstellbarer SPI-Wortbreite > und durchgehendem SPI-Transfer? > Denn 6 Bit sind ideal um einen 5x7-Font-Video-Zeichengenerator zu > realisieren und durch den lückenlosen Transfer gibt es keine Abstände, > Eventuell kann man bei manchen uCs die SPI mit zyklengenauen ASM-Code > nach dem 6. Bit "abwürgen", das nächste Bitmuster laden und einschalten > - was aber dennoch eine kleine Lücke entstehen lässt. Lückenlose Ausgabe und Double-Buffering bieten alle neueren AVRs (UART im SPI-Mode). Die Datenregisterbreite ist natürlich 8 Bits, wenn du nur 6 pro Zeichen ausgeben willst, dann mußt du halt einfach mal ein wenig programmieren. Zwei Zeichensatzbytes lesen, schieben und verodern ist ja nun wirklich keine große Kunst. Das geht mit einem ATMega selbst bei maximaler SPI-Ausgabefrequenz noch sehr schmerzarm umzusetzen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.