PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei Eprom



Redals1311
30.01.2008, 07:14
Ich habe eine frage und zwar, wie kann ich in einem (FLASH) EPROM etwas reinschreiben? Was benötige ich dafür ?
Muss dann das Signal HEXadezimal oder Binär sein.

Denn meine Problem ist der, ich bekomme ein 5 bit Hexadezimalcode. Dieser soll dann verglichen werden mit einer vorgegebenen Liste.(kann man ja im µC einprogrammieren)
Da der speicher von einem Atmega nicht all zu groß ist wollte ich hierfür einen EPROM nehmen


ich hoffe ihr habt es verstanden und könnt mir weiter helfen.

BASTIUniversal
30.01.2008, 12:57
Hi!
Es gibt ziemlich viele (Flash-) EEPROMs auf dem Markt. Gängig sind im Bastlerbereich die 24Cxx Serien (z.B. 24C01 mit 1kBit speicher, ...02 mit 2kBit, usw.), welche mit I²C angesteuert werden.
Wie genau du das anstellen musst, hängt vom ROM ab, das du einsetzen willst (für die 24Cxx Serie ist alles genau im RN-Wissen beschrieben).

MfG
Basti

shaun
30.01.2008, 21:28
5 bit können schwerlich Hexadezimal sein, das funktioniert nur mit ganzen Nibbles. Du bekommst also einen Binärwert über 5 parallele Eingänge. Das heisst, Du hast maximal Werte von 0-31, mit mehr kann also kaum verglichen werden. Dazu sollte das interne EEPROM fast alles Controller reichen, und der Vorteil dabei wäre, dass man es gleich in einem Rutsch mit dem sowieso benötigten Programmer für den uC beschreiben kann.
Für ein EPROM bräuchte man ansonsten ein entsprechendes Programmiergerät.

Redals1311
31.01.2008, 17:25
die 5 bit hexa kommen von einem Lesegerät und dieser soll im Eprom rein geschrieben werden...
Damit er verglichen werden kann

Wie groß muss denn, dann ca der SPeicher der EPROMS sein?

shaun
31.01.2008, 22:50
5 bit binär. Beschreibe bitte in ganzen Sätzen einmal, was das Ganze werden soll, so wie es da steht macht es keinen Sinn.

Eckhard
04.02.2008, 12:20
Hallo,

Dir scheint das mit Hexadezimal und Binär noch nicht ganz klar zu sein. Die Hexadezimale Schreibweise ist einfach nur für menschen lesbarer als die Binäre. Für den Controller ist das ein und dasselbe, wenn nicht der Hexadezimalcode als character codiert ist. Dann mußt Du umrechnen, was aber cuh nicht so schwer ist.

Eckhard

Redals1311
04.02.2008, 13:16
also ich habe mir den RFID leser 1 PLus von Conrad bestellt.
http://www1.conrad.de/scripts/wgate/zcop_b2c/~flNlc3Npb249UDkwV0dBVEU6Q19BR0FURTE1OjAwMDEuMDA0M S5kZTIyOGU1OSZ+aHR0cF9jb250ZW50X2NoYXJzZXQ9aXNvLTg 4NTktMSZ+U3RhdGU9MTEyNTg0Njg4Mg==?~template=PCAT_A REA_S_BROWSE&mfhelp=&p_selected_area=%24ROOT&p_selected_area_fh=&perform_special_action=&glb_user_js=Y&shop=B2C&vgl_artikel_in_index=&product_show_id=&p_page_to_display=DirektSearch&~cookies=1&zhmmh_lfo=&zhmmh_area_kz=&s_haupt_kategorie=&p_searchstring=rfid&p_searchstring_artnr=&p_search_category=alle&r3_matn=&insert_kz=&gvlon=&area_s_url=&brand=&amount=&new_item_quantity=&area_url=&direkt_aufriss_area=&p_countdown=&p_80=&p_80_category=&p_80_article=&p_next_template_after_login=&mindestbestellwert=&login=&password=&bpemail=&bpid=&url=&show_wk=&use_search=3&p_back_template=&template=&kat_save=&updatestr=&vgl_artikel_in_vgl=&titel=&darsteller=&regisseur=&anbieter=&genre=&fsk=&jahr=&jahr2=&dvd_error=X&dvd_empty_error=X&dvd_year_error=&call_dvd=&kna_news=&p_status_scenario=&documentselector=&aktiv=&p_load_area=$ROOT&p_artikelbilder_mode=&p_sortopt=&page=&p_catalog_max_results=20

