-
Thread
Arduino: page-write in I2C eeprom verliert sporadisch ein Byte
11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 32 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 48 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 64 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 80 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 96 60 61 62 63 64 66 67 68 69 6A 6B 6C 6D
7-Bit-Adresse -> 7F = 128
-
Thread
CH32V003: Probleme mit Bootloaderspeicherbereich
Also habe ich mich an's Werk gemacht, weil ich dachte, dass das nicht so schwierig sein kann, für AVR und STM8 habe ich so etwas ja auch schon gemacht (wobei: der Optiboot für den AVR nicht zu toppen ist). Meine gemachten Schritte: - Hostprogramm für andere Controllerfamilie zur Steuerung eines
Linkerscript von CH32FUN verwenden - Kommunikationsfunktionen im Bootloader schreiben, läuft mit 48MHz int. Takt, 115200 Baud - entsperren des Flashspeicherschreibschutz - zur Fehlersuche im Bootloader eine kurze Hexdump-Funktion integrieren damit ich sehen kann, was im Flashspeicher passiert ist
-
Thread
CH32V003: Selbstbauprogrammer und "Getting started"
es bei LCSC wirklich, ich habe ihn hier liegen), der kostet auch nur einen 1 Euro, gibt es im LQFP-48 Gehäuse und hat FPU, 128kB Flash und 32kB SRAM. Okay, USB hat er nicht (ich war überrascht, ich dachte alle F4 haben das), aber ansonsten in allem besser als V003. Warum also nicht den nehmen? Ganz einfach
Arduino-Class erzeugt wurde: - CH32V003: 1316 Byte (risc-none-elf-gcc 14.2.0) - ATmega328p: 1712 Byte (AVR-GCC 7.3.0) Es beschleicht mich einfach nur das Gefühl, dass Arduino einfach nur für AVR gemacht ist und alles andere, selbst ein originaler UNO r4, da einfach nur irgendwie reingepfriemelt" ist,
-
Thread
Assembler Programm von ATtiny13 auf ATtiny45 portieren
"D",2,64,16,55,"d",2,60,86,58,"E",2,57,206,61,"F",2,54,123,65,"f",2,51,96,69,"G",2,48,128,73,"g",2,45,223,77 OCTAVE7: .DB "A",2,43,128,82,"a",2,40,104,87,"B",2,38,154,92,"C",2,36,28,98,"c",2,34,242,103,"D",2,32,32,110,"d",1,241,172,116,"E",1,228,156,123,"F",1,215,246,130,"f",1,203,191,138
Hi >Schon deshalb nicht, weil es bei >Assemblerprojekten mit der AVR-Toolchain überhaupt kein *.elf gibt. Also ich habe jahrelang ELF-Files mit im AVR-Studio419 von Assemblerprogrammen erstellt. Muss ich wohl etwas falsch gemacht haben. MfG Spess
-
Thread
CH32V003, float wirklich langsam?
mal gemacht: STM32F401 / 84 MHz => 0.5 Sekunden STM32F103 / 72 MHz => 9.2 Sekunden STM32F030 / 48 MHz => 24.9 Sekunden CH32V003 / 48 MHz => 62.9 Sekunden ATmega328 / 16 MHz => 63 Sekunden Dass ATmega nicht schneller wird war anzunehmen, da meines Wissens der AVR-GCC Compiler bei Angabe 2.0 keine
>CH32V003 fetches 4 bytes of instructions in 1 clock cycle at 24 MHz, or >2 clock cycles at 48 MHz. Interessant: Bei doppeltem Clock gleich schnell beim Fetch. Liegt wahrscheinlich am Flash. Falls ein AVR-Assembler Experte mitliest: Wieviel Zyklen braucht ein Atmega für ein 32Bit add ?
-
Thread
Moderne AVR (Nachfolger Atmega und Attiny)
, > AVR64SD32, AVR64SD48, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, > AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64. Mich würde mal interessieren, woher ihr die übersichtlichen Darstellungen habt
, >> AVR64SD32, AVR64SD48, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, >> AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64. > > Mich würde mal interessieren, woher ihr die übersichtlichen > Darstellungen
-
Thread
Blinking a mikrocontroller
AVR128DB48 Curiosity Nano (onboard LED PB3): [c] #include <avr/io.h> int main(void) { while(1) { PORTB.DIRTGL = PIN3_bm; __builtin_avr_delay_cycles(4000000); } } [/c]
selbst ist ein inline, das die Anzahl der benötigten Zyklen ermittelt und anschließend damit __builtin_avr_delay_cycles() befüttert – die, wie der Name sagt, ein Builtin des AVR-GCC ist und damit von diesem direkt aufgelöst wird.
-
Artikel
ARM-ASM-Tutorial
STMicroelectronics will be used. Both controllers are identical except for the flash size (64 KiB vs 128 KiB) and number of pins (48 vs 64). These controllers belong to ST’s “mainstream” entry-level- family and are quite popular among hobbyist developers with many existing online resources. Several development
addresses that can be accessed in a uniform way is called an “address space”. Some platforms such as AVR have multiple address spaces (for Flash, EEPROM, and RAM+periphery) where each memory needs to be accessed in a distinct way and the programmer needs to know which address space an address belongs to
-
Thread
Raspberry Pi Pico SDR
einen PC mit Soundkarte, um einen standalone SDR zu realisieren. Dazu reicht schon ein Atmel 8Bit AVR mit 20MHz Taktfrequenz wie das uSDX Projekt https://github.com/threeme3/usdx Da ist sogar der TX mit um die 5W Output auch noch mitrealisiert. Gegenüber dem Pico-SDR muss aber ein zusätzlicher
PC mit > Soundkarte, um einen standalone SDR zu realisieren. Dazu reicht schon > ein Atmel 8Bit AVR mit 20MHz Taktfrequenz wie das uSDX Projekt > > https://github.com/threeme3/usdx Auch spannend! Da fragt man sich wiso der RP2040 zu 80% ausgelastet ist, wenn man fast das gleiche Konzept mit
-
Thread
Arduino: digitalRead in Interrupt ist unzuverlässig
kleinen Variable delta gespeichert. Die ist im Beispiel aber nur 8 Bit incl. Vorzeichen, kann also nur -128 bis +127 enthalten. D.h. im Extremfall bei voller Drehzahl gibt es nach 128 ISR-Aufrufen einen Überlauf. Den muss man durch ausreichend häufiges Auslesen der Variable mittels der Funktion encode_read() verhindern. Aber diese Mindestfrequenz ist um Faktor 128 KLEINER! Sprich, hier 1kHz/128 ~ 8Hz. D.h. dein Hauptprogramm muss mindestens mit dieser Frequenz die Zähler auslesen und weiterverarbeiten. > 2) In dieser Timer die Zustände aller HAL-Pins von
-
Thread
Welchen Mikrocontroller für Millisekunden-Stoppuhr?
Man kann auch noch mehr tricksen. Den Resonator am "echten" AVR beim Arduino Uno ablöten und die 16 MHz vom Quarz, welcher den Hilfs-AVR für die USB-Verbindung treibt (U3) auf den Haupt-AVR legen. U3 Pin 2 (XTAl2) an ZU4 Pin 9 (XTAL1) Der Quarz hat vermutlich
Schaltplan hatte ich C12 mit .1u angegeben aber immer 1 nF bestückt: http://mino-elektronik.de/fmeter/fm48.png
-
Thread
AVR64DD32: TCA-Overflow-Interrupt deaktiviert RTC
Hi, ich nutze erfoglreich bei einem AVR64DD28 den RTC und TCA im Interruptmodus (RTC für Interrupt alle 1 Sekunde, und den TCA alle 50ms) - siehe auch https://www.mikrocontroller.net/topic/562401 Wenn ich das selbe beim AVR64DD32 versuche
// enable interrupts while(1) { } } [/c] (getestet am AVR128DB48)
-
Thread
AVR64DD32, UART-Ausgabe bleibt hängen, Assembler
unter anderen auch gedacht worden – ich habe das auch relativ zeitnah bei der Einarbeitung in den AVR128DB ausprobiert, allerdings unter Atmel Studio 7.
funktioniert. Ich bin nun schon am überlegen, > ob mit meinen selbst designten und von JLC gefertigten > AVR-DB/DD32-Boards irgendwas nicht stimmt. Hier noch ein Foto von meinem ersten und provisorischen Aufbau von damals mit dem AVR128DB28, um alles genau zu prüfen und sich in die neue-AVR-Familie einzuarbeiten
-
Thread
Notepad: Nur EIN Fehlklick kostet Lebenstage
sein, befürchte ich, daß mein Interesse daran auch ziemlich engen Grenzen unterliegt. Seitdem dem C128 hab ich keinen Assembler-Code mehr geschrieben -- gelesen hin und wieder, besonders den von AVR-gcc vs. AVR-g++, aber sonst... nee, laß' mal. > Schau da einfach mal rein, und schau die auch mal
| 00000070 69 62 74 3a 20 77 6f 7a 75 20 6e 75 6e 20 64 65 |ibt: wozu nun de| 00000080 72 20 48 65 78 65 64 69 74 6f 72 3f 0a |r Hexeditor?.| 0000008d [/pre]
-
Thread
RS232/UART - Hardware-Terminal
eigentlich ATmega mit 100kByte RAM? Das ist ja selbst für > STM32 ziemlich viel? Man kann mit einem AVR auch einen externen und entsprechend großen SRAM mit Bankswitching betreiben, die STM32 gibt es mit SRAMs zwischen 4KB bis mindestens 1,4MB, aber mit einem STM32F411, der 128KB SRAM hat, hätte man schon
mit dem Telefon wohl ein Ferngespraech. Besonders schnell wird es wohl nicht gewesen. Fuer einen AVR aber besonders gross. :)
-
Thread
AVR128DA64 TCA1 funktioniert nicht mit alternativen Output?
/Errata/AVR128DA-28-32-48-64-SilConErrataClarif-DS80000882.pdf
LQFP64 mit 0,5mm Raster ist dann quasi gleich – selbst ein STM32F030RC müsste dem Anwender mehr als ein AVR128 bieten, allein schon aufgrund der Taktfrequenz, die dort bei 48MHz liegt; es gibt aber auch welche mit 170 oder 180 MHz in dem Gehäuse mit extrem viel Peripherie – viele 16-Bit-Timer, die man als
-
Thread
Mikrocontroller Einstieg
Moin, Die rote AVR Bord von Gregor gefällt mir eigentlich. Gerhard
Bytes vermurksen aber die muss man nur selten für spezielle Anforderungen modifizieren, anders als die AVR-Fuses)
-
Thread
usart problem mit ttl-Pegel
Verbinde den UART Adapter durch einen 1kΩ Widerstand mit dem AVR. Zeige uns dann das problematische Signal vor und nach dem Widerstand (dein Oszilloskop hat ja 2 Kanäle). [pre] rs485 GND-------------GND M328 RXD----[===]--->RX TXD<--
rx_bit_delay); if(rx_pin)byte+=64; _delay_us(rx_bit_delay); _delay_us(rx_bit_delay); if(rx_pin)byte+=128; _delay_us(rx_bit_delay); return byte; } [/c] wenn ich die Schwierigkeiten vorher geahnt hätte, hätte ich einen moderneren uc genommen. Ich mag aber WIN-AVR.
-
Thread
ATmega: Wake-Up Zeit nach Power-Down
hier der Code, zu dem gesprungen wird: [c] 0000034c <__vector_1>: __vector_1(): #elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega48__) || defined(__AVR_ATmega48P__) \ || defined(__AVR_ATmega48PB__) || defined(__AVR_ATmega88__) || defined(__AVR_ATmega88P__) \ || defined(__AVR_ATmega88PB
bereits ausführlich beschrieben, ist aber auch auf meiner Homepage nachlesbar – neuere µC wie z.B. AVR128DB28 kann man dann auch über UPDI live debuggen, programmieren kann man aber damit fast alle AVRs, so etwas wie der ATMEGA328P gehört auf jeden Fall dazu. Wer aber an seiner Arduino-IDE unbedingt
-
Thread
Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?
Befehlssatz und die zugehörigen numerischen Werte sind bei jedem Mikroprozessor anders. Im Fall von AVR dort dokumentiert: https://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf
Sprache(ABI) verankert. > "The (ABI)Word-Project" für Linux oder Windows in C++? ABI? Hier, für den AVR GCC: https://gcc.gnu.org/wiki/avr-gcc
-
Thread
seriell auslesbare Taster/Schalter, Idee zur Diskussion
Monk schrieb im Beitrag #7753426: > Ich würde bei Neuentwicklungen berücksichtigen, daß AVR in den > vergangenen 10-20 Jahren (verglichen mit anderen) besonders teuer > geworden sind, währen einige andere sogar billiger wurden. Nunja, die "klassischen" AVR8 sind wirklich ziemlich teuer
die Klassiker. Z.B.: (Mouser-Preise Einzelstück): Klassiker ATMEGA1284P-AUR : 6,65€ Modern AVR128DB48T-I/PT: 2,16€ Die sind vom Package, der Pinzahl und vom Speicher her in etwa gleich, der Moderne hat aber mehr Takt, einen effizienteren Befehlssatz, modernere und deutlich umfangreicherere
-
Thread
Geschichte des Mikrocontrollers.
Arduino eine Platine braucht, liegt an der USB Verbindung zum Programmieren vom PC aus. Auch ein nackter AVR ist ein Mikrocontroller, nur haben moderne PC keine zum Programmieren für ihn geeignete LPT Schnittstelle mehr, daher wurde das erst mit USB populär. Heute gibt es uC mit eingebauter USB Schnittstelle
M.A. S. schrieb im Beitrag #7743293: > Beim ATmega128 zum Beispiel kann man Adress- und Datenbus herausmappen, > sodass externer Speicher angeschlossen werden kann. > Und er ist definitiv ein Mikrocontroller. War ja schon bei MCS-48 so.
-
Thread
ATMega Auslaufmodell?
die > Entwicklung nicht weiter. Atmel wurde 2016 von Microchip gekauft, und die neueren 8-Bit-AVR-Mikrocontroller heißen nicht mehr ATmega, sondern AVRxxxxxx, z.B. AVR64DB48, AVR32DD32.
Früher hatte Atmel noch Migration Notes mit den Unterschieden rausgebracht: - AVR080: ATmega103 Replaced by ATmega128 - AVR094: Replacing ATmega8 by ATmega88 - AVR097: Migration between ATmega128 and ATmega1281/ATmega2561 - AVR504: Migrating from ATtiny26 to ATtiny261/461/861
-
Thread
DCF77 - Empfang
https://www.mikrocontroller.net/articles/DCF77-Funkwecker_mit_AVR#DCF77-Modul_von_Reichelt
macht der Chip das? Hab ihn mir bisher nicht genauer angesehen. Ich hab hier auch Uhren mit dem AVR128DA48. Der hat eine RTC die ein Register zur Korrektur in ppm hat. Da hängt zwar ein 32687Hz Quartz dran, aber soo schlecht ist das auch nicht. Die macht die Zeitumstellung auch automatisch in SW.
-
Thread
AD9833 Programmieren
61042222,69 0x03A36E2F (aufgerundet) Fast alle krumme Hexzahlen. Es gibt Quarze mit 5,6448 MHz (128*44100), das ist -40,2 kHz daneben. https://en.wikipedia.org/wiki/Crystal_oscillator_frequencies Ist das für den TO genau genug?
wird ihm bestimmt jemand die paar Zeilen schreiben. Und statt der Arduino IDE tuts auch ein altes AVR Studio, oder alles was eben STK500 kann.