Author Topic: Mein neuestes Projekt: ChipHeadBang  (Read 23392 times)

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Mein neuestes Projekt: ChipHeadBang
« on: April 20, 2015, 03:40:13 AM »
Oder: Warum soll man sich mit einem mediokren USB->Serial Interface begnügen, wenn man gleich noch einen mediokren Bitbang-Programmierer einbauen kann?

http://samelimmat.blogspot.ch/2015/04/introducing-chipheadbang.html

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #1 on: April 20, 2015, 11:24:29 AM »
Hallo Matthias, der sieht aber super aus, Gratulation.

Gruss Reto

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #2 on: April 21, 2015, 10:15:24 PM »
Cooles Board! Sehr schade, dass die Verwendung auf dem Mac und unter Windows so fricklig ist, resp. einen kommerziellen Treiber benötigt. Unter Linux zumindest macht mir der Chip genauso viel Spass wie ein FTDI.

Grüsse - Christoph

P.S.: Trotz gegenteiliger Erwartungen sind die Erträge im PTC-Sicherungsverkauf zurzeit (noch) nicht nachhaltig gestiegen  8)

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #3 on: April 29, 2015, 08:47:23 AM »
Hallo Christoph,
ist bei Windows die einmalige Installation fricklig oder dann auch der Betrieb?
Gemäss Suchmaschine wäre das hier der Treiber vom Chip Hersteller:
http://www.wch.cn/download/CH341SER_EXE.html

Gruss Reto

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #4 on: January 22, 2016, 10:37:06 PM »
Hallo Matthias,

ich habe Dein ChipHeadBang nachgebaut, leider funktioniert es nicht wie gewünscht. Ich arbeite mit Linux und der Arduino IDE und versuche einen 328'er zu programmieren.

Der CH340 Chip wird vom Linux erkannt und auch der Treiber scheint automatisch richtig zu sein. Ein Port erscheint und kann auch genutzt werden. Ich kann per Rx und Tx auch problemlos Daten von der Konsole auf den Arduino übertragen und empfangen. Auch der Reset funktioniert wenn ich ein Blink Sketch laufen lasse und dann zu programmieren versuche wird das Blink Sketch unterbrochen. Somit gehe ich davon aus, dass Rx,TX und auch der Reset funktionieren.

Nur finde ich leider das Problem nicht wieso avrdude keine Antwort vom Arduino erhält:

Diesen Fehler kriege ich:

avrdude: stk500_recv(): programmer is not responding

Wenn ich einen FTDI verwende, dann habe ich überhaupt kein Problem.

Hast Du eine Idee wo das Problem liegen könnte?

Hier noch die Printscreens:

Danke und Gruss
Reto

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #5 on: January 23, 2016, 03:29:12 PM »
ich habe Dein ChipHeadBang nachgebaut, leider funktioniert es nicht wie gewünscht. Ich arbeite mit Linux und der Arduino IDE und versuche einen 328'er zu programmieren.
[...]
Nur finde ich leider das Problem nicht wieso avrdude keine Antwort vom Arduino erhält:

Das ist ein Detail, das ich zu wenig diskutiert hatte: Der Bitbang-Modus ist ein bisschen eine Bastelei:

  • Erstens braucht man dafür einen spezialisierten "Programmer" Eintrag in der avrdude Konfiguration. Dabei musste ich feststellen, dass die Polarität der Signale umgekehrt war, wie ich dies mir vorgestellt hatte. Möglicherweise eine Treiberfrage. Ich muss die Konfiguration mal wieder ausgraben.
  • Zweitens funktioniert das ganze nur mit einem Zusatz-Delay. Auch das ist möglicherweise Treiberabhängig.

Ich rekonstruiere mal mein Experiment und gebe dann etwas genauere Instruktionen.

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #6 on: January 24, 2016, 03:04:23 PM »
Hallo Mathias,

ok, da bin ich froh dass ich nicht etwas falsch gebaut habe. Jedoch verstehe ich nicht wieso im Netz Leute mit CH340 Chips problemlos arbeiten können. Soweit ich das sehe ist Dein Board nichts spezielles.

Quote
Ich rekonstruiere mal mein Experiment und gebe dann etwas genauere Instruktionen.

Ja super das wäre gut.
Vielen Dank und Gruss
Reto

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #7 on: January 25, 2016, 02:17:34 AM »
Also, es braucht folgenden Eintrag in ~/.avrduderc

programmer
  id    = "chipheadbang";
  desc  = "CH340 based bitbang, reset=!txd sck=rts mosi=dtr miso=cts";
  type  = "serbb";
  connection_type = serial;
  baudrate = 115200;
  reset = ~3;
  sck   = ~7;
  mosi  = ~4;
  miso  = ~8;
;