so und wenn man einen Tag an die Antenne des Lesegerätes hält gibt er ein 5bit hexadezimalen Wert aus.
Ich habe mehrere Tags, jeden von ihnen wollte ich eine andere Erkennung geben.

Das heißt als erstes kommt Typ X hält seinen Tag da dran und wird dann z.b. auf einem LCD Display begrüßt.
Der µC soll sozusagen aus einer Liste dann die Signale vergleichen.(Das ankommende Signal und das einprogrammierte)

pongi
04.02.2008, 14:16
Viele uC-s haben schon selber EEPROMs on-Board, da kannst Du dann von der Größe des Speichers abhängig locker 512-1024 Tags abspeichern.
(1 Tag = 1 Byte)

shaun
04.02.2008, 14:58
Aha, es wird immer einfacher. Du hast also 5 Leitungen, die binär Zahlen zwischen 00-1Fh bzw 0-31d darstellen können. Wenn Du die an einen Eingang, zB PORTA eines AVR, in der richtigen Reihenfolge anlegst, brauchst Du nur noch abfragen, welche Zahl da gerade am Port anliegt (Pseusocode):
if( PINA == 1 ) print "Hallo Eins!"
elsif( PINA == 2 ) print "Hallo Zwei!"...

Du kannst natürlich auch ein zweidimensionales Array of chars oder ein einfaches Array of strings definieren, je nachdem, was die von Dir in Erwägung gezogene Sprache hergibt, und darüber die Inhalte adressieren.

Redals1311
05.02.2008, 13:27
ja aber was ich nicht verstehe, das geht ja schlecht da diese einen Tags unterscheidliche Werte/Signale haben.
Kann ich ja nicht einfach sagen wenn der Port High ist, soll er das ausgeben...

Er muss ja schließlich noch die einzelnen Tags erkennen können..

homedom
05.02.2008, 13:38
Hi,
ich hab auch den RFID leser 1 PLus von Conrad. Um den zu benutzen brauch man aber keine 5 Portpins, sondern nur die RX und TX Leitung vom UART. Der Leser gibt das im TLL Format aus. Du musst also die empfangenen Daten vom UART mit dem gespeicherten Tag vergleichen. Viel Speicher brauch das ganze nicht. Mit was programmierst du denn? Welchen Controller hast du?
Edit: Das sind übrigens keine 5Bit sondern 5Byte im Hexaformat. Der Tag sieht ungefähr so aus: R (großes R kommt immer) 1D 37 FA 4B 02 (Das sind 5 BYTE im Hexaformat.. Wenn man das ins dezimalsystem umrechnet ist das dann
1D = 29
37 = 55
FA = 250
4B = 75
02 = 2
Wobei man einfach die Zahlen im Hexaformat vergleichen kann.. In C oder Bascom kann man das einfach als String nehmen und vergeleichen..

gruß, homedom

Redals1311
05.02.2008, 14:05
danke das ist ja echt super

wollte das wahrscheinlich mit dem Atmega 8 machen...
ja in bascom müsste ich mir das noch einmal anschauen, wie das mit den strings geht

Redals1311
07.02.2008, 13:41
habe mehre seiten mal durch stöbert...

habe aber noch ncihts brauchbares gefunden wie ich den internen Eprom beschreiben kann, damit der µC die Signale vergleichen kann.

Hat jemand einen brauchbaren Link oder kann mir wer weiter helfen?

pongi
07.02.2008, 16:16
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#EEPROM

Redals1311
07.02.2008, 19:27
danke danke =)

kennste dich denn damit ein bisschen aus ?

Redals1311
11.02.2008, 10:00
oder gibt es da eine andere methode wie man die Signale vergleichen kann?

Lenox
11.02.2008, 18:59
Du brauchst den internen EEPROM nicht.
Am besten du ließt einfach den Wert über buffered UART ein und vergleichst ihn dann.