Dann kann man programmieren mit z.B.:

avrdude -i 300 -p attiny84 -c chipheadbang -P /dev/cu.Repleo-CH341-0000124  -U flash:w:test8K.hex:i


Ein Entscheidendes Argument ist der delay "-i 300". Leider ist es, so viel ich weiss, unmöglich, diesen in der avrdude Konfiguration zu spezifizieren, und ich bin nicht sicher, ob man dieses Argument in Arduino konfigurieren kann.

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #8 on: January 27, 2016, 09:13:11 AM »
Super Danke werde es am Wochenende mal ausprobieren.
Gruss Reto

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #9 on: February 04, 2016, 10:31:10 PM »
Hallo Matthias,

leider funktioniert es noch nicht, hast Du noch eine Idee, hier mein Eintrag in der avrdude.conf, die Command line uns das Ergebnis. Ich habe schon verschiedene Dinge ausprobiert. Der Arduino reagiert auf den Reset, es kommt aber nichts über die serielle Schnittstelle zurück.

Danke und Gruss
Reto

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #10 on: February 08, 2016, 06:15:29 AM »
leider funktioniert es noch nicht, hast Du noch eine Idee, hier mein Eintrag in der avrdude.conf, die Command line uns das Ergebnis. Ich habe schon verschiedene Dinge ausprobiert. Der Arduino reagiert auf den Reset, es kommt aber nichts über die serielle Schnittstelle zurück.

Leider sehe ich keine attachments…

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #11 on: February 09, 2016, 08:42:39 AM »
Quote
Leider sehe ich keine attachments…

Ja sorry ich weiss nicht was ich gemacht habe. Finde meinen Printscreen auch nicht mehr auf der Festplatte.
Ich hatte absichtlich schön die Config, den Befehl und das Protokoll drauf.
Werde das ganze nochmals testen und dann Dir den Printscreen senden.

Danke und Gruss
Reto

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #12 on: February 09, 2016, 04:39:46 PM »
Ein Experiment, das den Versuch wäre, ist die Polarität der Signale umzukehren. In obigem Eintrag sind mehrere Signale "unlogisch" gesetzt, d.h. eigentlich müssten sie nicht-invertiert sein, aber aus irgend einem Grund (Treiber?) funktioniert es nur, wenn sie invertiert sind. Die "logische" Konfiguration wäre eigentlich:

  reset = ~3;
  sck   = 7;
  mosi  = 4;
  miso  = 8;

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #13 on: February 10, 2016, 11:45:27 PM »
Hallo Matthias,

ich habe noch etwas experimentiert. Etwas ist mir aufgefallen, bei Deinem Layout ist vom ICSP zum FTDI Stecker der Tx mit dem Reset verbunden.

Wenn ich jedoch Tx und Reset im FTDI Stecker umdrehe funktioniert es immer noch nicht. Ich habe jetzt mal die 3 Signale von einem normalen FTDI Adapter und vom ChipHeatBang verglichen. Siehe Attachment, dabei ist das Tx noch invertiert. Leider schaffe ich es nicht durch die Konfiguration das zu invertieren auch mit dem "~" vor dem Port geht es nicht.

Evtl. hast Du noch eine Idee?

Danke und Gruss
Reto

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: Mein neuestes Projekt: ChipHeadBang
« Reply #14 on: February 11, 2016, 07:11:20 AM »
ich habe noch etwas experimentiert. Etwas ist mir aufgefallen, bei Deinem Layout ist vom ICSP zum FTDI Stecker der Tx mit dem Reset verbunden.

Ich bin da bei der Terminologie etwas verwirrt: ICSP ist der 6 pin Stecker mit 4 Signalen (RESET, MOSI, MISO, SCK). FTDI ist für mich eine rein serielle Schnittstelle mit RX und TX. Oder reden wir von einem FTDI Adapter im ftdi_syncbb Bitbang Modus?

RESET auf dem ICSP Stecker ist tatsächlich mit TX verbunden, weil serielle ports einen "break" Zustand haben, in dem TX auf 0 gehalten wird, was genau das ist, was man für RESET braucht.

Quote
Wenn ich jedoch Tx und Reset im FTDI Stecker umdrehe funktioniert es immer noch nicht. Ich habe jetzt mal die 3 Signale von einem normalen FTDI Adapter und vom ChipHeatBang verglichen. Siehe Attachment, dabei ist das Tx noch invertiert. Leider schaffe ich es nicht durch die Konfiguration das zu invertieren auch mit dem "~" vor dem Port geht es nicht.

Meinst Du mit TX jetzt also das signal, das vom Computer zum Target läuft, also MOSI? Das kann man durch Hinzufügen bzw. weglassen eines `~` auf der Zeile "mosi" in der Konfiguration ändern.